CRM

channels

35 uç · /api/crm/v1/channels

İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 35 ucun elle doğrulanmış gövde örneği henüz yok; o uçlarda iskelet gövdesizdir — uydurma bir alan yazmıyoruz.

POST/api/crm/public/v1/channels/consent

POST /channels/consent — WhatsApp gönderim onayını kaydet.

API anahtarı
İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/public/v1/channels/consent" \
  -H "Authorization: Bearer blsk_..." \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/public/v1/channels/custom/{id}/conversations/{conversation_id}/csat

POST …/custom/{id}/conversations/{conversation_id}/csat — müşteri kiracının arayüzünde

API anahtarıYol parametresi: idconversation_id

puan verdi. AYNI CSAT kapısı (csat::respond, ilk yanıt kazanır); anket henüz kurulmadıysa kiracının CSAT ayarına göre KURULUR (kapalıysa 409 — puan uydurulmaz).

İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/public/v1/channels/custom/<id>/conversations/<conversation_id>/csat" \
  -H "Authorization: Bearer blsk_..." \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/public/v1/channels/custom/{id}/conversations/{conversation_id}/escalate

POST …/custom/{id}/conversations/{conversation_id}/escalate — müşteri kiracının

API anahtarıYol parametresi: idconversation_id

arayüzünde "bir insanla görüşmek istiyorum" dedi. AI'ın devir kapısı (hand_over): sahiplik + durum + atama + ekibe duyuru orada; burada yeniden yazılmaz.

İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/public/v1/channels/custom/<id>/conversations/<conversation_id>/escalate" \
  -H "Authorization: Bearer blsk_..." \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/public/v1/channels/custom/{id}/messages

POST /api/crm/public/v1/channels/custom/{account_id}/messages — kiracının sisteminde

API anahtarıYol parametresi: id

müşteri yazdı. Ortak ingest_inbound kapısından geçer: kişi, tek konuşma (yeniden açma), panel yayını, webhook ve BLE AI yanıtı orada — burada YENİDEN YAZILMAZ.

İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/public/v1/channels/custom/<id>/messages" \
  -H "Authorization: Bearer blsk_..." \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/public/v1/channels/custom/{id}/submissions

POST /api/crm/public/v1/channels/custom/{account_id}/submissions — kiracının

API anahtarıYol parametresi: id

yazılımında bir form gönderildi. Web formu köprüsüyle AYNI kapıdan geçer (web_forms::talep_ac): kişi (e-posta, yoksa telefon) · talep · künye · bildirim · fırsat · mükerrer koruması orada — burada YENİDEN YAZILMAZ.

İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/public/v1/channels/custom/<id>/submissions" \
  -H "Authorization: Bearer blsk_..." \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/crm/v1/channels

List channels

Oturum
İstek
curl -X GET "https://{slug}.crm.blesyum.app/api/crm/v1/channels" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/crm/v1/channels/{id}

Disconnect channel

OturumYol parametresi: id
İstek
curl -X DELETE "https://{slug}.crm.blesyum.app/api/crm/v1/channels/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PATCH/api/crm/v1/channels/{id}/ai

Uyumluluk ucu — hesabın kanalında BLE AI'ı aç/kapat. Karar Dağıtım'ın kanal satırıdır

OturumYol parametresi: id

(channels::admin::set_ai_enabled); panelde bu anahtar artık YALNIZ Dağıtım ekranında.

İstek
curl -X PATCH "https://{slug}.crm.blesyum.app/api/crm/v1/channels/<id>/ai" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/crm/v1/channels/{id}/calling

GET /api/crm/v1/channels/{id}/calling — WhatsApp numarasının arama durumu (CALL-05).

OturumYol parametresi: id
İstek
curl -X GET "https://{slug}.crm.blesyum.app/api/crm/v1/channels/<id>/calling" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PUT/api/crm/v1/channels/{id}/calling

PUT /api/crm/v1/channels/{id}/calling — aramaları aç/kapat. Açma Meta + Santral turunu

OturumYol parametresi: id

SENKRON yapar ve sonucu (başarı ya da Meta'nın reddi) döner — panel sebebi hemen gösterir.

İstek
curl -X PUT "https://{slug}.crm.blesyum.app/api/crm/v1/channels/<id>/calling" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/crm/v1/channels/{id}/gelen-testi

GET /api/crm/v1/channels/{id}/gelen-testi — gelen mesaj doğrulamasının özeti + (süre

OturumYol parametresi: id

dolduysa) hesabın uyarıları (WA-GELEN-01). Panel test penceresi bunu birkaç saniyede bir yoklar.

İstek
curl -X GET "https://{slug}.crm.blesyum.app/api/crm/v1/channels/<id>/gelen-testi" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/v1/channels/{id}/gelen-testi

POST /api/crm/v1/channels/{id}/gelen-testi — yeni test kodu üret (öncekini geçersiz kılar).

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/v1/channels/<id>/gelen-testi" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PATCH/api/crm/v1/channels/{id}/status

Set channel status

OturumYol parametresi: id
İstek
curl -X PATCH "https://{slug}.crm.blesyum.app/api/crm/v1/channels/<id>/status" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/crm/v1/channels/{id}/webhook

GET /api/crm/v1/channels/{id}/webhook — Telegram'daki GÜNCEL durumu sor.

OturumYol parametresi: id

Ekranın "gerçekten kayıtlı mı" sorusunu yerel bayrağa değil TELEGRAM'a sorar: bayrak bizim yazdığımız şey, gerçek ise onların bildiği şey. İkisi ayrışırsa (biri webhook'u dışarıdan değiştirdiyse) panel yalan söylüyor demektir; çağrı bayrağı ölçülen gerçeğe eşitler.

İstek
curl -X GET "https://{slug}.crm.blesyum.app/api/crm/v1/channels/<id>/webhook" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/v1/channels/{id}/webhook

POST /api/crm/v1/channels/{id}/webhook — webhook'u (yeniden) kaydet.

OturumYol parametresi: id

Kurtarma yolu: bağlama sırasında Telegram'a ulaşılamadıysa, biri webhook'u dışarıdan değiştirdiyse ya da kanal bu ADIM eklenmeden önce bağlandıysa tek tıkla düzelir. Kaydı ve doğrulamasını ensure_webhook yapar — kararı çağrı yerine dağıtmak, birinde secret_tokenin ya da doğrulamanın unutulması demekti.

İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/v1/channels/<id>/webhook" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/v1/channels/connect/{channel}

Connect channel

OturumYol parametresi: channel
İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/v1/channels/connect/<channel>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/v1/channels/consent

POST /channels/consent — WhatsApp gönderim onayını kaydet.

Oturum
İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/v1/channels/consent" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/v1/channels/custom

POST /api/crm/v1/channels/custom — özel kanal aç. Kanal anahtarı ve imza sırrı YALNIZ

Oturum

bu yanıtta görünür.

İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/v1/channels/custom" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PATCH/api/crm/v1/channels/custom/{id}

PATCH /api/crm/v1/channels/custom/{id} — webhook adresini değiştir (sır korunur).

OturumYol parametresi: id
İstek
curl -X PATCH "https://{slug}.crm.blesyum.app/api/crm/v1/channels/custom/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/v1/channels/custom/{id}/ping

POST /api/crm/v1/channels/custom/{id}/ping — teslimi yeniden dene (kurtarma düğmesi).

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/v1/channels/custom/<id>/ping" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/v1/channels/custom/{id}/rotate-key

POST /api/crm/v1/channels/custom/{id}/rotate-key — yeni kanal anahtarı (bir kez görünür).

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/v1/channels/custom/<id>/rotate-key" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/v1/channels/custom/{id}/rotate-secret

POST /api/crm/v1/channels/custom/{id}/rotate-secret — yeni imza sırrı (eskisi ANINDA ölür).

OturumYol parametresi: id
İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/v1/channels/custom/<id>/rotate-secret" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/crm/v1/channels/help-center

GET /api/crm/v1/channels/help-center — Kanallar › Yardım merkezi çekmecesi (HC-KANAL-01).

Oturum
İstek
curl -X GET "https://{slug}.crm.blesyum.app/api/crm/v1/channels/help-center" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PUT/api/crm/v1/channels/help-center

PUT /api/crm/v1/channels/help-center — yalnız gönderilen alanlar yazılır; yanıt

Oturum

GÜNCEL özettir (çekmece ikinci istek atmadan tazelenir).

İstek
curl -X PUT "https://{slug}.crm.blesyum.app/api/crm/v1/channels/help-center" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/crm/v1/channels/meta/oauth/callback

CF14 — Meta Embedded Signup callback. **PUBLIC** (Meta tarayıcıyı buraya yönlendirir; Bearer

Herkese açık

YOK). Kimlik/kiracı tek-kullanımlık state satırından çözülür. Sıra: state tüket → code→token → debug_token ile GERÇEK varlık listesi → iddia edilen varlık o listede mi (anti-spoof) → bağlantı + hesap(lar) → WABA'ya abone ol → şablonları senkronla.

İstek
curl -X GET "https://{slug}.crm.blesyum.app/api/crm/v1/channels/meta/oauth/callback" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/crm/v1/channels/meta/oauth/start

CF14 — Meta Embedded Signup başlat. **JSON döner, 307 DÖNMEZ.**

Oturum

Eskiden 307 Location dönüyordu ve frontend üst-düzey <a href> ile geliyordu; tarayıcı navigasyonu Bearer başlığı taşımadığı için bu uç config dolar dolmaz 401 verecekti (kodun kendi yorumu bunu öngörmüştü). Artık authed fetch ile {url} alınır ve istemci window.location.assign(url) yapar — yetki kapısı korunur, akış çalışır.

İstek
curl -X GET "https://{slug}.crm.blesyum.app/api/crm/v1/channels/meta/oauth/start" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/v1/channels/send-template

Send template

Oturum
İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/v1/channels/send-template" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/v1/channels/telegram/business/start

POST /api/crm/v1/channels/telegram/business/start — firmanın Telegram hesabını bağlamayı

Oturum

başlat. JSON döner ({link:{url, state, bot_username, expires_at}}); panel bağlantıyı yeni sekmede açar ve masaüstünde QR olarak gösterir, sonra durumu yoklar.

İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/v1/channels/telegram/business/start" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/crm/v1/channels/templates

List templates

Oturum
İstek
curl -X GET "https://{slug}.crm.blesyum.app/api/crm/v1/channels/templates" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/v1/channels/templates

Submit template

Oturum
İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/v1/channels/templates" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
PATCH/api/crm/v1/channels/templates/{id}

Şablonu düzenle. Ad/dil değişmez; kategori + bileşenler yeniden incelemeye girer.

OturumYol parametresi: id

**Neden gerekli:** Meta silinen bir şablonun adını 4 hafta boyunca yeniden kullandırmaz — yani reddedilen bir şablonu "sil, yenisini yap" ile düzeltmek, kullanıcıyı bir ay o addan mahrum bırakmaktır.

İstek
curl -X PATCH "https://{slug}.crm.blesyum.app/api/crm/v1/channels/templates/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/crm/v1/channels/templates/{id}

Şablonu sil (Meta'da ve yerelde). Meta ad bazlı siler → tüm dilleri gider.

OturumYol parametresi: id
İstek
curl -X DELETE "https://{slug}.crm.blesyum.app/api/crm/v1/channels/templates/<id>" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/v1/channels/templates/media

Şablon başlığı için ÖRNEK medya yükle → Meta tutamağı (header_handle).

Oturum

Dosya CRM'de saklanmaz: örnek medya kiracının verisi değil, onay başvurusunun ekidir.

İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/v1/channels/templates/media" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/v1/channels/templates/sync

Sync templates

Oturum
İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/v1/channels/templates/sync" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
Bu sayfa işine yaradı mı?