CRM

channels

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

İstek örnekleri ucun GERÇEK metodu ve yolundan üretilir. 33 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

CF15 Paket 10 — kanalda AI cevabını aç/kapat (settings.ai_enabled).

OturumYol parametresi: id

Varsayılan **kapalı**: kredi harcayan bir davranış kendiliğinden başlamamalı. Ayar settings jsonb'sinde tutulur — ayrı kolon eklemeye gerek yok, kanal başına davranış ayarlarının doğal yeri orası.

İ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…"
}
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/meta/es

GET /api/crm/v1/channels/meta/es?state=… — PUBLIC (Meta SDK'sı oturum taşımaz; kimlik

Herkese açık

tek-kullanımlık statetir ve callback onu TÜKETİR).

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

GET /api/crm/v1/channels/meta/es.js — PUBLIC, statik.

Herkese açık
İstek
curl -X GET "https://{slug}.crm.blesyum.app/api/crm/v1/channels/meta/es.js" \
  -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ı?