Geliştiriciler
API uç noktaları
Kişi ekleme ve bulma, kampanyalar ve görüşme sonuçları için istek ve cevap alanları.
Tüm adresler https://panel.etemsilci.com/api/v1 altındadır ve Authorization: Bearer <anahtar> başlığı gerektirir.
| Yöntem | Adres | Ne yapar? |
|---|---|---|
| POST | /contacts |
Kişi ekler veya günceller; campaign_id ile kampanyaya koyar |
| GET | /contacts?phone=… |
Telefonla kişi bulur |
| GET | /contacts/{id} |
Kişi bilgisi |
| GET | /campaigns |
Kampanyaları listeler |
| POST | /campaigns/{id}/contacts |
Mevcut kişileri kampanyaya ekler |
| GET | /calls |
Biten görüşmeler |
| GET | /calls/{id} |
Tek görüşme |
Kişi ekleme veya güncelleme
POST /contacts kişiyi telefona göre bulur; yoksa oluşturur (201), varsa yalnızca gönderdiğiniz alanları günceller (200).
curl -X POST https://panel.etemsilci.com/api/v1/contacts \
-H "Authorization: Bearer et_live_…" \
-H "Content-Type: application/json" \
-d '{
"phone": "05321234567",
"first_name": "Ayşe",
"last_name": "Yılmaz",
"about": "Web sitemizdeki teklif formunu doldurdu.",
"campaign_id": 12
}'
| Alan | Kural |
|---|---|
phone |
Zorunlu. 0532…, +90532… ya da 532… biçiminde olabilir. Yurt dışı numaralar + veya 00 ile. |
first_name, last_name |
En fazla 120 karakter. |
company |
En fazla 255 karakter. |
email |
Geçerli e-posta. |
customer_type |
individual (Bireysel, varsayılan) veya merchant (Tacir / esnaf). |
iys_status |
unchecked (varsayılan), allowed, denied veya not_found. |
consent_source |
İzni nereden aldığınız, en fazla 120 karakter. |
about |
Kişi hakkında bilgi; asistan görüşmede kullanır. En fazla 2000 karakter. |
custom_fields |
Nesne, en fazla 30 alan; değerler metin veya sayı (en fazla 500 karakter). Var olan alanlarla birleştirilir. |
campaign_id |
Verilirse kişi bu kampanyaya eklenir. |
Cevap: {"data": {kişi}, "created": true|false, "campaign": {"campaign_id", "status", "next_attempt_at", "excluded_reason"} | null}.
campaign_id verdiğinizde kişi kampanyaya eklenir ve kampanya aktifse, arama saatleri içindeyse genellikle bir dakika içinde aranır. Bireysel kişiler yalnızca İYS onayı varsa aranır; onay bilgisini iys_status ve consent_source ile gönderebilirsiniz. Aranmayacaklar listesindeki kişi kampanyaya excluded durumuyla eklenir.
Kişi alanları: id, phone, first_name, last_name, company, email, customer_type, iys_status, do_not_call, about, custom_fields, created_at.
Kişi bulma
GET /contacts?phone=05321234567 → {"data": [kişi]} ya da bulunamazsa {"data": []}.
Kampanyalar
GET /campaigns → {"data": [{"id", "name", "status", "goal"}]}. status: draft, active, paused, completed. goal: meeting, qualify, inform, callback.
POST /campaigns/{id}/contacts gövdesinde contact_ids (kişi kimlikleri) ve/veya phones (telefonlar) dizisi gönderin (her biri en fazla 1000). Yalnızca kayıtlı kişiler eklenir. Cevap: {"added": n, "matched": m}.
Görüşmeler
GET /calls sonuçlanmış görüşmeleri, en yeni önce döner. Sorgu parametreleri:
since: bu zamandan sonra sonuçlananlar (ör.2026-10-01T00:00:00Z).campaign_id,outcome(ör.interested)limit: 1–100, varsayılan 25.
Sayfalama yoktur; düzenli çekim için son aldığınız görüşmenin finalized_at değerini bir sonraki istekte since olarak kullanın.
curl "https://panel.etemsilci.com/api/v1/calls?since=2026-10-01T00:00:00Z&limit=50" \
-H "Authorization: Bearer et_live_…"
GET /calls/{id} tek bir görüşmeyi döner (kimlik, harf ve rakamlardan oluşan bir metindir).
Görüşme alanları: id, campaign {id, name}, contact {id, phone, name}, status, outcome, outcome_label, direction (outbound / inbound), is_test, answered_at, ended_at, duration_seconds, summary, notes, interest_score, next_action, callback_at, finalized_at, created_at.
outcome değerleri ve Türkçe karşılıkları için Görüşme sonuçları ne anlama gelir? makalesine bakın: no_answer (Açmadı), busy (Meşgul), wrong_number (Yanlış numara), failed (Teknik hata), voicemail (Telesekreter), completed (Görüşme yapıldı), interested (İlgileniyor), callback_requested (Tekrar aranmak istiyor), follow_up_planned (Planlama yapıldı), meeting_scheduled (Toplantı ayarlandı), not_interested (İlgilenmiyor), do_not_call (Aranmak istemiyor).