Senaryo
Bir klinik, WhatsApp kanalındaki hasta mesajlarını geceleri asistanın yanıtlamasını, gündüz ise yanıtları göndermeden önce ekibin görmesini istiyor. Sizin yazılımınız şunları yapar:- Bir kanalın şu an hangi modda çalıştığını okur.
- Gerekirse kanalın modunu değiştirir.
- Hasta ile bir temsilci yazışmaya başlayınca o sohbette asistanı duraklatır.
- Yarı-otomatik moddaki önerileri onaylar, düzenler ya da reddeder.
Authorization: Bearer <access_token> ve X-Tenant: <tenant_id> başlıkları gerekir. Örnekler https://app.flextell.ai/api/v1 adresini kullanır.
Geçerli modu okuma
Bir sohbete uygulanan mod şu sırayla belirlenir:1
Kanal sabitlemesi
Kanalın
ai_reply_mode alanı doluysa her zaman o geçerlidir; haftalık program yok sayılır.2
Kliniğin haftalık programı
Alan
null ise ai_reply_windows programına bakılır: saatli istisna, yoksa günün tam gün varsayılanı, o da yoksa closed.3
Program yoksa
Program hiç tanımlı değilse (
null ya da []) mod auto olur.GET /channels (scope: conversations:read ya da channels:read) veya GET /channels/{id} (scope: channels:read) ile okuyun:
ai_reply_mode değeri auto, semi_auto, closed ya da null olur. null, kanalın kliniğin programını izlediği anlamına gelir. Programı GET /settings/chat ile (scope: settings:read) okuyun; ai_reply_windows listesi yanıtın settings nesnesindedir.
Kanal modunu değiştirme
Bir kanalda asistanı kapatmanın, açmanın ya da öneri moduna almanın en kısa yolu kanalı güncellemektir.PUT /channels/{id} kısmi güncellemedir; yalnızca gönderdiğiniz alanlar değişir. Scope channels:write, izin Update:Channel gerekir.
PUT /settings/chat ile ai_reply_windows gönderin. Bu istek gövdede kullanıcının kendi geçerli password değerini ister ve Update:ChatSettings izni gerektirir. Pencere kuralları için Ayarlar sayfasına bakın.
Kanal sabitlemesi programdan güçlüdür. Bir kanalı
closed yaptıktan sonra programda o saat auto olsa bile asistan o kanalda yanıt vermez. Sabitlemeyi kaldırmak için ai_reply_mode: null gönderin.Sohbette asistanı duraklatma
Tek bir hasta sohbetinde asistanı susturmak için sohbet düzeyinde duraklatın. Kanalın modu değişmez; yalnızca o sohbet etkilenir. Scopeconversations:write, izin ToggleAgent:Conversation gerekir.
Önce durumu okuyun (conversations:read, View:Conversation):
agent_disabled, agent_expires_at, agent_disabled_by_user_name ve remaining_minutes alanlarını taşır. Süresi dolmuş bir duraklatma okuma sırasında temizlenir. Aynı yapı POST /conversations/{id}/open yanıtında agent alanı olarak da gelir.
duration_minutes 1 ile 525600 arasında olmalıdır; null ya da boş değer süresiz duraklatır. Süre dolunca asistan kendiliğinden açılır.
Asistan bazı durumlarda kendiliğinden duraklar, bunu ayrıca çağırmanız gerekmez:
- Asistan açıkken bir kullanıcı panelden, mobilden ya da API’den elle mesaj gönderirse sohbet 30 dakika duraklar.
- Klinik, WhatsApp telefonundan ya da Telegram bot hesabından doğrudan yanıt verirse sohbet 30 dakika duraklar.
- Düzenlenmiş bir öneriyi
take_over_agent: trueile gönderirseniz sohbet 30 dakika duraklar. - Otomatik modda asistan sohbeti insana devrederse sohbet süresiz duraklar.
Önerileri işleme
Yarı-otomatik modda asistan yanıtı göndermez; sohbette en çok bir bekleyen öneri tutar. Önerileri işlemek için tipik akış şöyledir:1
Bekleyen öneriyi okuyun
GET /conversations/{id}/ai-suggestion bekleyen öneriyi döner. Öneri yoksa 200 ile data: null gelir; 404 gelmez. Scope conversations:read, izin View:Conversation.2
Güncel olup olmadığına bakın
has_new_messages true ise hasta öneriden sonra yeni mesaj yazmıştır. Öneri kendiliğinden yenilenmez; POST /conversations/{id}/ai-suggestion/regenerate ile yenisini isteyin.3
Karar verin
Öneriyi olduğu gibi gönderin, düzenleyip gönderin ya da reddedin.
regenerate 202 döner; birkaç saniye sonra GET …/ai-suggestion ile tekrar okuyun. Önerinin canlı olarak size ulaşmasına güvenmeyin, okuma ile yoklayın.
Olduğu gibi ya da düzenleyip gönderme
202 ve {"status": "queued", "message_id": "semi_ai_…", "conversation_id": 123} biçimindedir. suggestion_edited için message zorunludur (en çok 4096 karakter). Gönderimde öneriye bağlı bekleyen işlemler de çalışır: randevu oluşturma, taşıma ve iptal; dosya, konum ve tedavi görseli gönderme; engelleme.
Reddetme ve puanlama
POST …/ai-suggestion/dismiss öneriyi reddeder. Öneriye bağlı bekleyen işlemler hiçbir zaman çalışmaz. PUT …/ai-suggestion/rating ise rating anahtarıyla (up, down ya da null) öneriyi puanlar; puan hastaya iletilmez.
Dikkat edilecekler
- Onay, randevuyu garanti etmez. Bekleyen işlemler gönderim anında yeniden doğrulanır. Saat dolmuşsa işlem sessizce atlanır, API hata dönmez ve onaylanan mesaj hastaya yine gider. Randevunun oluştuğunu Randevular kaynağından doğrulayın.
- Yarı-otomatik modda bazı işlemler anında çalışır. Hasta adı kaydı, destek talebi açma ve ön kayıt cevapları onay beklemez; randevu, dosya, konum ve engelleme işlemleri onaya bağlıdır.
- Duraklatma gönderilmemiş yanıtı da iptal eder. Sohbet duraklatıldığında kuyrukta bekleyen asistan yanıtı gönderilmez.
regenerateise duraklatılmış sohbette de çalışır. - Onaylamak asistanı duraklatmaz. Öneriyi olduğu gibi göndermek sohbeti duraklatmaz. Asistanın devreye girmemesini istiyorsanız duraklatmayı ayrıca yapın.
regeneratekoşulludur. Kanalın geçerli modu Yarı-otomatik olmalı ve son giden mesajdan sonra metinli, yanıtsız bir hasta mesajı bulunmalıdır; aksi hâlde422 SUGGESTION_SOURCE_MISSINGalırsınız. Her yeniden oluşturma AI kredisi harcar; bkz. Krediler.- Kota ve abonelik asistanı sessizce durdurur. AI sohbet kotası bittiğinde ya da abonelik süresi dolduğunda asistan yanıt vermeyi sessizce bırakır. Bu durumda mod
autogörünse de hastaya yanıt gitmez. - Panelde tamamen Kapalı hafta kaydedilemez. Yeni panel, tüm günleri Kapalı olan ve saatli bloğu olmayan bir haftayı boş program olarak gönderir; sonuç 7/24 Otomatik’tir. Aynı etki programı Sıfırla ile de oluşur. Asistanı klinik genelinde kapatmak için kanalları
closedyapın ya da API ile günleri açıkçaclosedpencereleriyle gönderin. - Görünürlük ve hatalar. Sohbeti göremeyen kullanıcı
404alır; hastası silinmiş sohbette409 CUSTOMER_ERASED, size atanmamış lead’de403 LEAD_NOT_ASSIGNEDdöner. Kurallar için İzinler ve görünürlük, hata biçimi için Hata kodları sayfasına bakın.