Basis pengetahuan

Zinn® Campaigns API dan MCP: panduan pengembang

Proses masuk, izin, contoh, batasan, kesalahan, webhook, dan setiap operasi API Zinn® Campaigns, serta operasi mana saja yang dapat dijalankan asisten AI melalui MCP.

Zinn®, viking kami, sedang membaca daftar periksanya di samping indeks artikel dengan satu artikel terbuka.

Segala hal yang dapat Anda lakukan di dasbor pada Zinn® Campaigns juga dapat Anda lakukan melalui API, dan sebagian besar darinya dapat dilakukan dari asisten AI yang terhubung ke akun Anda melalui MCP. Panduan ini mencakup proses masuk, izin, contoh terapan untuk kedua cara tersebut, batasan, kesalahan, dan masing-masing dari 89 operasi Campaigns. Daftar operasi di bawah ini dibuat dari spesifikasi API kami, sehingga selalu sesuai dengan fungsi API. Setiap bidang dari setiap operasi tercantum dalam referensi API di zinndigital.com/developers/api/zinn-campaigns.

Masuk

  • Kunci API. Buat kunci di dasbor pada Pengaturan → Kunci API dan kirimkan sebagai Authorization: Bearer zdk_live_… (kunci zdk_test_… berfungsi dalam mode sandbox). Berikan izin Campaigns yang diperlukan saja pada kunci tersebut dan tidak lebih.
  • Asisten AI (MCP). Hubungkan Claude, ChatGPT, Cursor, atau klien MCP apa pun ke https://api.zinndigital.com/v1/mcp, baik dengan masuk dari aplikasi maupun menggunakan token koneksi (zmcp_live_…). Lihat Menghubungkan Claude, Cursor, atau ChatGPT ke akun Anda. Pada layar persetujuan, centang izin Zinn® Campaigns.
  • Izin. email_marketing.view membaca kampanye, daftar, kontak, formulir, pengirim, pengaturan SMS, dan laporan; email_marketing.manage membuat dan mengubahnya. Kampanye yang Anda kirim melalui layanan email Anda sendiri menggunakan campaigns.view dan campaigns.manage.
  • Pengecer. Teruskan org_id untuk bertindak atas salah satu organisasi klien Anda. Abaikan jika kunci atau koneksi Anda hanya mengakses tepat satu organisasi.

Contoh: membuat draf kampanye dengan API

curl -X POST https://api.zinndigital.com/v1/email-marketing/campaigns \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Spring sale",
  "subject": "Our spring sale starts today",
  "list_id": "<list id>",
  "sender_id": "<sender id>",
  "template": "basic"
}'

Jawabannya adalah 201 dengan draf tersebut. Uji dengan POST /v1/email-marketing/campaigns/{campaign_id}/test, periksa dengan GET /v1/email-marketing/campaigns/{campaign_id}/lint, dan kirimkan dengan POST /v1/email-marketing/campaigns/{campaign_id}/send.

Contoh: draf yang sama dari asisten AI

Mintalah kepada asisten Anda dengan kata-kata sederhana, misalnya "buat draf email Zinn® Campaigns bernama Obral musim semi dengan subjek 'Obral musim semi kami dimulai hari ini'". Di balik layar, asisten menemukan operasi tersebut dengan api_operations_search, membaca parameternya dengan api_operation_get, dan menjalankannya dengan api_operation_call:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "api_operation_call",
    "arguments": {
      "operation_id": "createEmailMarketingCampaign",
      "confirm": true,
      "body": {
        "name": "Spring sale",
        "subject": "Our spring sale starts today"
      }
    }
  }
}

Hal yang tidak akan dilakukan asisten. Apa pun yang mengirimkan pesan ke penerima Anda atau menghabiskan uang atau kuota — mengirim kampanye, mengirim pesan SMS atau WhatsApp, menulis dengan kredit AI, mendaftar untuk pengiriman SMS US — ditolak bagi asisten, sehingga instruksi yang salah dipahami tidak akan pernah sampai ke pelanggan Anda. Asisten menyiapkan draf; Anda menekan Kirim di dasbor atau memanggil API sendiri. Rahasia seperti kata sandi SMTP juga tidak pernah diteruskan melalui asisten: masukkan rahasia tersebut di dasbor.

Batasan

  • 1.200 permintaan per menit untuk setiap orang atau kunci API, dan 6.000 permintaan per menit untuk setiap organisasi. Batasan yang lebih ketat di antara keduanya yang berlaku.
  • 600 permintaan per menit untuk setiap koneksi MCP.
  • Jika melebihi batasan, jawabannya adalah 429 dengan header Retry-After: tunggu selama jumlah detik tersebut.
  • Menambahkan anggota daftar membutuhkan paling banyak 1.000 alamat per permintaan; kuota kontak dan email paket Anda berlaku untuk semua yang Anda lakukan melalui API.

Kesalahan

Setiap kesalahan memiliki bentuk yang sama:

{"error": {"code": "UNPROCESSABLE_ENTITY", "message": "…", "details": [{"field": "subject", "code": "REQUIRED", "message": "…"}], "request_id": "…"}}

code tidak pernah berubah untuk masalah yang sama, jadi uji kode tersebut alih-alih message. Sebutkan request_id saat Anda menghubungi dukungan. Respons yang akan Anda temui: 401 UNAUTHORIZED, 403 FORBIDDEN, 404 NOT_FOUND, 409 CONFLICT, 422 UNPROCESSABLE_ENTITY, 429 TOO_MANY_REQUESTS. Kode 403 berarti kunci atau koneksi tidak memiliki izin yang tercantum dalam daftar di bawah; kode 404 juga mencakup sesuatu dalam organisasi yang tidak dapat Anda lihat; kode 422 mencantumkan setiap bidang yang salah di details; setelah kode 429, tunggu selama jumlah detik dalam header Retry-After.

Webhook

Hasil pengiriman masuk ke dalam Zinn® Campaigns dari penyedia yang mengirimkan email Anda:

  • Dengan penyedia Anda sendiri (misalnya Resend), simpan rahasia penandatanganan webhook-nya pada koneksi pengiriman di dasbor (Campaigns → Sending). Anda akan mendapatkan webhook_url; arahkan peristiwa delivered, bounced, dan complained milik penyedia ke URL tersebut. Pentalan (bounce) atau keluhan spam akan segera menghapus alamat dari pengiriman mendatang.
  • Dengan pengiriman Zinn®, tidak ada yang perlu disiapkan.

Baca hasilnya dengan operasi laporan (getEmailMarketingCampaignReport, getSmsMarketingCampaignReport).

Setiap operasi Campaigns

Ringkasan

  • GET /v1/email-marketing — Ringkasan Zinn® Campaigns untuk satu organisasi. Operasi getEmailMarketingOverview. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.

Kampanye email

  • GET /v1/email-marketing/campaigns — Kampanye email, yang terbaru terlebih dahulu, satu halaman keyset. Operasi listEmailMarketingCampaigns. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/campaigns — Buat draf kampanye email. Operasi createEmailMarketingCampaign. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • GET /v1/email-marketing/campaigns/{campaign_id} — Satu kampanye email. Operasi getEmailMarketingCampaign. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • PATCH /v1/email-marketing/campaigns/{campaign_id} — Edit draf (atau kampanye yang ditolak, yang kembali menjadi draf). Operasi updateEmailMarketingCampaign. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • GET /v1/email-marketing/campaigns/{campaign_id}/lint — Periksa teks kampanye untuk masalah keterkiriman sebelum dikirim. Operasi lintEmailMarketingCampaign. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • GET /v1/email-marketing/campaigns/{campaign_id}/report — Angka-angka kampanye. Operasi getEmailMarketingCampaignReport. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/campaigns/{campaign_id}/send — Mulai mengirimkan kampanye ke daftarnya. Operasi sendEmailMarketingCampaign. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: hanya API dan dasbor: tindakan ini menggunakan uang atau kuota, jadi seseorang yang menekannya (mengirim ke penerima sebenarnya dan menggunakan kuota).
  • POST /v1/email-marketing/campaigns/{campaign_id}/test — Kirim satu salinan uji coba sekarang ke anggota organisasi. Operasi testEmailMarketingCampaign. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/campaigns/{campaign_id}/translate — Terjemahkan kampanye ke setiap bahasa kontak yang belum ada atau kedaluwarsa. Operasi translateEmailMarketingCampaign. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • GET /v1/email-marketing/campaigns/{campaign_id}/translations — Setiap bahasa kontak dari daftar kampanye dan apakah terjemahannya adalah yang terbaru. Operasi listEmailMarketingCampaignTranslations. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.

Menulis dengan AI

  • POST /v1/email-marketing/ai/write — Tulis draf email kampanye dari ringkasan singkat dengan Zinn® AI. Operasi writeEmailMarketingCampaignWithAi. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: hanya API dan dasbor: tindakan ini menggunakan uang atau kuota, jadi seseorang yang menekannya (penulisan AI menggunakan kredit AI).

Brand kit

  • GET /v1/email-marketing/brand-kit — Brand kit organisasi (nama, logo, warna, font, nada suara). Operasi getEmailMarketingBrandKit. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • PUT /v1/email-marketing/brand-kit — Edit brand kit. Operasi updateEmailMarketingBrandKit. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/brand-kit/read — Baca brand kit dari situs web organisasi. Operasi readEmailMarketingBrandKit. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.

Kontak dan pesan sekali kirim

  • GET /v1/email-marketing/contacts — Kontak organisasi, satu halaman keyset pada satu waktu. Operasi listEmailMarketingContacts. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/contacts/{contact_id}/messages — Kirim satu SMS ke satu kontak, dibayar dari saldo kredit Zinn®. Operasi sendEmailMarketingMessage. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: hanya API dan dasbor: ini menggunakan uang atau kuota, sehingga seseorang yang menekannya (pesan satu kali ke kontak menghabiskan kuota).
  • GET /v1/email-marketing/messages — Pesan SMS dan WhatsApp yang dikirim organisasi, yang terbaru lebih dahulu, satu halaman keyset. Operasi listEmailMarketingMessages. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.

Daftar

  • GET /v1/email-marketing/lists — Milis organisasi dengan jumlah yang berlangganan / berhenti berlangganan. Operasi listEmailMarketingLists. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/lists — Buat milis (atau kembalikan yang memiliki nama tersebut). Operasi createEmailMarketingList. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/lists/{list_id}/members — Tambahkan kontak ke daftar berdasarkan alamat email (maksimal 1.000 per permintaan). Operasi addEmailMarketingListMembers. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.

Impor

  • GET /v1/email-marketing/imports — Riwayat impor kontak, yang terbaru terlebih dahulu, satu halaman keyset pada satu waktu. Operasi listEmailMarketingImports. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/imports — Impor satu kelompok kontak dengan pengesahan persetujuannya. Operasi createEmailMarketingImport. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.

Formulir pendaftaran

  • GET /v1/email-marketing/forms — Formulir pendaftaran (double opt-in), terbaru terlebih dahulu, satu halaman keyset. Operasi listEmailMarketingForms. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/forms — Buat formulir pendaftaran yang menambahkan orang yang telah dikonfirmasi ke satu daftar. Operasi createEmailMarketingForm. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • DELETE /v1/email-marketing/forms/{form_id} — Hapus formulir pendaftaran (orang yang sudah dikonfirmasi tetap berada di dalam daftar). Operasi deleteEmailMarketingForm. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • PATCH /v1/email-marketing/forms/{form_id} — Ubah formulir pendaftaran (redaksi, daftar, pengalihan, aktif atau nonaktif). Operasi updateEmailMarketingForm. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.

Koneksi pengiriman

  • GET /v1/email-marketing/senders — Koneksi pengiriman organisasi. Operasi listEmailMarketingSenders. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/senders — Hubungkan pengirim kampanye (pengiriman Zinn®, atau server SMTP milik pelanggan sendiri). Operasi createEmailMarketingSender. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: hanya API dan dasbor: membawa rahasia yang tidak boleh sampai ke model AI (isinya adalah kata sandi SMTP).
  • DELETE /v1/email-marketing/senders/{sender_id} — Hapus koneksi pengiriman dan kata sandi yang tersimpan. Operasi deleteEmailMarketingSender. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/senders/{sender_id}/verify — Buktikan bahwa koneksi pengiriman berfungsi, tanpa mengirim apa pun. Operasi verifyEmailMarketingSender. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • PUT /v1/email-marketing/senders/{sender_id}/webhook — Simpan rahasia penandatanganan webhook penyedia email Anda untuk koneksi ini. Operasi setEmailMarketingSenderWebhook. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: dipanggil oleh sistem lain (penyedia atau pengunjung), bukan oleh Anda (menyimpan rahasia webhook penyedia).

SMS dan WhatsApp

  • GET /v1/email-marketing/sms — Kebutuhan layar SMS — terbuka?, dijeda?, saldo kredit, dan harga. Operasi getEmailMarketingSms. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • GET /v1/email-marketing/sms/campaigns — Kampanye SMS massal, terbaru lebih dahulu, satu halaman keyset. Operasi listSmsMarketingCampaigns. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/sms/campaigns — Buat draf SMS untuk daftar kontak. Operasi createSmsMarketingCampaign. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • GET /v1/email-marketing/sms/campaigns/{campaign_id} — Satu kampanye SMS massal. Operasi getSmsMarketingCampaign. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • PATCH /v1/email-marketing/sms/campaigns/{campaign_id} — Edit draf (atau kampanye yang ditolak, yang kembali menjadi draf). Operasi updateSmsMarketingCampaign. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • GET /v1/email-marketing/sms/campaigns/{campaign_id}/report — Angka-angka kampanye SMS massal. Operasi getSmsMarketingCampaignReport. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/sms/campaigns/{campaign_id}/send — Mulai mengirimkan SMS ke semua orang di daftarnya yang menyetujui penerimaan SMS — atau lanjutkan pengiriman yang dijeda karena kendala kredit. Operasi sendSmsMarketingCampaign. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: hanya API dan dasbor: ini menggunakan biaya atau kuota, jadi harus ditekan oleh seseorang (mengirim pesan SMS/WhatsApp berbayar).
  • GET /v1/email-marketing/sms/registrations/us — Pendaftaran US 10DLC organisasi ini, dan biayanya. Operasi getEmailMarketingUsRegistration. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/sms/registrations/us — Ajukan merek dan kampanye organisasi ini untuk US 10DLC (dikenakan biaya saat pengajuan). Operasi submitEmailMarketingUsRegistration. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: hanya API dan dasbor: ini menggunakan biaya atau kuota, jadi harus ditekan oleh seseorang (pendaftaran US 10DLC dikenakan biaya operator).

Kampanye melalui layanan email Anda sendiri (templat, segmen, supresi)

  • GET /v1/campaigns — Kampanye organisasi. Operasi listCampaigns. Dari asisten AI: ya, melalui MCP.
  • POST /v1/campaigns — Buat kampanye dari sebuah templat dan audiens. Operasi createCampaign. Dari asisten AI: ya, melalui MCP.
  • DELETE /v1/campaigns/esp — Putuskan sambungan akun penyedia dan hapus kunci yang tersimpan. Operasi disconnectEsp. Dari asisten AI: hanya API dan dasbor: membawa rahasia yang tidak boleh sampai ke model AI (memusnahkan kunci ESP yang tersimpan).
  • GET /v1/campaigns/esp — Akun penyedia email milik organisasi. Operasi getEspConnection. Dari asisten AI: ya, melalui MCP.
  • POST /v1/campaigns/esp — Hubungkan akun penyedia email. Operasi connectEsp. Dari asisten AI: hanya API dan dasbor: membawa rahasia yang tidak boleh sampai ke model AI (isi body adalah kunci API ESP).
  • POST /v1/campaigns/esp/verify — Buktikan bahwa akun penyedia berfungsi dan baca domain yang terverifikasi. Operasi verifyEspConnection. Dari asisten AI: hanya API dan dasbor: membawa rahasia yang tidak boleh sampai ke model AI (memeriksa ulang kunci ESP yang tersimpan).
  • POST /v1/campaigns/preview — Render templat dengan nilai contoh. Operasi previewCampaignTemplate. Dari asisten AI: ya, melalui MCP.
  • GET /v1/campaigns/segments — Segmen audiens tersimpan Anda. Operasi listCampaignSegments. Izin yang diperiksa: campaigns.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/campaigns/segments — Simpan segmen audiens baru. Operasi createCampaignSegment. Izin yang diperiksa: campaigns.manage. Dari asisten AI: ya, melalui MCP.
  • GET /v1/campaigns/segments/fields — Kosakata filter, daftar nilainya, dan tag ajaib. Operasi getCampaignSegmentFields. Izin yang diperiksa: campaigns.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/campaigns/segments/preview — Berapa banyak orang yang dijangkau, siapa mereka, dan siapa yang dikecualikan. Operasi previewCampaignSegment. Izin yang diperiksa: campaigns.view. Dari asisten AI: ya, melalui MCP.
  • DELETE /v1/campaigns/segments/{segmentId} — Mengarsipkan segmen. Operasi archiveCampaignSegment. Izin yang diperiksa: campaigns.manage. Dari asisten AI: ya, melalui MCP.
  • GET /v1/campaigns/segments/{segmentId} — Satu segmen yang disimpan. Operasi getCampaignSegment. Izin yang diperiksa: campaigns.view. Dari asisten AI: ya, melalui MCP.
  • PATCH /v1/campaigns/segments/{segmentId} — Mengganti nama segmen atau mengubah filternya. Operasi updateCampaignSegment. Izin yang diperiksa: campaigns.manage. Dari asisten AI: ya, melalui MCP.
  • GET /v1/campaigns/suppressions — Alamat yang tidak boleh menerima pemasaran. Operasi listCampaignSuppressions. Izin yang diperiksa: campaigns.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/campaigns/suppressions — Menambahkan alamat ke daftar supresi. Operasi createCampaignSuppression. Izin yang diperiksa: campaigns.manage. Dari asisten AI: ya, melalui MCP.
  • GET /v1/campaigns/tags — Palet tag ajaib yang ditawarkan oleh pembuat kampanye. Operasi listCampaignTags. Dari asisten AI: ya, melalui MCP.
  • GET /v1/campaigns/templates — Templat kampanye organisasi. Operasi listCampaignTemplates. Dari asisten AI: ya, melalui MCP.
  • POST /v1/campaigns/templates — Buat templat kampanye. Operasi createCampaignTemplate. Dari asisten AI: ya, melalui MCP.
  • DELETE /v1/campaigns/templates/{templateId} — Arsipkan templat dan hentikan sumber terjemahannya. Operasi archiveCampaignTemplate. Dari asisten AI: ya, melalui MCP.
  • GET /v1/campaigns/templates/{templateId} — Satu templat kampanye. Operasi getCampaignTemplate. Dari asisten AI: ya, melalui MCP.
  • PUT /v1/campaigns/templates/{templateId} — Edit templat kampanye. Operasi updateCampaignTemplate. Dari asisten AI: ya, melalui MCP.
  • POST /v1/campaigns/unsubscribe — Keluar dari daftar pemasaran. Tidak perlu akun. Operasi unsubscribeFromCampaigns. Dari asisten AI: hanya API dan dasbor: memuat rahasia yang tidak boleh sampai ke model AI (menerima token berhenti berlangganan penerima yang ditandatangani).
  • DELETE /v1/campaigns/{campaignId} — Hapus kampanye dan hentikan baris pengirimannya. Operasi deleteCampaign. Dari asisten AI: hanya API dan dasbor: memerlukan izin yang tidak ditawarkan ke koneksi AI (menghapus kampanye ESP memerlukan campaigns.send).
  • GET /v1/campaigns/{campaignId} — Satu kampanye dan laporan pengirimannya. Operasi getCampaign. Dari asisten AI: ya, melalui MCP.
  • POST /v1/campaigns/{campaignId}/control — Jeda, lanjutkan, atau batalkan pengiriman yang sedang berjalan. Operasi controlCampaign. Dari asisten AI: hanya API dan dasbor: tindakan ini menggunakan biaya atau kuota, sehingga dilakukan secara manual oleh seseorang (menjeda/melanjutkan pengiriman langsung).
  • POST /v1/campaigns/{campaignId}/send — Mulai pengiriman persisten. Operasi sendCampaign. Dari asisten AI: hanya API dan dasbor: tindakan ini menggunakan biaya atau kuota, sehingga dilakukan secara manual oleh seseorang (mengirimkan kampanye ESP ke penerima sebenarnya).
  • POST /v1/campaigns/{campaignId}/test — Kirim satu pesan nyata pada saluran yang benar-benar akan digunakan oleh kampanye. Operasi testSendCampaign. Dari asisten AI: hanya API dan dasbor: memerlukan izin yang tidak diberikan kepada koneksi AI (pengiriman uji coba ESP memerlukan campaigns.send).

Halaman publik dan webhook masuk

  • GET /v1/public/email-marketing/c/{token} — Penghitung klik. Mencatat satu klik per penerima dan mengalihkan ke tautan asli. Operasi emailMarketingClick. Dari asisten AI: halaman yang dibuka oleh penerima Anda dari email (pengalihan pelacakan klik).
  • GET /v1/public/email-marketing/f/{public_id} — Halaman formulir pendaftaran yang di-host (tanpa login). Operasi emailMarketingFormPage. Dari asisten AI: halaman yang dibuka oleh penerima Anda dari email (halaman formulir pendaftaran publik).
  • POST /v1/public/email-marketing/f/{public_id} — Kirim formulir pendaftaran (halaman yang di-host, sematan, atau JSON). Operasi emailMarketingFormSubmit. Dari asisten AI: dipanggil oleh sistem lain (penyedia atau pengunjung), bukan oleh Anda (pengunjung mengirimkan formulir pendaftaran).
  • GET /v1/public/email-marketing/fc — Halaman konfirmasi double opt-in (tanpa login). Operasi emailMarketingFormConfirmPage. Dari asisten AI: halaman yang dibuka penerima Anda dari email (halaman konfirmasi double opt-in).
  • POST /v1/public/email-marketing/fc — Konfirmasi pendaftaran (menambahkan orang tersebut ke daftar dengan catatan persetujuan). Operasi emailMarketingFormConfirm. Dari asisten AI: dipanggil oleh sistem lain (penyedia atau pengunjung), bukan oleh Anda (pengunjung mengonfirmasi double opt-in).
  • GET /v1/public/email-marketing/o/{token} — Gambar pelacak pembukaan (GIF 1x1). Menghitung satu kali pembukaan per penerima. Operasi emailMarketingOpenPixel. Dari asisten AI: halaman yang dibuka penerima Anda dari email (piksel pelacak pembukaan).
  • GET /v1/public/email-marketing/u/{token} — Tautan berhenti berlangganan di footer (tanpa login). Operasi emailMarketingUnsubscribePage. Dari asisten AI: halaman yang dibuka penerima Anda dari email (halaman berhenti berlangganan).
  • POST /v1/public/email-marketing/u/{token} — Berhenti berlangganan sekali klik RFC 8058 (dan tombol "hentikan semuanya" pada halaman). Operasi emailMarketingUnsubscribeOneClick. Dari asisten AI: dipanggil oleh sistem lain (penyedia atau pengunjung), bukan oleh Anda (berhenti berlangganan sekali klik RFC 8058).
  • GET /v1/public/email-marketing/warmup-u/{token} — Tautan berhenti berlangganan email pemanasan pool pemasaran (tanpa login). Operasi emailMarketingWarmupUnsubscribePage. Dari asisten AI: halaman yang dibuka penerima Anda dari email (halaman berhenti berlangganan pemanasan).
  • POST /v1/public/email-marketing/warmup-u/{token} — Berhenti berlangganan sekali klik RFC 8058 dari email pemanasan. Operasi emailMarketingWarmupUnsubscribeOneClick. Dari asisten AI: dipanggil oleh sistem lain (penyedia atau pengunjung), bukan oleh Anda (berhenti berlangganan pemanasan sekali klik).
  • POST /v1/webhooks/campaign-events — Menyerap peristiwa pengiriman bertanda tangan dari penyedia email. Operasi receiveCampaignDeliveryWebhook. Dari asisten AI: dipanggil oleh sistem lain (penyedia atau pengunjung), bukan oleh Anda (webhook pengiriman ESP bertanda tangan).
  • POST /v1/webhooks/campaigns/telnyx — Balasan SMS masuk (STOP / START) dari vendor SMS kami. Operasi receiveCampaignsTelnyxInbound. Dari asisten AI: dipanggil oleh sistem lain (penyedia atau pengunjung), bukan oleh Anda (webhook masuk Telnyx bertanda tangan).
  • POST /v1/webhooks/email-marketing/{connection_id} — Peristiwa pengiriman penyedia email milik pelanggan untuk satu koneksi pengiriman. Operasi receiveEmailMarketingProviderWebhook. Dari asisten AI: dipanggil oleh sistem lain (penyedia atau pengunjung), bukan oleh Anda (webhook pengirim-penyedia yang ditandatangani).

Flows

  • GET /v1/email-marketing/flows — Alur email (sambutan, drip, tanggal tahunan), satu halaman keyset. Operasi listEmailMarketingFlows. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/flows — Buat alur (dimulai sebagai draf). Operasi createEmailMarketingFlow. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • DELETE /v1/email-marketing/flows/{flow_id} — Hapus alur dan pendaftarannya (eksekusi yang telah terkirim tetap ada, sebagai kampanye). Operasi deleteEmailMarketingFlow. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • GET /v1/email-marketing/flows/{flow_id} — Satu alur beserta langkah-langkah dan laporannya (terdaftar, sedang berlangsung, eksekusi, dan penerima per langkah). Operasi getEmailMarketingFlow. Izin yang diperiksa: email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • PATCH /v1/email-marketing/flows/{flow_id} — Ubah alur; steps, jika diberikan, akan menggantikan seluruh urutan. Operasi updateEmailMarketingFlow. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/flows/{flow_id}/activate — Aktifkan alur; hanya orang yang bergabung dengan daftar mulai saat ini yang akan didaftarkan. Operasi activateEmailMarketingFlow. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.
  • POST /v1/email-marketing/flows/{flow_id}/pause — Jeda alur; langkah-langkah yang jatuh tempo akan menunggu dan tidak ada orang baru yang dikirimi email hingga diaktifkan kembali. Operasi pauseEmailMarketingFlow. Izin yang diperiksa: email_marketing.manage, email_marketing.view. Dari asisten AI: ya, melalui MCP.

Terbaru dari blog

Apa yang telah kami tulis tentang hosting, SEO, dan mengelola situs dalam skala besar.

SEO dan Pembangunan Tautan dari Lapisan Hosting: Pandangan Operator Tahun 2026

Bagaimana hosting membentuk pengindeksan dan link equity pada tahun 2026: menjaga halaman tetap terindeks, memeriksa domain lama sebelum mengembangkannya, membangun tautan tanpa jejak mesin pencari, dan pandangan jujur tentang apa yang dapat dan tidak dapat dilakukan infrastruktur untuk SEO.

Baca postingan →

Membuat WordPress Cepat dan Aman: Daftar Periksa Performa dan Plugin

Daftar periksa praktis untuk WordPress yang cepat dan aman: caching tingkat server, object cache per situs, beberapa plugin yang layak dijalankan, menjaga tumpukan teknologi tetap mutakhir, dan halaman WooCommerce yang tidak boleh Anda simpan di cache.

Baca postingan →

Cara Memilih Web Hosting Terkelola di Tahun 2026: Panduan Pembeli

Apa yang sebenarnya membedakan hosting terkelola yang baik dari kotak murah dengan panel kontrol — migrasi, pencadangan, isolasi, caching nyata, dan penskalaan yang jujur — dan cara menilainya sebelum Anda berkomitmen.

Baca postingan →

Baca blog →

Masih mengalami kendala?

Dukungan disertakan pada setiap paket, layanan meja bantuan buka selama 24 jam sehari, dan Anda dapat menulis kepada kami dalam salah satu dari 58 bahasa kami — kami akan menjawab Anda dalam bahasa Anda.

Hubungi dukungan Semua artikel