Geliştirici API’si

Kendi sisteminizden (CRM, tahsilat, randevu yazılımı) tek bir HTTP isteğiyle yapay zeka sesli araması veya WhatsApp / Instagram / e-posta mesajı tetikleyin. Anahtarlar proje bazında çalışır — her anahtar yalnızca kendi projesine erişir.

1 · Anahtar üretin

  1. Panelde Proje ayarları → API Erişimi bölümünü açın.
  2. + Yeni anahtar ile bir pk_live_… anahtarı üretin.
  3. Anahtarı güvenli saklayın — yalnızca bir kez gösterilir.

Her istekte Authorization: Bearer pk_live_… başlığını gönderin (veya X-Api-Key).

2 · Arama tetikleyin

POSThttps://vonaflow.com/api/v1/calls

Kişiyi hemen arar. scheduledAt verirseniz ileri tarihe planlanır. variables içindeki alanlar ajana {{key}} olarak aktarılır; senaryoyu (tahsilat/randevu/hatırlatma) projenin kendisi belirler.

AlanTipAçıklama
contact.phone zorunlustringE.164 veya yerel format (05..)
contact.namestringKişi adı
contact.externalIdstringKendi müşteri kimliğiniz — eşleme/tekilleştirme için
variablesobjectSenaryo değişkenleri (borç tutarı, randevu saati…)
scheduledAtISO tarihVerilirse çağrı planlanır
callbackUrlstringTamamlanınca sonuç buraya POST edilir
phoneNumberId / agentIdstringOpsiyonel override (varsayılan: projeden)
# tahsilat örneği
curl -X POST https://vonaflow.com/api/v1/calls \
  -H "Authorization: Bearer pk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "contact": { "phone": "+905321112233", "name": "Ahmet Yılmaz", "externalId": "crm-8842" },
    "variables": { "borc_tutari": "1.240 TL", "son_odeme": "15 Temmuz" },
    "callbackUrl": "https://sizin-sisteminiz/webhook"
  }'

# 202 Accepted
{ "scheduled": false, "status": "registered", "callRef": "6a50…" }

3 · Sonucu alın

GEThttps://vonaflow.com/api/v1/calls/{callRef}

Aramanın durumunu ve (tamamlandıysa) özet/duygu/süre/kayıt bağlantısını döner.

curl https://vonaflow.com/api/v1/calls/6a50… \
  -H "Authorization: Bearer pk_live_…"

{ "callRef": "6a50…", "status": "completed",
  "outcome": { "summary": "Ödeme sözü alındı…", "sentiment": "positive", "durationSec": 74 } }

Alternatif olarak callbackUrl verdiyseniz, çağrı bitince aynı sonuç call.completed olayı olarak sisteminize POST edilir.

4 · Mesaj gönderin

POSThttps://vonaflow.com/api/v1/messages

WhatsApp, Instagram, Telegram, Facebook veya e-posta mesajı gönderir. channelAccountId verilmezse projenin o kanaldaki varsayılan bağlı hesabı seçilir. content içindeki {{key}} yer tutucuları variables ile doldurulur.

AlanTipAçıklama
channel zorunlustringwhatsapp · instagram · telegram · facebook · email
contact zorunluobjectphone veya email (kanala göre) + name/externalId
contentstringMesaj metni ({{key}} destekler)
variablesobjectYer tutucu değerleri
templateIdstringWhatsApp şablonu (24s pencere dışı)
channelAccountIdstringOpsiyonel override (varsayılan: projeden)
# randevu hatırlatma — WhatsApp
curl -X POST https://vonaflow.com/api/v1/messages \
  -H "Authorization: Bearer pk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "whatsapp",
    "contact": { "phone": "+905321112233", "name": "Ahmet Yılmaz", "externalId": "crm-8842" },
    "content": "Merhaba {{name}}, randevunuz yarın 14:00. Onaylıyor musunuz?",
    "variables": { "name": "Ahmet" }
  }'

# 202 Accepted
{ "conversationId": "6a51…", "status": "sent", "simulated": false }

Müşteri yanıtları uygulamada otopilot tarafından karşılanır; dilerseniz message.received olayına outbound-webhook aboneliğiyle sisteminize akıtabilirsiniz.

Notlar

KonuDavranış
KimlikBearer pk_live_… — eksik/geçersizse 401
IdempotencyIdempotency-Key başlığı veya body alanı — aynı anahtar tekrar aramaz
KapsamAnahtar yalnızca kendi projesine erişir
Makine-okur şema/api/openapi.json (Postman/Insomnia’ya import edilebilir)