Skip to main content
Mesajlar, bir sohbetin içindeki yazışmanın satırlarıdır. Bu sayfa, entegrasyonunuzun bir sohbete metin, medya ve sesli not göndermesini, gönderilmiş mesajı düzenleyip silmesini ve mesaja tepki vermesini anlatır. Tüm endpoint’ler /api/v1/conversations/{id} altındadır. Gönderim kanalları için Kanallar sayfasına bakın.

Endpoint özeti

Tüm istekler Authorization: Bearer <access_token> ve X-Tenant: <tenant_id> başlıklarını gerektirir. Ortak başlıklar için İstek başlıkları sayfasına bakın. İzinlerin rol editöründeki karşılıkları Mesajlar → Gönder, Mesajlar → Güncelle ve Mesajlar → Sil etiketleridir. Hızlı Yanıt gönderimi için bkz. Hızlı Yanıtlar.
Görünmeyen veya başka kliniğe ait bir sohbet 404 RESOURCE_NOT_FOUND döner. Satış temsilcisi rolünde ViewAllConversations izni olmayan bir kullanıcı yalnızca kendisine atanmış lead’lerin sohbetlerini görür. Ayrıntı için İzinler ve görünürlük sayfasına bakın.

Mesaj nesnesi

Liste ve düzenleme/tepki yanıtları aynı nesneyi döner. GET /messages için per_page (1–100, varsayılan 50), page, search (en çok 255 karakter; mesaj metninde ve sesli not yazıya çevirisinde arar), message_type[] ve all_lines parametreleri vardır. Sonuçlar created_at azalan sırayla gelir.

Metin mesajı gönderme

POST /conversations/{id}/messages isteğinin gövdesi: Kanal başına en çok uzunluk: WhatsApp 65536, Telegram 4096, Instagram 1000, web sitesi için sınır yok. Aşılırsa 422 MESSAGE_TOO_LONG döner. markdown metni olduğu gibi saklanır ve kanala göre dönüştürülür: WhatsApp’ta *kalın*, _italik_, ~üstü çizili~; Telegram’da HTML; Instagram ve web sitesinde düz metin.
Yanıt 202 Accepted olur. Mesaj kuyruğa alınmıştır, henüz kanala iletilmemiş olabilir:
message_id geçici bir kimliktir. Kanal mesajı kabul ettiğinde gerçek mesaj oluşur ve channel_message_id sağlayıcının kimliğini taşır. Gönderim yanıtı mesajın iletildiğini garanti etmez; durumu GET /messages ile veya gerçek zamanlı olaylarla izleyin.
Gönderimde sık görülen hatalar: CHANNEL_INACTIVE, kanalı sizin kapattığınız durumdur; kanalı yeniden etkinleştirmeden gönderim yapılamaz. Yanıtın message metni Bu sohbetin kanalı pasif. Mesaj göndermek için kanalı yeniden etkinleştirin. olur. Sağlayıcı bağlantısının kopuk olduğu durum bundan farklıdır ve CHANNEL_NOT_CONNECTED koduyla ayrılır. Kontrol, istek kuyruğa alınmadan önce yapılır; metin, medya, sesli not, Hızlı Yanıt, tepki ve AI önerisi gönderimi için geçerlidir.
İstek kabul edildikten (202) sonra hat kapatılırsa mesaj saklanır, ancak kanala iletilmez: mesajın delivery_status değeri failed olur ve güncel mesajla bir ChatLogUpdated olayı yayınlanır. 202 yanıtına güvenmeyin; durumu GET /messages veya gerçek zamanlı olaylarla doğrulayın.
WhatsApp dışındaki kanallar için mesaj hakkı sayılmaz. WhatsApp’ta iletilen her mesaj bir birim harcar; sağlayıcı hatasında birim iade edilir.
AI asistan o sohbette çalışıyorsa, API’den gönderilen metin, medya, sesli not veya Hızlı Yanıt asistanı 30 dakika duraklatır.

Medya gönderme

POST /conversations/{id}/messages/media isteği multipart/form-data olmalıdır. Mesaj türü dosyanın MIME önekinden belirlenir: image/ görsel, audio/ ses, video/ video, diğerleri belge. Yükleme kliniğin depolama alanından düşer; üst sınır aşılırsa 422 STORAGE_HARD_LIMIT_EXCEEDED döner. Dosya yükleme kuralları için Dosya yükleme sayfasına bakın. Kanalların gönderim için desteklediği dosya türleri: Desteklenmeyen tür 422 UNSUPPORTED_FILE_TYPE döner.

Sesli not

POST /conversations/{id}/messages/voice yalnızca file alanını (audio/*, en çok 50 MB) alır ve dosyayı sesli not olarak gönderir. Açıklama metni yoktur. Instagram sesli notu desteklemez; 422 UNSUPPORTED_FILE_TYPE döner.

Albüm gönderme

Bir albüm için her görseli ayrı bir istekle, aynı media_group_id ve kendi media_group_index değeriyle gönderin. media_group_id değerini istemcinizde üretin.
Aynı media_group_id başka bir sohbette veya başka bir kullanıcıyla kullanılırsa 422 MEDIA_GROUP_CONFLICT döner. Albüm alanı olmayan tek medya gönderimleri izlenmez; aynı isteği tekrarlarsanız ikinci bir mesaj gider.

Düzenleme, silme ve tepki

Üç işlem de yalnızca kliniğin gönderdiği (giden) mesajlarda çalışır. Hastanın mesajı hiçbir kanalda düzenlenemez veya silinemez. Kanal önce güncellenir; sağlayıcı reddederse kayıt değişmez.

Düzenleme

PUT /conversations/{id}/messages/{messageId} gövdesinde message (zorunlu, en çok 5000 karakter) ve isteğe bağlı message_format alır; biçim verilmezse mesajın mevcut biçimi korunur. Yanıt, is_edited: true olan güncel mesaj nesnesidir. Update:Message izni olan her kullanıcı, AI tarafından gönderilenler dahil, giden bir metni düzenleyebilir.

Silme

DELETE /conversations/{id}/messages/{messageId} mesajı kanalda herkesten siler ve kayıtta gizler. Mesaj kaydı kalır; is_deleted true olur, message, quoted_text ve transcript alanları null döner. Sohbet listesindeki önizleme Bu mesaj silindi yazar. Sağlayıcı kimliği olmayan bir mesaj yalnızca Flextell’de gizlenir.

Tepki

POST /conversations/{id}/messages/{messageId}/reactions gövdesinde emoji alanı bulunmalıdır. Değer 👍, ❤️, 😂, 😮, 😢, 🙏 emojilerinden biridir; tepkiyi kaldırmak için null gönderin. Boş gövde reddedilir. Bir mesajda klinik tarafından en fazla bir tepki bulunur. Başka bir personelin tepkisi öncekinin yerine geçer. Hastanın tepkisi ayrı tutulur.
MESSAGE_EDIT_BLOCKED ve MESSAGE_EDIT_FAILED yanıtlarındaki message metni İngilizce gelebilir. Kodu esas alın, metni kullanıcıya olduğu gibi göstermeyin.

Sıralama ve tekrar deneme

Gönderim uçları asenkrondur ve yanıt 202 döner. Sıra ve tekrar için şunları bilin:
  • Aynı sohbete art arda yapılan gönderimler en az 2 saniye arayla iletilir; mesajlar istek sırasıyla gider.
  • Albümde teslim sırası media_group_index değerini izler. Bir öğe, düşük indeksli öğeleri bekler: kuyrukta veya gönderimde olanlar için en çok 120 saniye, hiç ulaşmayan bir indeks için en çok 15 saniye.
  • Albüm öğesini aynı media_group_id ve media_group_index ile yeniden gönderirseniz yeni mesaj oluşmaz; ilk isteğin message_id değeri döner ve dosya yeniden yüklenmez.
  • Önceki deneme başarısız olduysa veya 10 dakikadan uzun süredir kuyrukta ya da gönderimde takılı kaldıysa, yeniden deneme mesajı tekrar gönderir.
  • Bu tekrar koruması 7 gün geçerlidir.
  • Düz metin, albümsüz tek medya ve sesli not gönderimlerinde tekrar koruması yoktur. Ağ hatasında isteği hemen tekrarlamayın; önce GET /messages ile mesajın oluşup oluşmadığına bakın.
  • Her yeni mesaj (hasta, personel, AI veya sistem) sohbeti listede yukarı taşır. İçe aktarılan eski mesajlar sohbeti geriye almaz.
Hata ve genel yanıt biçimleri için Hatalar ve Hata kodları, istek sınırları için Oran sınırları sayfasına bakın. Adım adım bir akış için Mesaj gönderme rehberi sayfasını izleyin.