Authorization: Bearer <access_token> ve X-Tenant: <tenant_id> başlıklarıyla yapılır; ayrıntı için Klinikler ve X-Tenant sayfasına bakın.
Uç noktalar
/whatsapp/* uç noktaları yalnızca type değeri whatsapp ve provider değeri evolution_api olan kanallarda çalışır. Başka bir klinikteki kanal kimliği 404 döner.
Kanal oluşturma
POST /v1/channels ile type: "whatsapp" kanalı açın.
Yanıt
201 ve kanal nesnesidir. Kanal closed durumda başlar.
Yanıtta QR kodu yoktur; QR için sonraki bölümdeki connect çağrısını yapın.
object
QR ile eşleştirme
1
Bağlantıyı başlatın
POST /v1/channels/{id}/whatsapp/connect çağrısı kanalı waiting durumuna alır ve önceki connection_error değerini temizler. Gövde göndermeniz gerekmez.2
QR kodunu gösterin
Yanıttaki
qr_code değerini <img src="…"> içinde olduğu gibi kullanın; değer data:image/png;base64,… biçimindedir. QR gelmezse null olabilir.3
Alternatifi sunun
QR okutulamıyorsa
pairing_code değerini gösterin. Kullanıcı WhatsApp’ta Bunun yerine telefon numarasıyla bağla’ya dokunup bu kodu girer.4
Durumu izleyin
connection-state uç noktasını yaklaşık 3 saniyede bir sorgulayın; state değeri open olunca eşleşme tamamdır.Yanıt (kısaltılmış)
Bağlantı durumu
GET /v1/channels/{id}/whatsapp/connection-state yanıtı {channel, state, qr_code, pairing_code} biçimindedir. Çağrı, WhatsApp tarafındaki gerçek durumla Flextell’deki kanal durumunu eşitler.
statedeğericonnectingiken yanıt, o an geçerliqr_codevepairing_codedeğerlerini de taşır. QR yaklaşık 45 saniyede bir yenilenir; her sorguda gelen yeni kodu gösterin.openveclosedurumlarında QR istenmez.- Bağlantı
opengöründüğünde Flextell eşleşen numarayı doğrular. Numara henüz doğrulanmadıysa kanal kısa sürewaitingkalır. - Panel, üst üste 3 sorguda
closeveyarefusedgelirse QR’ı süresi dolmuş sayar. Siz de bu durumda yenidenconnectçağırıp yeni QR alın.
Numara uyuşmazlığı
QR,address alanındaki numaradan farklı bir telefonla okutulursa Flextell eşleşmeyi sonlandırır. Kanal closed olur, state değeri close döner ve connection_error.message nedeni açıklar. Örnek mesaj: Bu kanal +90 555 111 22 33 numarası için tanımlı, ancak QR kodu +90 555 999 88 77 numarasıyla okutulduğu için bağlantı kapatıldı. …
İki çözüm vardır: QR’ı doğru numaralı telefonla yeniden okutun ya da numara gerçekten değiştiyse önce PUT /v1/channels/{id} ile address değerini güncelleyip sonra connect çağırın.
Telefon cihaz bağlantısını kaldırırsa veya oturum düşerse kanal
closed olur. Yeniden connect çağırarak yeni QR alabilirsiniz.Geçmiş eşitleme
Geçmiş eşitleme, telefondaki eski WhatsApp mesajlarını Flextell’e aktarır. Her hattın ayarı ve çalıştırmaları ayrıdır. Bir kişi iki hatla yazışmışsa tek hasta kaydı ve her hat için ayrı sohbet oluşur.Ayarlar
PUT /v1/channels/{id}/whatsapp/history-sync gövdesinde beş alanın tamamı zorunludur.
Yanıt
{configured, settings, latest} biçimindedir. Ayar hiç kaydedilmediyse configured değeri false olur. Hat bağlı değilken start_now gönderirseniz eşitleme, hat bir sonraki bağlanışında kendiliğinden başlar.
Eşitleme şu zamanlarda çalışır:
- Hat ilk eşleştiğinde, ayar açıksa (
trigger: initial). - Bağlantı kopup geri geldiğinde; arada kaçan mesajlar aktarılır (
trigger: reconnect). start_nowveya/startçağrısıyla (trigger: manual).
period_days kadar geriye gider. Yeniden bağlanmada kopma anından 15 dakika öncesine gider.
Hemen başlatma
POST /v1/channels/{id}/whatsapp/history-sync/start bir çalıştırma başlatır. Zaten bekleyen veya süren bir çalıştırma varsa yenisini açmaz, onu döndürür.
Çalıştırma nesnesi
GET /v1/channels/whatsapp/history-syncs en yeni 50 çalıştırmayı verir (sayfalama yok). active=1 yalnızca pending ve running olanları getirir.
Aktarım kuralları
- Aktarım sessizdir: AI yanıt vermez, bildirim gitmez, sohbetler arşivden çıkmaz. Mesajlar özgün zamanıyla kaydedilir ve müşteri mesajları okundu sayılır.
- Lead yalnızca
new_contact_typedeğerileadiken oluşur. - Medya yalnızca 30 günden yeni ve WhatsApp’ta hâlâ erişilebilir mesajlar için indirilir.
- Gruplar, yayın listeleri ve bültenler atlanır.
- Silinmiş bir hasta eski mesajlarla geri gelmez; bu mesajlar
deleted_contactaltında sayılır. - Aynı WhatsApp mesajı, hat ve yön bazında bir kez saklanır; tekrar çalıştırmak kopya üretmez.
- Çalıştırma sırasında hat koparsa çalıştırma
pendingolur ve hat yeniden bağlanınca devam eder.
İlerlemeyi gerçek zamanlı izlemek için
WhatsappHistorySyncProgressed olayını private-chat-log.{tenantId} kanalında dinleyebilirsiniz. Bu kanala yalnızca tüm sohbetleri görebilen kullanıcılar abone olabilir; diğerleri için history-syncs?active=1 uç noktasını sorgulayın. Ayrıntı: Kanallar ve olaylar.Webhook ayarları
Bu ayar, WhatsApp’tan gelen olayların Flextell’e hangi adresten ve hangi olay türleriyle ulaşacağını belirler. Çoğu entegrasyonda değiştirmeniz gerekmez.GET yanıtı {url, enabled, events} biçimindedir. Ayar hiç yapılmamışsa enabled: true ve varsayılan olaylar döner: CONNECTION_UPDATE, MESSAGES_UPSERT, MESSAGES_EDITED, MESSAGES_UPDATE, MESSAGES_DELETE, PRESENCE_UPDATE.
Seçilebilir olay adları
Seçilebilir olay adları
APPLICATION_STARTUP, QRCODE_UPDATED, CONNECTION_UPDATE, MESSAGES_SET, MESSAGES_UPSERT, MESSAGES_EDITED, MESSAGES_UPDATE, MESSAGES_DELETE, SEND_MESSAGE, CONTACTS_SET, CONTACTS_UPSERT, CONTACTS_UPDATE, PRESENCE_UPDATE, CHATS_SET, CHATS_UPDATE, CHATS_UPSERT, CHATS_DELETE, GROUPS_UPSERT, GROUPS_UPDATE, GROUP_PARTICIPANTS_UPDATE, NEW_TOKEN, TYPEBOT_START, TYPEBOT_CHANGE_STATUSHatalar
Hata gövdesi{"success": false, "error_code", "message", "errors"?} biçimindedir. Genel kurallar için Hata kodları sayfasına bakın.
CHANNEL_NOT_CONNECTED ile CHANNEL_INACTIVE farklı durumlardır: CHANNEL_NOT_CONNECTED hattın WhatsApp bağlantısı kopukken, CHANNEL_INACTIVE kanalın is_active anahtarı kapalıyken döner. Sohbette metin, medya, sesli mesaj, hızlı yanıt, tepki veya AI önerisi göndermeyi kanalı pasif bir sohbette denerseniz istek kuyruğa alınmadan 422 CHANNEL_INACTIVE ile reddedilir; mesaj saklanmaz. Ayrıntı: Mesaj gönderme.
Gönderim kabul edildikten sonra hat kapatılırsa mesaj saklanır ve metadata.delivery_status değeri failed olur; aynı anda ChatLogUpdated olayı yayınlanır (Kanallar ve olaylar).
Gerekli izin yoksa istek 403 ile reddedilir. WhatsApp tarafındaki hazırlık kanal kaydedildikten sonra yapılır; hazırlık başarısız olsa bile POST /v1/channels 201 döner. Bu durumda connect çağrısını yeniden deneyin.
İlgili sayfalar
Kanallar
Kanal kaynağının tüm alanları ve diğer kanal türleri.
Telegram
Bot token ile Telegram kanalı kurma.
WhatsApp sorun giderme
Bağlantı kopması ve numara uyuşmazlığı çözümleri.
İzinler ve görünürlük
Kanal izinleri ve scope eşleşmeleri.