Kampanyalar

API Reference

Kampanyalar

Toplu gönderim, batch durum takibi, planlı kampanya ve campaign-level istatistik uçları.

Kampanya yüzeyi kişi listesi, şablon ve güvenli medya eklerini tek batch içinde birleştirir. Her kampanya kullanıcı scope’unda tutulur; başka bir müşteriye ait liste, şablon veya asset kullanılamaz.

Batch mantığı

Kampanya tek bir batch_id ile temsil edilir; gönderim durumu ve teslim metrikleri aynı kayıtta toplanır.

Kişiselleştirme

contact_list_id ve template_id birlikte kullanıldığında değişkenler liste satırlarındaki alanlardan çözülür.

İptal ve planlama

Queued batch iptal edilebilir; çok alıcılı kampanyalar ileri tarihe de planlanabilir.

POST/v1/messages/bulk
X-API-Key200 OK

Toplu kampanya oluştur

Kişi listesi, şablon ve isteğe bağlı `asset_id` kullanarak batch tabanlı toplu gönderim başlatır.

Zorunlu alandevice_id her kampanya için zorunludur.
Tipik kullanımcontact_list_id + template_id + default_message kombinasyonu çoğu kampanya için yeterlidir.

Kişi listesi, şablon ve asset ownership kontrolü batch yaratılmadan önce zorunlu olarak doğrulanır.

İstek

curl --request POST \
--url {{BASE_URL}}/v1/messages/bulk \
--header "X-API-Key: {{API_KEY}}" \
--header "Content-Type: application/json" \
--data '{
  "device_id": "{{DEVICE_ID}}",
  "name": "Nisan Kampanyası",
  "contact_list_id": "{{CONTACT_LIST_ID}}",
  "template_id": "{{TEMPLATE_ID}}",
  "asset_id": "{{ASSET_ID}}",
  "default_message": "Merhaba {{ad}}, yeni kampanyamız başladı."
}'

Yanıt

JSON
{
"data": {
  "batch_id": "fd9f7a2a-7120-4f54-a3b6-d74b2e2990d8",
  "name": "Nisan Kampanyası",
  "status": "queued",
  "total_count": 248,
  "created_at": "2026-04-01T09:22:15Z"
}
}
GET/v1/messages/bulk
X-API-Key200 OK

Kampanyaları listele

Kullanıcının batch geçmişini cihaz adı, durum ve temel funnel metrikleri ile listeler.

Kampanya funnel ayrıntısı gerekiyorsa GET /v1/messages/bulk/:batch_id/stats çağrısını kullanın.

Liste görünümü batch sağlık durumunu hızlı görmek için özet metrikler döndürür.

İstek

curl --request GET \
--url {{BASE_URL}}/v1/messages/bulk \
--header "X-API-Key: {{API_KEY}}"

Yanıt

JSON
{
"data": {
  "campaigns": [
    {
      "id": "fd9f7a2a-7120-4f54-a3b6-d74b2e2990d8",
      "name": "Nisan Kampanyası",
      "status": "completed",
      "total": 248,
      "sent": 248,
      "delivered": 214,
      "read": 177,
      "failed": 6,
      "pending": 0,
      "device_id": "3baedacf-53bf-4061-a0f5-5235cab38875",
      "device_name": "Satış Hattı",
      "created_at": "2026-04-01T09:22:15Z"
    }
  ]
}
}
GET/v1/messages/bulk/:batch_id
X-API-Key200 OK

Tek kampanya detayını al

Tek bir kampanyanın ilerleme durumu, cihaz kaynağı ve tamamlanma zamanını döndürür.

progress alanı gönderilmiş kayıtların toplam batch büyüklüğüne oranını verir.

Bu uç batch bazında operasyonel görünüm verir; alıcı bazlı breakdown için mesaj listesi uçlarını kullanın.

İstek

curl --request GET \
--url {{BASE_URL}}/v1/messages/bulk/{{BATCH_ID}} \
--header "X-API-Key: {{API_KEY}}"

Yanıt

JSON
{
"data": {
  "id": "fd9f7a2a-7120-4f54-a3b6-d74b2e2990d8",
  "name": "Nisan Kampanyası",
  "status": "completed",
  "created_at": "2026-04-01T09:22:15Z",
  "started_at": "2026-04-01T09:22:17Z",
  "completed_at": "2026-04-01T09:34:12Z",
  "total_recipients": 248,
  "sent": 248,
  "delivered": 214,
  "read": 177,
  "failed": 6,
  "pending": 0,
  "progress": 100,
  "device_id": "3baedacf-53bf-4061-a0f5-5235cab38875",
  "device_name": "Satış Hattı"
}
}
GET/v1/messages/bulk/:batch_id/stats
X-API-Key200 OK

Kampanya istatistiğini al

Tek bir batch için delivered, read, pending ve failed sayımlarını döndürür.

Kampanya performans panelinizi beslemek için en doğru batch özet kaynağı bu uçtur.

Bu uç campaign-level olduğu için public mesaj istatistik özetinden farklıdır; bu nedenle dokümanda yer alır.

İstek

curl --request GET \
--url {{BASE_URL}}/v1/messages/bulk/{{BATCH_ID}}/stats \
--header "X-API-Key: {{API_KEY}}"

Yanıt

JSON
{
"data": {
  "batch_id": "fd9f7a2a-7120-4f54-a3b6-d74b2e2990d8",
  "total_count": 248,
  "delivered_count": 214,
  "read_count": 177,
  "pending_count": 0,
  "failed_count": 6,
  "created_at": "2026-04-01T09:22:15Z",
  "updated_at": "2026-04-01T09:34:12Z"
}
}
POST/v1/messages/schedule/bulk
X-API-Key200 OK

Planlı kampanya oluştur

Çok alıcılı scheduled grup oluşturur ve planlı gönderimleri tek `group_id` altında yönetir.

recipients alanı kişi listesi yerine doğrudan numara listesi verir; her alıcı yine ayrı kota tüketir.

Scheduled grup içinde seçili numara iptali ve tüm grup iptali ayrı uçlarla desteklenir.

İstek

curl --request POST \
--url {{BASE_URL}}/v1/messages/schedule/bulk \
--header "X-API-Key: {{API_KEY}}" \
--header "Content-Type: application/json" \
--data '{
  "device_id": "{{DEVICE_ID}}",
  "group_name": "Bayram Kampanyası",
  "recipients": ["+905551112233", "+4915112345678"],
  "text": "Bayram fırsatlarımız hazır",
  "asset_id": "{{ASSET_ID}}",
  "scheduled_at": "2026-04-12T09:00:00Z"
}'

Yanıt

JSON
{
"data": {
  "group_id": "eb5f0936-a67f-4d4f-9807-0d087c9097dc",
  "group_name": "Bayram Kampanyası",
  "total_count": 2,
  "pending_count": 2,
  "scheduled_at": "2026-04-12T09:00:00Z"
}
}

Diğer kampanya uçları

MetotYolAmaç
POST/v1/messages/bulk/:batch_id/cancelKuyruktaki batch’i iptal eder
GET/v1/messages/scheduled/group/:group_idPlanlı grubun bekleyen kayıtlarını ve özetini döner
DELETE/v1/messages/scheduled/group/:group_idGroup içindeki pending kayıtları iptal eder
POST/v1/messages/scheduled/group/cancel-selectiveGroup içindeki seçili numaraları iptal eder

Not

Legacy amaçlı /v1/messages/bulk/schedule varyasyonu sistem içinde bulunabilir; dış entegrasyon için önerilen ve dokümante edilen uç /v1/messages/schedule/bulk yoludur.