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

# Aplikasi Verifikasi Identitas Salesforce: KYC & KYB

> Paket terkelola Salesforce dari Didit untuk verifikasi identitas, KYC, dan KYB. Tanpa coding, mulai $0.33 per cek KYC penuh, $10 gratis/bulan.

Tambahkan verifikasi identitas Didit ke Salesforce Sales Cloud / Service Cloud dengan managed package kami. Komponen ini ditempatkan pada halaman record Kontak dan Lead, membuat sesi melalui org Anda lewat Apex (kunci API Didit Anda tetap berada di dalam Salesforce), dan menuliskan hasil kembali ke kolom standar pada record sehingga Flow dan Report dapat menindaklanjutinya. **Invocable Action** bawaan memungkinkan Flow Builder memicu verifikasi secara otomatis, misalnya saat lead baru dibuat.

## Prasyarat

* Org Salesforce (edisi Enterprise atau yang lebih tinggi; Developer Edition untuk pengujian)
* Akun [Didit Business Console](https://business.didit.me) dengan alur kerja yang sudah dikonfigurasi
* Izin untuk menginstal managed package dan membuat Sites di Setup

***

### Langkah 1: Instal aplikasi

Tautan di bawah ini menginstal paket **DiditVerifyManaged 1.0.0.2** yang sudah dirilis.
Instalasi paket terpisah dari persetujuan pencantuman di marketplace.

1. Buka tautan instalasi: [[https://login.salesforce.com/packaging/installPackage.apexp?p0=04td10000004M0LAAU](https://login.salesforce.com/packaging/installPackage.apexp?p0=04td10000004M0LAAU)](https://login.salesforce.com/packaging/installPackage.apexp?p0=04td10000004M0LAAU)
2. Pilih **Install for Admins Only** selama Anda mengonfigurasi dan menguji integrasi.
   Berikan akses kepada pengguna yang dituju setelah konfigurasi Anda tervalidasi.

![Instal aplikasi Didit di Salesforce](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/install-package.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=8758cc01110ca562d2e88b7cb76a9ab5)

3. Klik **Install**

***

### Langkah 2: Dapatkan Kredensial Didit Anda

#### Dapatkan kunci API Anda (untuk mode API)

1. Masuk ke [Didit Business Console](https://business.didit.me)
2. Buka **API & Webhooks** di sidebar sebelah kiri
3. Salin kunci API Anda

![Cara mendapatkan kunci API dari Didit Business Console](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-how-to-get-api-key.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=9027ca685cc296a400e78d320a566453)

#### Dapatkan ID Alur Kerja Anda

1. Di Didit Business Console, buka **Alur kerja**
2. Pilih alur kerja yang ingin Anda gunakan (atau buat yang baru)
3. Salin **ID Alur Kerja** (UUID seperti `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx`)

![Cara mendapatkan ID Alur Kerja dari Didit Business Console](https://mintcdn.com/didit-0f962782/gKLcMCmiLycklBol/images/shopify-how-to-get-workflow-id.jpg?fit=max\&auto=format\&n=gKLcMCmiLycklBol\&q=85\&s=529dc681169efc0a6cdc96d6c0e0a605)

***

### Langkah 3: Konfigurasi Pengaturan Didit

1. Klik **App Launcher** (ikon grid, pojok kiri atas) lalu cari **"Didit"**

![cara masuk ke aplikasi didit](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/app-launcher-search-didit.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=1a2fb9eee64fa9735b29e4d64a20e56e)

2. Buka aplikasi **Didit**. Anda akan langsung masuk ke tab **Didit Settings**
3. Isi kredensial dan preferensi Anda:

| Kolom | Deskripsi | Default |
| - | - | - |
| **Mode** | `api` (direkomendasikan) atau `unilink` | `api` |
| **Didit API Key** | kunci API Didit Anda (hanya untuk mode API) | — |
| **Workflow ID** | ID alur kerja Didit Anda (hanya untuk mode API) | — |
| **Webhook Secret** | Rahasia HMAC dari Didit Console → API & Webhooks. Wajib diisi untuk menerima pembaruan verifikasi secara real-time. Jika dibiarkan kosong, semua webhook masuk akan ditolak. | — |
| **UniLink URL** | URL verifikasi tetap (hanya untuk mode UniLink) | — |
| **Display Mode** | `modal` (pop-up) atau `embedded` (inline) | `embedded` |
| **Data Vendor** | `record_id`, `record_email`, `custom prefix + record id`, atau `none` | `record_id` |
| **Bahasa** | Kode bahasa (misalnya `en`, `es`, `fr`) | `Auto detect by browser` |
| **Auto Send Contact Data** | Isi otomatis verifikasi dengan data record | `true` |
| **Show Close Button** | Tampilkan tombol X pada modal | `true` |
| **Exit Confirmation** | Minta konfirmasi sebelum menutup modal | `true` |
| **Auto-close on Complete** | Tutup modal secara otomatis setelah selesai | `false` |
| **Debug Logging** | Aktifkan pencatatan log di konsol browser | `false` |
| **Button Text** | Label tombol verifikasi | `Verify Identity` |
| **Button Success Text** | Label setelah verifikasi | `Identity Verified` |
| **Button Color** | Warna latar tombol dalam format hex | `#2667ff` |

4. Klik **Save Settings**

### Langkah 4: Tambahkan Komponen ke Halaman Record

1. Buka record **Kontak** atau **Lead**

![tampilan halaman kontak](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/contact-page-1.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=0a5d3676ade4b7d2e4334df2305ae050)

2. Klik **ikon roda gigi → Edit Page** (atau Setup → Object Manager → Kontak/Lead → Lightning Record Pages)

![tampilan detail kontak](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/contact-page-2.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=68b8d16948761de61d5ee8a4c5dcc0f2)

3. Di Lightning App Builder, seret **Didit Identity Verification** dari panel Components

![Seret komponen didit](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/drag-didit-component.gif?s=f34880744041ffa63271a683a641b3ba)

4. Klik **Simpan** lalu **Aktifkan** halaman tersebut, pilih "Assign as Org Default" saat mengaktifkan, dan tonton videonya:

![Simpan dan aktifkan halaman dengan komponen didit](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/save-and-activate.gif?s=2f9f3fffb2fed482ea524236b5ad910d)

5. Contoh di atas menggunakan halaman record Kontak, dan langkahnya sama persis untuk halaman record Lead.

## Cara Kerja

### Mode API (Direkomendasikan)

1. Pengguna mengklik **Verify Identity** pada rekaman Contact/Lead
2. Apex membuat sesi melalui API Didit (kunci API tetap berada di sisi server)
3. SDK Didit membuka alur verifikasi, sebagai overlay modal atau tampilan inline tertanam, bergantung pada pengaturan Display Mode Anda
4. Setelah selesai, rekaman diperbarui secara otomatis:
   * `Verification Status` → hasil sesi (`Approved`, `Declined`, `In Review`, dll.)
   * `Identity Verified` → `true` jika Approved; `false` jika Declined
   * `Verified At` berupa stempel waktu dan `Didit Session ID`
   * `Verified Document Type`, `Document Expiry Date`, `AML Check Status` (diisi melalui webhook, lihat di bawah)
5. Komponen menampilkan status verifikasi, jenis dokumen, tanggal kedaluwarsa, dan hasil AML secara inline, tanpa perlu konfigurasi tata letak halaman

### Mode UniLink

1. Pengguna mengklik **Verify Identity**
2. URL UniLink yang telah ditetapkan dibuka dalam modal atau iframe (tidak perlu memanggil API)
3. Setelah selesai, hasilnya disimpan ke rekaman

### Pembaruan Verifikasi Otomatis (Webhook)

Ketika sesi verifikasi selesai (baik agen sedang memantau halaman maupun tidak), Didit mengirim webhook ke org Salesforce Anda untuk memperbarui rekaman Contact/Lead secara otomatis. Pengaturan ini memerlukan Salesforce Site yang dikonfigurasi satu kali.

#### Mengapa ini diperlukan?

Salesforce tidak menerima permintaan HTTP masuk dari layanan eksternal tanpa endpoint publik. Salesforce Site membuat endpoint ini agar Didit dapat mengirim hasil verifikasi langsung ke org Anda secara real-time.

#### Langkah 1: Buka Setup > Sites

Di Salesforce, klik **ikon roda gigi > Setup**. Di kotak Quick Find, ketik **Sites**, lalu klik **Sites** di bagian **Sites and Domains**.

![Langkah 1 - Pencarian Sites](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step1-sites-search.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=07d8ca3804316538de6d15b6ccb39caf)

Jika ini pertama kali Anda, centang **"I have read and accepted the Salesforce Site Terms of Use"** lalu klik **Register My Salesforce Site Domain**.

![Langkah 1 - Halaman Sites dengan domain terdaftar](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step1-sites-registered.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=9a89d50c21cfc4911cf707a111f963ad)

#### Langkah 2: Buat Site baru

Klik tombol **New** di daftar Sites. Isi:

* **Site Label**: `DiditWebhook`
* **Site Name**: terisi otomatis sebagai `DiditWebhook`
* **Default Web Address**: `didit`
* **Active**: dicentang
* **Active Site Home Page**: `InMaintenance`

Biarkan semua kolom lain pada nilai default, lalu klik **Simpan**.

![Langkah 2 - Formulir Site baru](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step2-new-site-form.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=d5869ff430f4050ebde176ff6020c260)

#### Langkah 3: Verifikasi bahwa Site telah dibuat

Setelah disimpan, Anda akan melihat halaman detail Site. Catat **Site URL**, yang akan terlihat seperti `https://your-org.develop.my.salesforce-sites.com/didit`. Anda akan membutuhkannya nanti.

![Langkah 3 - Site telah dibuat](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step3-site-created.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=daa8ed30fedd1369d33abe13828ddb12)

#### Langkah 4: Berikan akses Guest User ke kelas webhook

Pada halaman detail Site, klik **Public Access Settings**. Ini membuka profil Guest User. Gulir ke bawah ke **Enabled Apex Class Access** lalu klik **Edit**. Pilih **DiditWebhookReceiver** dari daftar Available lalu klik **Add** untuk memindahkannya ke daftar Enabled. Klik **Save**.

![Langkah 4 - Akses Apex Class](https://mintcdn.com/didit-0f962782/yCWnhXcnyUBtSh0w/images/salesforce/step4-apex-class-access.png?fit=max\&auto=format\&n=yCWnhXcnyUBtSh0w\&q=85\&s=8bcfbece75a5a7864e8e1ab8fc07db9d)

#### Langkah 5: Konfigurasi webhook di Didit Console

1. Buka [business.didit.me](https://business.didit.me) > **API & Webhooks**
2. Atur **URL Webhook** menjadi: `https://your-org.develop.my.salesforce-sites.com/didit/services/apexrest/didit/webhook/`

> **Catatan:** Format domain yang tepat bergantung pada jenis org Anda. Org Developer Edition menyertakan `.develop` dalam URL. Org produksi menggunakan `https://your-org.my.salesforce-sites.com/didit/services/apexrest/didit/webhook/`. Selalu salin URL dari halaman detail Site Anda (Langkah 3) untuk memastikan.

3. Salin **Kunci Rahasia Webhook**
4. Di Salesforce, buka **Didit Settings** lalu tempel rahasia tersebut ke kolom **Webhook Secret**
5. Klik **Save Settings**

Selesai. Mulai sekarang, setiap hasil verifikasi akan memperbarui rekaman Contact/Lead secara otomatis, bahkan jika tidak ada yang membuka halaman Salesforce.

#### Data yang disimpan webhook

Ketika Didit mengirim webhook, Contact atau Lead diperbarui secara otomatis.

**Selalu diperbarui, apa pun jenis alur kerjanya:**

| Kolom | Yang disimpan |
| - | - |
| **Verification Status** | `Approved`, `Declined`, `In Review`, `In Progress`, `Abandoned` |
| **Identity Verified** | `true` jika Approved; `false` jika Declined atau Abandoned |
| **Verified At** | Stempel waktu hasil Approved |
| **Didit Session ID** | UUID sesi |

**Hanya diperbarui jika fitur tersebut merupakan bagian dari alur kerja Anda:**

| Kolom | Memerlukan |
| - | - |
| **Verified Document Type** | Verifikasi Identitas dalam alur kerja Anda |
| **Document Expiry Date** | Verifikasi Identitas dalam alur kerja Anda |
| **AML Check Status** | Skrining AML dalam alur kerja Anda |
| **Verification Decline Reasons** | Verifikasi Identitas dalam alur kerja Anda |

Jika suatu fitur tidak diaktifkan dalam alur kerja Didit Anda, kolom yang bersangkutan dibiarkan kosong. Tidak ada yang rusak.

Rekaman turunan **Didit Verification** (`Didit_Verification__c`) juga dibuat untuk setiap sesi, sehingga Anda memiliki log audit lengkap dengan detail tambahan (nomor dokumen, negara penerbit, nama pada dokumen, tanggal lahir, skor pencocokan wajah, skor liveness, jumlah hit AML). Detail ini juga hanya tersedia untuk fitur yang termasuk dalam alur kerja.

Anda dapat menambahkan daftar terkait **Didit Verifications** ke tata letak halaman Contact/Lead untuk melihat riwayat.

### Otomasi Flow (Tindakan Invocable)

Plugin menyertakan tindakan Apex Invocable yang dapat dipanggil oleh Salesforce Flow untuk memicu verifikasi secara otomatis:

1. Di Flow Builder, tambahkan elemen **Tindakan**
2. Cari **"Create Didit Verification Session"**
3. Berikan ID rekaman Contact atau Lead
4. Tindakan mengembalikan `url`, `sessionId`, `success`, dan `error`
5. Gunakan URL dalam tindakan **Send Email** atau **Send Notification** untuk mengirimkannya ke pelanggan

**Contoh kasus penggunaan:**

* **Saat Lead dibuat:** kirim tautan verifikasi secara otomatis ke setiap lead baru
* **Pemantauan tanggal kedaluwarsa dokumen:** buat Scheduled Flow yang berjalan setiap hari, temukan semua Contact dengan `Document Expiry Date ≤ TODAY + 90 days`, lalu kirim tautan verifikasi ulang. Fitur ini berfungsi langsung menggunakan kolom `Document Expiry Date` yang diisi oleh webhook.

## Pemecahan Masalah

### Tombol tidak berfungsi saat diklik

* Pastikan Anda sudah menyimpan kunci API dan Workflow ID di Didit Settings
* Periksa bahwa Workflow ID berasal dari aplikasi yang sama dengan kunci API Anda
* Aktifkan **Debug Logging** di Didit Settings, lalu periksa konsol browser untuk melihat error

### "Received a non-JSON response from the Didit API"

* Pastikan Remote Site Setting untuk `https://verification.didit.me` sudah aktif: Setup → Remote Site Settings
* Periksa bahwa kunci API Anda valid dan belum kedaluwarsa di [Didit Business Console](https://business.didit.me)

### Webhook mengembalikan 401 — "Webhook secret not configured"

* Buka **Didit Settings**, tempelkan Webhook Secret Key Anda (disalin dari Didit Console → API & Webhooks) ke kolom **Webhook Secret**, lalu klik **Save Settings**

### Webhook mengembalikan 401 — "Invalid signature" atau "Request timestamp is stale"

* Invalid signature: pastikan Webhook Secret di Didit Settings sama persis dengan yang ada di Didit Console, tanpa spasi atau karakter tambahan
* Stale timestamp: webhook harus tiba dalam 5 menit sejak dikirim. Jika jam organisasi Salesforce Anda tidak sinkron, hal ini dapat memicu positif palsu, tetapi kejadian ini sangat jarang

### Jendela verifikasi tidak terbuka (error CSP di konsol browser)

* CSP Trusted Site untuk `https://verify.didit.me` disertakan dalam paket terkelola dan diterapkan secara otomatis. Jika Anda melakukan deployment dari kode sumber, pastikan `cspTrustedSites/Didit_Verify_Frontend.cspTrustedSite-meta.xml` disertakan dalam deployment Anda

## Dukungan (24/7)

Tim kami siap membantu Anda agar dapat segera mulai menggunakan layanan ini.

> [card] [Email](mailto:hello@didit.me)
>
> Kirim email kepada kami di [hello@didit.me](mailto:hello@didit.me).


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