CRM

conversations

61 uç · /api/crm/v1/conversations

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

GET/api/crm/public/v1/conversations

List conv

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

Get conv

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

Assign

API anahtarıYol parametresi: id
İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/public/v1/conversations/<id>/assign" \
  -H "Authorization: Bearer blsk_..." \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/public/v1/conversations/{id}/close

Close

API anahtarıYol parametresi: id
İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/public/v1/conversations/<id>/close" \
  -H "Authorization: Bearer blsk_..." \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/public/v1/conversations/{id}/open

Open

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

List participants

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

Add participant

API anahtarıYol parametresi: id
İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/public/v1/conversations/<id>/participants" \
  -H "Authorization: Bearer blsk_..." \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
DELETE/api/crm/public/v1/conversations/{id}/participants/{contactId}

Remove participant

API anahtarıYol parametresi: idcontactId
İstek
curl -X DELETE "https://{slug}.crm.blesyum.app/api/crm/public/v1/conversations/<id>/participants/<contactId>" \
  -H "Authorization: Bearer blsk_..." \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/public/v1/conversations/{id}/redact

Redact

API anahtarıYol parametresi: id
İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/public/v1/conversations/<id>/redact" \
  -H "Authorization: Bearer blsk_..." \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/public/v1/conversations/{id}/reply

Görüşmeye yanıt yaz

API anahtarıYol parametresi: id

type alanı yanıtı KİMİN yazdığını söyler: admin (temsilci) ya da user (müşteri). admin seçildiğinde admin_id zorunludur. message_type varsayılan commenttir; note müşteriye GÖRÜNMEYEN dahili nottur ve webhook'a conversation.replied olarak gitmez.

Gerekli kapsam: conversations.write (dahili not için de aynı kapsam)

İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/public/v1/conversations/<id>/reply" \
  -H "Authorization: Bearer blsk_..." \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "type": "admin",
  "admin_id": "0193c4e2-1111-7c3d-9e5f-1a2b3c4d5e6f",
  "body": "Merhaba, siparişiniz kargoya verildi.",
  "message_type": "comment"
}'
Yanıt
{
  "data": {
    "type": "conversation",
    "id": "0193c4e2-2222-7c3d-9e5f-1a2b3c4d5e6f",
    "state": "open"
  },
  "trace_id": "01JC…"
}
POST/api/crm/public/v1/conversations/{id}/snooze

Snooze

API anahtarıYol parametresi: id
İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/public/v1/conversations/<id>/snooze" \
  -H "Authorization: Bearer blsk_..." \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/public/v1/conversations/{id}/unsnooze

Unsnooze

API anahtarıYol parametresi: id
İstek
curl -X POST "https://{slug}.crm.blesyum.app/api/crm/public/v1/conversations/<id>/unsnooze" \
  -H "Authorization: Bearer blsk_..." \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
POST/api/crm/public/v1/conversations/search

Search conv

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

List conversations

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

Create conversation

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

Get conversation

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

Konuşma alanlarını güncelle (konu/müşteri/öncelik/grup) — bedesk update. PUT.

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

Conversation attributes

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

Konuşmanın AI künyesi: durum · devir sebebi · hangi yapılandırma cevapladı.

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

GET /conversations/{id}/commerce — konuşmanın **ticari künyesi** (COMMERCE-01).

OturumYol parametresi: id

Temsilcinin gördüğü sipariş/kargo/iade ve cari bakiye kartının kaynağı. Karar crate::commercetedir (TEK KAPI); bu handler yalnız izin kapısını uygular ve sonucu taşır. 🔴 İzin crm.conversations.viewtir ve **sahip muafiyeti YOKTUR** (require_owner_or_perm değil). Konuşmanın "sahibi" MÜŞTERİDİR: kendi siparişini görmesi meşru ama kendi CARİ BAKİYESİNİ destek kanalından okuması ayrı bir karardır ve o kapı ERP'nin kendi müşteri portalıdır. Burada dar olmak, sonradan gevşetilebilir; ters yönü geri almak veri sızıntısını geri almaz. 🔴 Lisanssız modül için **4xx DÖNÜLMEZ**: yanıt licensed: false taşır ve ekran "aboneliğin yok" diyebilir. 4xx panelin genel hata kapısını tetikler ve kullanıcı sebebi hiç göremezdi (BRIDGE-01 dersi).

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

List items

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

Create item

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

Mesaj/not düzenle (bedesk messages PUT). Konuşmaya göre kapsanır.

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

Mesaj/not soft-delete (bedesk messages DELETE).

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

CF15 Paket 9 — temsilci bot cevabını değerlendirir. Müşteri oyundan AYRI satır

OturumYol parametresi: iditemId

(author_kind): ikisi aynı cevaba farklı görüş bildirebilir ve CSAT'ta müşterinin oyu esastır.

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

CF15 Paket 9 — bot cevabının dayandığı kaynaklar (inbox kaynak paneli).

OturumYol parametresi: iditemId
İstek
curl -X GET "https://{slug}.crm.blesyum.app/api/crm/v1/conversations/<id>/items/<itemId>/ai-sources" \
  -H "Authorization: Bearer <oturum-token>" \
  -H "Accept: application/json"
Yanıt
{
  "data": "…",
  "trace_id": "01JC…"
}
GET/api/crm/v1/conversations/{id}/items/{itemId}/edit-policy

**CHAN-03 — "Düzenle"ye tıklayınca ne olacak?"** Panel uyarı penceresini bu uçtan boyar:

OturumYol parametresi: iditemId

düzenlenebilir mi, değilse NEDEN, edilebiliyorsa hangi sınırlarla (karakter tavanı, varsa süre penceresi ve kapanış anı). 🔴 Panel kanal listesi TUTMAZ. 2026-09-15'e kadar "Düzenle" desteklemeyen kanalda sessizce GİZLENİYORDU; kullanıcı kararı değişti: düğme çizilir, tıklayınca sebep söylenir. Yazma kapısı aynı kararı yeniden verir — bu uç bir kolaylık, kapı değil.

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

E-posta-kaynaklı mesajın orijinal e-postası (bedesk messages/{id}/email).

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

JOIN-01 — "Sohbete katıl". Sahipsiz sohbette katılan sahip olur (bot'taysa devralır).

OturumYol parametresi: id

Yanıt, güncel katılımcı listesidir: panel üst şeridi ağ turu beklemeden çizer.

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

JOIN-01 — "Sohbetten ayrıl". Ayrılan sahipse sahiplik kalan en eski katılımcıya geçer.

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

Makroyu bir konuşmaya uygula.

OturumYol parametresi: idmacroId

🔴 Aksiyonların izinleri TEK TEK sorulur (macros::ensure_allowed). Aksi hâlde makro, RBAC'ın etrafından dolaşan bir arka kapı olurdu: yalnız yanıt yazabilen bir ajan, makro içine gizlenmiş "konuşmayı devret"i çalıştırabilirdi.

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

Messages

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

POST /api/crm/v1/internal/whatsapp/send — tek alıcıya onaylı şablon.

OturumYol parametresi: id

🔴 Yanıt **başarısızlıkta da 200**'dür (imza/kiracı/gövde hataları hariç). Tüketici bir KUYRUK işletiyor ve her satır için deftere bir cümle yazıyor: "sağlayıcı yok" ile "ağ koptu" arasındaki farkı bir HTTP durum koduna sıkıştırmak, o cümlenin kaybolması demekti. Gerekçe [wa::GonderimSonucu::saglayici_yok]da yazılı.

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

GET /conversations/{id}/messenger-call — "Messenger ile ara" düğmesinin künyesi (CALL-07):

OturumYol parametresi: id

sayfada aramalar açık mı, müşterinin izni var mı (Meta'dan CANLI), yeni izin istenebilir mi.

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

POST /conversations/{id}/messenger-call/permission — müşteriye arama izni isteği (CALL-07).

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

Set rating

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

POST /conversations/{id}/read — konuşmayı okundu yap (INBOX-07).

OturumYol parametresi: id

Yanıt, sol menünün rozetini AYNI turda tazeler: ayrı bir sayaç isteği, rozetin listeden bir tur geride kalması demekti.

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

Reply as agent

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

Reply as customer

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

GET /conversations/{id}/reply-channels — kişiye ulaşılabilen kanallar + durumları

OturumYol parametresi: id

(CHAN-09). Karar channels::outbound::reply_optionstedir; bu handler yalnız kapı. İzin yanıt yazma iznidir (wa-templates ile aynı gerekçe): seçiciyi görecek olan, yanıtı yazacak olandır.

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

Mark spam

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

Unmark spam

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

GET conversations/{id}/summary — saklanan özet (yoksa summary:null).

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

DELETE conversations/{id}/summary — özeti sil (yeniden üretilebilir).

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

Generate summary

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

Add tag

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

Conv ticket get

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

Conv ticket patch

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

Typing

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

GET /conversations/{id}/wa-templates — bu konuşmada gönderilebilecek şablonlar + pencere.

OturumYol parametresi: id

**Neden ayrı bir uç:** Ayarlar'daki liste crm.channel_templates.view ister ve ajan çoğu kiracıda o izne sahip DEĞİLDİR. Şablonu seçecek olan ajandır; karar konuşma iznine bağlanır — yanıt yazabilen, gönderebileceği şablonu görebilmelidir. window_open da burada döner: pencere kapalıyken composer'ın "yaz ve gönder" demeye devam etmesi, ajanın yazıp gönderip **422** almasıdır — kullanıcı bunu ürün arızası sanar.

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

GET /conversations/{id}/whatsapp-call — "WhatsApp ile ara" düğmesinin künyesi:

OturumYol parametresi: id

numarada aramalar açık mı, müşterinin izni var mı, yeni izin istenebilir mi (CALL-05).

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

POST /conversations/{id}/whatsapp-call/permission — müşteriye arama izni isteği (CALL-05).

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

Assign

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

GET /conversations/channels — konuşma kaynağı kataloğu.

Oturum

Dönen her satır: key (süzgeç değeri) · label (İngilizce, panel <Trans>'tan geçirir) · messaging (omnichannel kanal mı) · connected (kiracıda aktif hesabı var mı). Bağlı OLMAYAN kanal listeden ÇIKARILMAZ — gizlenen şey var olmayan şeyle aynı görünür; panel yalnız bağlı olanları öne alır.

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

Konuşmaları toplu sil (bedesk ConversationController::destroy çoklu). RLS yalnız

Oturum

tenant satırlarını siler; izin = update (ayrı delete-izni yok, status/atama ile aynı kapı).

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

Konuşmaları gruba transfer et (bedesk group/change). Opsiyonel private note.

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

Merge

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

POST /conversations/new-as-agent — temsilci müşteriyle yeni görüşme açar.

Oturum

Yanıt: {data, delivery, delivery_error, delivery_channel, channel_account_id, reused}. delivery = sent (kanal sağlayıcısı kabul etti) · queued (yanıt e-postası kuyrukta) · failed (denendi, reddedildi — sebep delivery_errorda ve konuşmada channel_delivery_failed olayı olarak) · none (müşteriye giden yol yok). Teslim edilemese de görüşme AÇILIR. reused: true → kişinin VAR OLAN kanal konuşmasına yazıldı (INBOX-07 · CHAN-09: kişinin kanal konuşması TEKTİR; konu ve ekip yok sayılır).

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

Change status

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

Toplu etiket EKLE (bedesk conversations/tags/add).

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

Toplu etiket KALDIR (bedesk conversations/tags/remove).

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