> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livingsecurity.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Log phishing email

> Buat ulang log phishing tingkat peristiwa dari penyedia sebelumnya menggunakan peristiwa dan entitas simulasi pelaporan /v1.

Laporan ini adalah log phishing tingkat peristiwa: satu baris untuk setiap interaksi simulasi yang teramati (tanggal, tindakan, email penerima, subjek, pengirim, tingkat kesulitan). Laporan ini tetap berbentuk long-form — tidak meringkas riwayat seseorang menjadi satu hasil tunggal.

Kueri ini mencakup **12 bulan kalender** terakhir ke dalam `occurred_after` (tengah malam UTC pada tanggal yang sama dua belas bulan yang lalu — bukan durasi 365 hari).

<Note>
  IP klien mentah tidak pernah ada pada `/v1` — ini merupakan privasi berdasarkan desain, bukan pemetaan yang masih tertunda. Jenis perangkat adalah kelas turunan pada baris peristiwa; `user_agent` mentah tetap bersifat privat. Lihat
  [Perbedaan dari ekspor lama](#perbedaan-dari-ekspor-lama).
</Note>

Pengaturan, kredensial, paginasi, dan percobaan ulang batas laju sama dengan
[panduan konektivitas Power BI / Excel](/id/developers/v1/powerbi). Tambahkan terlebih dahulu kueri `Fn_FetchAll` bersama; laporan ini memanggilnya berdasarkan nama.

## Cakupan kunci yang diperlukan

| Cakupan | Digunakan untuk |
| - | - |
| `reporting:read` | `GET /v1/reporting/simulation_events` |
| `entity:read` | `GET /v1/entities` (penggabungan email dan nama tampilan) |

Kunci yang hanya diberi `simulation:read` tidak dapat memanggil endpoint peristiwa pelaporan (API mengembalikan `403`). Lihat
[pilih granularitas yang tepat](/id/developers/v1/powerbi#pilih-granularitas-yang-tepat).

## Endpoint sumber

| Endpoint | Peran |
| - | - |
| `GET /v1/reporting/simulation_events` | Fakta tingkat peristiwa. Granularitasnya adalah satu interaksi yang diketik. `email_subject`, `sender_email`, `sender_domain`, dan `difficulty_tier` ada pada baris ini, sehingga kueri tidak menggabungkan hasil tingkat kampanye untuk kolom-kolom tersebut. |
| `GET /v1/entities` | Menyelesaikan `entity_id` → email / nama tampilan. Peristiwa pelaporan tidak menyertakan email penerima (pengecualian mutlak pada pembaca pelaporan). Menelusuri `/entities` adalah cara kolom "email" lama diisi. |

Filter yang diizinkan pada daftar peristiwa (filter lainnya mengembalikan `400`):
`limit`, `page_token`, `simulation`, `entity`, `event_type`,
`occurred_after`.

Keluarga pelaporan ini merupakan [dataset pratinjau](/id/developers/v1/powerbi#dataset-pratinjau-pelaporan-phishing-per-orang).
Periksa skema dataset dan kebijakan data di
`GET /v1/reporting/datasets` dan
`GET /v1/reporting/datasets/simulation_events`.

### Granularitas

Satu baris untuk setiap peristiwa simulasi pelaporan. Seseorang yang membuka lalu mengeklik pesan yang sama menghasilkan dua baris. Peristiwa dengan `entity_id` bernilai null (tanpa aktor / penerima / peserta target) tetap muncul — `email` bernilai null.

Jendela API diperlebar satu menit; batas `occurred_at >= WindowStart` yang tepat diterapkan kembali secara lokal sehingga periode satu tahun terakhir tidak bergantung pada apakah server memperlakukan `occurred_after` sebagai inklusif atau eksklusif.

Anggaran permintaan: satu penelusuran berpaginasi atas peristiwa dalam jendela tersebut, ditambah satu penelusuran atas entitas. Selalu atur `limit = "500"`.

## Pemetaan kolom

Nama kolom lama berasal dari ekspor penyedia Anda sebelumnya. Kolom `/v1` adalah nama API publik; kueri memberi alias pada sebagian di antaranya untuk laporan.

| Kolom lama | Kolom atau penurunan `/v1` | Kolom laporan |
| - | - | - |
| Date | `Event.occurred_at` (sebagai tanggal; `occurred_at` mentah disimpan sebagai `datetimezone`) | `date` |
| Action | `Event.event_type` — token tertutup tercantum di bawah | `action` |
| Email | `Entity.email` (digabungkan pada `entity_id`) | `email` |
| Subject | `Event.email_subject` | `subject` |
| From | `Event.sender_email` | `from` |
| Difficulty | `Event.difficulty_tier` — bilangan bulat 1–5, 1 paling mudah, 5 paling sulit | `difficulty` |
| Raw IP | Tidak pernah ada pada `/v1` | Dihilangkan, bukan diisi null |
| Device type | `Event.device_type` — kelas turunan; null jika peristiwa tidak memiliki kelas turunan | `device_type` |

### Token tindakan

`action` adalah token pelaporan tertutup. "Email Sent" lama dipetakan ke
`simulation.delivered` (`delivered` adalah kata kerja publik; token pada jalur transmisi adalah
`simulation.delivered`).

| Nilai `action` |
| - |
| `simulation.delivered` |
| `simulation.opened` |
| `simulation.link_clicked` |
| `simulation.credentials_submitted` |
| `simulation.attachment_opened` |
| `simulation.reported` |
| `simulation.bounced` |
| `simulation.qr_scanned` |
| `simulation.replied` |

Kolom tambahan yang dipertahankan karena tersedia di API: `sender_domain`, `full_name`,
`event_id`, `entity_id`, `simulation_id`, `occurred_at`, ditambah
`entity_type` dan `entity_status` dari penggabungan entitas.

## Perbedaan dari ekspor lama

* **IP mentah tidak pernah tersedia.** `/v1` tidak akan mengekspos IP klien mentah — ini merupakan privasi berdasarkan desain, bukan pemetaan yang masih tertunda. Kueri tidak menambahkan kolom IP pengganti.
* **Jenis perangkat bersifat turunan, bukan mentah.** `device_type` adalah kelas perangkat turunan untuk peristiwa klik, pengiriman, dan pelaporan. Token yang teramati meliputi
  `desktop`, `mobile`, `tablet`, dan `unknown`, tetapi pengirim peristiwa menyimpan string bebas — perlakukan sebagai teks terbuka, bukan enum tertutup. Nilainya null jika peristiwa tidak memiliki kelas turunan, dan string `user_agent` mentah tetap bersifat privat.
* **"Email Sent" adalah `simulation.delivered`.** Gunakan token tersebut saat Anda memfilter atau menghitung pengiriman. Jangan mencari string `email_sent` lama.
* **Email penerima merupakan hasil penggabungan, bukan kolom pada peristiwa.** Peristiwa pelaporan tidak menyertakan email; kueri menelusuri `/entities` untuk mengisinya.
* **12 bulan kalender terakhir**, bukan durasi 365 hari, dan bukan seluruh riwayat.
* **Long-form, tidak diringkas.** Satu baris per interaksi, bukan satu hasil per orang.

## Langkah berikutnya

<CardGroup cols={2}>
  <Card title="Pengaturan Power BI dan Excel" href="/id/developers/v1/powerbi">
    Kredensial, paginasi, dan memuat kueri ini di Power BI atau Excel.
  </Card>

  <Card title="Pengguna paling rentan" href="/id/developers/v1/reports/most-susceptible-users">
    Rekapitulasi klik, kredensial, dan pelaporan per orang selama 12 bulan.
  </Card>

  <Card title="Kepatuhan per orang" href="/id/developers/v1/reports/per-person-compliance">
    Pendaftaran Pelatihan pada granularitas orang × penugasan.
  </Card>

  <Card title="Kunci API" href="/id/developers/developer-hub/api-keys">
    Berikan `reporting:read` dan `entity:read` pada kunci yang menyegarkan laporan ini.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.