Skip to main content

Pendahuluan

Hubungkan Dodo Payments ke GoHighLevel (GHL) untuk berjualan melalui funnel, situs web, email, dan SMS GHL, serta memenuhi pesanan dengan otomatisasi GHL. GHL adalah platform CRM dan pemasaran dengan funnel, situs web, email dan SMS, serta otomatisasi (Workflows). GHL tidak mencantumkan Dodo Payments sebagai pemroses pembayaran bawaan, jadi Anda harus menghubungkan keduanya dengan salah satu dari tiga cara. Pilih berdasarkan seberapa terintegrasi checkout yang Anda inginkan dan seberapa banyak kode yang dapat Anda tulis. Setiap pendekatan menangani pemenuhan pesanan dengan cara yang sama: Dodo Payments mengirimkan webhook events ke workflow Inbound Webhook GHL, yang menambahkan tag ke kontak, memberikan akses, dan mengirimkan konfirmasi.

Pilih Pendekatan Anda

Ketiga pendekatan berbeda dalam kode yang diperlukan dan tempat pelanggan melakukan pembayaran:
Jika Anda baru menggunakan Dodo Payments, mulailah dengan Pendekatan A (Payment Links). Pendekatan ini tidak memerlukan kode dan berfungsi untuk setiap pengguna GHL. Pendekatan B dan C memerlukan backend yang membuat checkout sessions, sehingga cocok untuk tim yang nyaman dengan kode.

Prasyarat

Sebelum memulai, Anda memerlukan:
  • Akun Dodo Payments dengan setidaknya satu product.
  • Akun GoHighLevel dengan funnel, situs web, atau workflow.
  • Akses ke Developer → Webhooks di dashboard Dodo Payments, serta ke Developer → API Keys jika Anda memerlukan API key.
  • Untuk Pendekatan B dan C: backend atau endpoint serverless kecil yang membuat checkout sessions.
GHL memerlukan connected domain untuk mempublikasikan funnel. Selama membangun, gunakan Preview funnel untuk menguji. JavaScript khusus (Pendekatan B dan C) umumnya hanya berjalan di halaman yang dipublikasikan pada domain nyata, bukan di Preview.

Pemenuhan Pesanan dengan Webhook (Semua Pendekatan)

Workflow webhook adalah lapisan otomatisasi. Siapkan sekali, dan workflow ini akan berfungsi dengan setiap pendekatan checkout.
1

Create the Workflow

Di sub-account GHL Anda, buka Automation di menu sebelah kiri. Tab Workflows akan terbuka. Klik Create workflow, lalu pilih Start from Scratch.
2

Add the Inbound Webhook Trigger

Di builder, klik Add new trigger. Di panel Add trigger, cari webhook dan pilih Inbound webhook, yang tercantum di bawah Triggers → Events. Salin Webhook URL yang dibuat.
3

Register the Webhook in Dodo Payments

Di dashboard Dodo Payments, buka Developer → Webhooks dan klik Add endpoint. Tempel GHL Inbound Webhook URL ke Endpoint URL, lalu klik Create endpoint. Kemudian berikan GHL contoh payload untuk memetakan field, seperti email pelanggan, produk, jumlah, dan status. Lakukan pembelian pengujian, atau buka tab Testing endpoint, pilih jenis event, lalu klik Send example.
4

Add Fulfillment Actions

Di workflow GHL, tambahkan tindakan untuk event tersebut, seperti find/create contact by email, add a tag, grant course/membership access, dan send a confirmation email. Lalu Publish workflow.
Dodo Payments memproses pembayaran, sehingga pembayaran tersebut tidak muncul di tab Payments GHL. Catat pembayaran tersebut di GHL menggunakan workflow webhook di atas. Berikan akses dari webhook, bukan dari pengalihan browser, karena pelanggan dapat menutup tab sebelum pengalihan selesai.
Tambahkan payment link Dodo Payments ke tombol GHL apa pun, ajakan bertindak di funnel, tombol halaman pesanan, email, atau SMS. Pelanggan membayar di checkout yang di-host Dodo Payments. Untuk mengetahui apa saja yang didukung checkout, lihat Checkout Features.
1

Create a Product and Copy Its Payment Link

Di dashboard Dodo Payments, buka Products dan klik Add Product. Tetapkan name dan price, pilih one-time atau subscription, lalu simpan produk. Pada baris produk, klik Share, lalu klik Copy payment link. Link tersebut memiliki format https://checkout.dodopayments.com/buy/{product_id}.
2

Add the Link to Your GHL Button

Edit funnel atau halaman situs web Anda, lalu pilih Buy / Checkout button. Tetapkan tindakannya ke Open URL / Website, kemudian tempel payment link Anda.
3

Set a Success Page (Optional)

Untuk mengarahkan pelanggan kembali ke funnel setelah membayar, masukkan halaman terima kasih GHL Anda di Redirect URL pada lembar Share produk sebelum menyalin link. Link tersebut kemudian membawanya sebagai parameter redirect_url.
Parameter query payment link dapat mengisi dan mengunci detail pelanggan, atau menambahkan pelacakan. Misalnya, teruskan ID funnel atau penawaran sebagai parameter metadata_* dan baca kembali nilainya dari webhook. Lihat Static Payment Links untuk semua parameter.

Pendekatan B: Overlay Checkout (Kode Khusus)

Pendekatan B membuka checkout Dodo Payments sebagai modal overlay di halaman GHL Anda, menggunakan Checkout SDK dari CDN. Pendekatan ini memerlukan backend yang membuat checkout session dan mengembalikan checkoutUrl.
1

Create a Backend Endpoint That Calls the Checkout Sessions API

Langkah ini wajib. SDK memerlukan URL checkout session, dan pembuatan session memerlukan secret API key Anda. GHL hanya meng-host halaman dan tidak dapat melakukan panggilan sisi server ini untuk Anda. Jangan pernah memanggil Create Checkout Session API dari browser, karena hal itu akan mengekspos secret key Anda di sumber halaman. Karena itu, overlay dan inline checkout tidak dapat berfungsi hanya dengan GHL: Anda memerlukan backend yang Anda kendalikan untuk membuat session dan hanya mengembalikan URL.Backend kecil apa pun dapat digunakan: fungsi serverless (Cloudflare Workers, Vercel Functions, AWS Lambda, Supabase Edge Functions, dan layanan serupa), atau endpoint di server yang sudah Anda jalankan. Logikanya sama di setiap platform: terima request, panggil API Dodo Payments dengan secret key Anda, lalu kembalikan checkout_url.Contoh logika handler, yang perlu disesuaikan dengan platform Anda:
Simpan API key Anda sebagai secret dalam variabel environment DODO_PAYMENTS_API_KEY di platform tempat Anda melakukan deployment, dan jangan pernah memasukkannya ke commit kode. Izinkan request dari domain GHL Anda (CORS), dan sajikan endpoint dari domain yang Anda kendalikan, misalnya https://api.example.com/create-checkout. Saat beralih ke mode live, ubah URL menjadi https://live.dodopayments.com/checkouts.
2

Add a Custom Code Element in the GHL Page Builder

Buka langkah funnel atau halaman situs web Anda di page builder GHL, lalu:
  1. Klik ikon + di kiri atas builder untuk membuka Quick Add.
  2. Pilih Elements dari daftar kategori di sebelah kiri.
  3. Temukan Custom Code (juga ditampilkan sebagai HTML) dan seret ke halaman.
  4. Tempel kode di bawah ke editor kode elemen, lalu simpan.
3

Publish and Test on Your Domain

JavaScript khusus berjalan di halaman yang dipublikasikan pada connected domain Anda, dan mungkin tidak berjalan di Preview. Publikasikan halaman, lalu klik Pay Now untuk memastikan overlay terbuka.

Pendekatan C: Inline (Tertanam) Checkout

Pendekatan C menanamkan formulir checkout di dalam halaman GHL Anda, tanpa pengalihan dan tanpa popup. Pendekatan ini menggunakan SDK yang sama dengan elemen container sebagai tempat pemasangan. Seperti Pendekatan B, pendekatan ini memerlukan backend untuk membuat session.
1

Create a Backend Endpoint That Calls the Checkout Sessions API

Langkah ini wajib, sama seperti pada overlay checkout. Pembuatan session memerlukan secret API key Anda, sehingga harus dilakukan di server dan GHL tidak dapat melakukannya sendiri. Gunakan kembali endpoint backend dari bagian Overlay Checkout di atas: fungsi serverless atau server kecil apa pun yang Anda kendalikan, yang memanggil Create Checkout Session API dan mengembalikan { checkoutUrl }.
2

Add a Container and SDK via Custom Code

Di page builder GHL:
  1. Klik ikon + di kiri atas builder untuk membuka Quick Add.
  2. Pilih Elements dari daftar kategori di sebelah kiri.
  3. Temukan Custom Code (juga ditampilkan sebagai HTML) dan seret ke halaman tempat Anda ingin formulir checkout muncul.
  4. Tempel kode di bawah ke editor kode elemen, lalu simpan.
3

Verify Your Domain for Wallets (Apple Pay)

Untuk menawarkan Apple Pay di inline checkout, verifikasi domain Anda. Di dashboard Dodo Payments, buka Settings → Payment Methods dan klik Manage domains pada baris Apple Pay. Unduh file asosiasi domain, host file tersebut di domain Anda, lalu daftarkan domainnya. Apple Pay tidak tersedia di overlay checkout (Approach B).Domain yang di-host oleh GHL tidak dapat meng-host file asosiasi domain. Apple Pay di inline checkout memerlukan domain yang Anda kontrol dan dapat menyajikan /.well-known/apple-developer-merchantid-domain-association. Pada halaman yang di-host oleh GHL, gunakan hosted checkout dari Payment Links (Approach A) atau jangan gunakan Apple Pay.
Inline checkout adalah opsi yang paling kompleks di GHL. Opsi ini memerlukan kode kustom, backend, halaman yang dipublikasikan pada domain nyata, dan, untuk Apple Pay, verifikasi domain. Jika Anda tidak memerlukan formulir yang sepenuhnya tertanam, gunakan Approach A atau B.

Events to Handle

Berlangganan endpoint GHL ke event yang ditangani oleh workflow Anda. Tabel berikut menyarankan tindakan GHL untuk setiap event: Event pembayaran dan subscription menyertakan customer email di data.customer.email. Gunakan action GHL find/create contact by email untuk mencocokkan pembayaran dengan contact yang tepat. Untuk setiap event, lihat Webhook Event Guide.

Testing & Going Live

1

Test in Test Mode

Biarkan switch Live Mode di sidebar Dodo Payments tetap nonaktif agar Anda bekerja dalam mode pengujian. Selesaikan pembelian menggunakan kartu pengujian 4242 4242 4242 4242 (expiry 06/32, CVV 123), lalu konfirmasikan bahwa workflow GHL berjalan dan menerapkan tag atau akses.
2

Go Live

Aktifkan switch Live Mode dan tambahkan GHL Inbound Webhook URL sebagai endpoint dalam live mode. Perubahan lainnya bergantung pada pendekatan yang Anda gunakan:
  • Payment Links (A): Ganti link dengan payment link live milik produk.
  • Overlay checkout (B): Arahkan backend Anda ke https://live.dodopayments.com/checkouts menggunakan API key live Anda, lalu atur mode ke "live" dalam pemanggilan Initialize SDK.
  • Inline checkout (C): Lakukan perubahan yang sama seperti pada overlay checkout karena opsi ini menggunakan endpoint backend dan inisialisasi SDK yang sama.
Kemudian lakukan satu pembelian nyata dari awal hingga selesai untuk mengonfirmasi penyiapan tersebut.

Tips

Anggap webhook sebagai sumber kebenaran untuk memberikan akses. Tindak lanjuti payment.succeeded atau subscription.active, bukan pengalihan browser.
GHL Inbound Webhook tidak dapat memverifikasi header webhook-signature. Agar hanya event Dodo Payments yang benar-benar valid yang memicu fulfillment di GHL, arahkan endpoint webhook Dodo Payments ke backend Anda sendiri, verifikasi setiap event di sana (Webhooks), lalu teruskan event tersebut ke GHL Inbound Webhook URL.

Troubleshooting

Periksa apakah endpoint webhook Dodo Payments mengarah ke GHL Inbound Webhook URL yang benar, workflow sudah dipublikasikan, dan trigger telah menangkap sample payload sehingga pemetaan field tersedia.
JavaScript kustom biasanya hanya berjalan pada halaman yang dipublikasikan di domain nyata, bukan di Preview. Pastikan halaman telah dipublikasikan, SDK <script> telah dimuat, dan checkoutUrl merupakan session URL yang valid dari backend Anda.
Periksa apakah workflow Anda menggunakan find/create contact by email dan field email dipetakan dari webhook payload.
Hal ini memang diharapkan. Dodo Payments memproses pembayaran, jadi catat pembayaran tersebut di GHL menggunakan workflow webhook.
Terakhir diubah pada 28 September 2026