Campaigns
POST /v1/campaigns
Create a campaign from a template and an audience.
Pengesahan
Hantar kunci API sebagai token pembawa. Titik akhir ini tidak menyatakan kebenaran tertentu dalam spesifikasi, jadi berikan kunci anda kebenaran minimum yang diperlukan dan semak respons tersebut daripada membuat andaian.
Tempat ID organisasi anda diletakkan
Titik akhir ini mengambil org_id sebagai medan dalam kandungan JSON.
ID organisasi anda terletak pada skrin kekunci API dalam papan pemuka anda, di sebelah kekunci itu sendiri. Ia adalah ID yang sama dalam setiap panggilan yang anda buat.
Cuba
Gantikan apa sahaja di dalam kurungan sudut dengan nilai anda sendiri, dan pemegang tempat kunci dengan kunci dari papan pemuka anda.
curl -X POST https://api.zinndigital.com/v1/campaigns \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "name": <string>, "template_id": <string> }'Sudah log masuk? Konsol API dalam papan pemuka anda mengisi id organisasi sebenar dan kunci anda sendiri, serta menjalankan permintaan terhadap API langsung supaya anda boleh melihat respons sebenar. Buka penamat ini dalam konsol API
Butiran
Create a campaign from a template and an audience segment. It is created as a draft and sends nothing until the send endpoint is called.
Badan permintaan
| Nama | Jenis | Diperlukan | Apakah ia |
|---|---|---|---|
name | string | Ya | — |
template_id | string | Ya | — |
segment_id | string | Tidak | — |
channels | string<email, in_app, slack, telegram>[] | Tidak | — |
scheduled_for | string | Tidak | — |
include_not_in_good_standing | boolean | Tidak | ⚖️ Suspended and unpaid organisations are excluded by default (CLAUDE.md §2.46); this is the explicit per-campaign override that makes a win-back campaign possible. The skip is… |
org_id | string | Tidak | — |
Respons
| Nama | Jenis | Diperlukan | Apakah ia |
|---|---|---|---|
id | string | Ya | — |
org_id | string | Ya | — |
name | string | Ya | — |
template_id | string | Ya | — |
segment_id | string | Tidak | — |
purpose | string<marketing, transactional> | Ya | — |
channels | string[] | Ya | — |
status | string<draft, scheduled, sending, paused, sent, cancelled, failed> | Ya | — |
scheduled_for | string | Tidak | — |
include_not_in_good_standing | boolean | Tidak | — |
total_recipients | integer | Ya | — |
skipped | CampaignSkipCounts | Ya | ⛔ Every skip counted separately and never silent, and **every one is present even when it is zero**. "4,127 recipients, 312 skipped — not in good standing" is rendered from thes… |
delivery | CampaignDeliveryCounts | Tidak | ⛔ `sent` is NOT `delivered`. `sent` means a provider accepted the hand-off; `delivered` means the receiving server accepted it, which arrives later by webhook. A screen showing… |
last_error | string | Tidak | — |
created_at | string | Ya | — |
started_at | string | Tidak | — |
finished_at | string | Tidak | — |
Ralat yang boleh dikembalikan oleh titik akhir ini
401 · 403 · 422