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
- Panelde Proje ayarları → API Erişimi bölümünü açın.
- + Yeni anahtar ile bir
pk_live_…anahtarı üretin. - 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
https://vonaflow.com/api/v1/callsKiş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.
| Alan | Tip | Açıklama |
|---|---|---|
contact.phone zorunlu | string | E.164 veya yerel format (05..) |
contact.name | string | Kişi adı |
contact.externalId | string | Kendi müşteri kimliğiniz — eşleme/tekilleştirme için |
variables | object | Senaryo değişkenleri (borç tutarı, randevu saati…) |
scheduledAt | ISO tarih | Verilirse çağrı planlanır |
callbackUrl | string | Tamamlanınca sonuç buraya POST edilir |
phoneNumberId / agentId | string | Opsiyonel 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
https://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
https://vonaflow.com/api/v1/messagesWhatsApp, 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.
| Alan | Tip | Açıklama |
|---|---|---|
channel zorunlu | string | whatsapp · instagram · telegram · facebook · email |
contact zorunlu | object | phone veya email (kanala göre) + name/externalId |
content | string | Mesaj metni ({{key}} destekler) |
variables | object | Yer tutucu değerleri |
templateId | string | WhatsApp şablonu (24s pencere dışı) |
channelAccountId | string | Opsiyonel 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
| Konu | Davranış |
|---|---|
| Kimlik | Bearer pk_live_… — eksik/geçersizse 401 |
| Idempotency | Idempotency-Key başlığı veya body alanı — aynı anahtar tekrar aramaz |
| Kapsam | Anahtar yalnızca kendi projesine erişir |
| Makine-okur şema | /api/openapi.json (Postman/Insomnia’ya import edilebilir) |