Panelde tanımladığınız webhook adresine hangi olayların, hangi alanlarla gönderildiğinin tam listesi — gerçek alan adları, temsili değerler.
Bir olay gerçekleştiğinde Cxperium, panelde kayıtlı adresinize tek bir HTTP isteği gönderir. Gönderim tek yönlüdür; yanıt gövdeniz okunmaz. Webhook'lar Enterprise planda kullanılabilir.
| Metot | POST |
| Content-Type | application/json |
| Beklenen yanıt | 2xx durum kodu; gövde serbest |
| Yeniden deneme | Yalnızca ağ hatasında 1 kez. HTTP 4xx/5xx yanıtlar yeniden denenmez. |
| Adres | İnternetten erişilebilir, geçerli TLS sertifikalı bir HTTPS uç noktası. Sorgu parametreleri olduğu gibi korunur. |
Panelden tanımlama: Webhook ekranında adresi girin, hangi olaylarda tetikleneceğini ve hangi anketleri kapsayacağını seçin, sonra bağlantıyı etkinleştirin. Adım adım anlatım için Webhook Entegrasyonu makalesine bakın. Sohbet ve talep olaylarının gitmesi için webhook'un anket erişimi "Tümü" olmalıdır.
API ile tanımlama: Aynı kaydı POST /api/webhook ile de oluşturup güncelleyebilirsiniz (adres eşleşirse günceller). Gövde alanları paneldeki alanlarla aynıdır:
curl -X POST https://api.cxperium.com/api/webhook \
-H "apikey: $CX_API_KEY" -H "Content-Type: application/json" \
-d '{
"webhook_adress": "https://ornek.com/cxperium-hook",
"webhook_time": ["COMPLETED", "ANSWER_GRANTED", "TICKET_CREATED"],
"access_survey": ["*"],
"webhook_active": true
}'
webhook_time olay kodlarının listesidir (aşağıdaki başlıklar). access_survey anket kimliklerinin listesidir; "*" tüm anketler demektir. Tanımlı webhook'ları GET /api/webhook ile listeler, DELETE /api/webhook ile (gövdede webhook_adress) silersiniz.
Hangi olayı işlediğinizi event_status alanından ayırt edin. Kalan alanlar olaya özeldir.
| Alan | Tip | Açıklama |
|---|---|---|
event_status | string | Olayın kodu. Aşağıdaki başlıkların her biri bir değerdir. |
complated_time | ISO 8601 | İsteğin gönderildiği an (UTC). Alan adı bu şekilde yazılır. |
webhook_adress | array | Bu olayı almak üzere eşleşen webhook tanımlarınız. Kendi yapılandırmanızın kopyasıdır; işlemenize gerek yoktur. |
Kimlik alanlarının tamamı 24 karakterlik hexadecimal string, tarihlerin tamamı ISO 8601 UTC biçimindedir. Değeri olmayan alanlar JSON'a hiç yazılmaz; alanların varlığını kontrol ederek işleyin. Örneklerdeki "webhook_adress": [ … ] kısaltmadır.
Anket akışı olayları ortak bir yapı paylaşır: survey anketi, contact yanıtlayan kişiyi, questions o ana kadarki soru ve cevapları taşır.
| Alan | Tip | Açıklama |
|---|---|---|
survey.id / survey.name | string | Anket kimliği ve adı |
survey.preData | object | Anket linkine eklediğiniz sorgu parametreleri (örn. sipariş no). Link parametresiz açıldıysa yoktur. |
contact.contactId | string | Kişi kimliği |
contact.name | string | WhatsApp profil adı. Ankette "kişi bilgisi topla" kapalıysa maskelenmiş gelir (A**** Y*****). |
contact.phone | string | Ülke kodlu numara, artı işareti olmadan |
questions[].id | string | Soru kimliği |
questions[].name | object | Soru metni, dil koduna göre anahtarlanmış: {"TR": "...", "EN": "..."} |
questions[].answer | object | Serbest metin sorularda {"text_reply": "..."}, buton/liste/yıldız sorularda {"button_reply": "..."}. Cevaplanmamış soruda alan yoktur. |
start_time | ISO 8601 | Olayın kuyruğa alındığı an |
START — Anket başlatıldığındaKişi anket linkine tıklayıp WhatsApp'tan ilk mesajı gönderdiğinde, ilk soru iletilmeden hemen önce. Bu aşamada hiçbir sorunun cevabı yoktur.
{
"survey": { "id": "6650aabbccddeeff00112233", "name": "Müşteri Memnuniyet Anketi", "preData": { "orderId": "SP-99123" } },
"contact": { "contactId": "6612cc33dd44ee55ff667788", "name": "A**** Y*****", "phone": "905321112233" },
"questions": [
{ "id": "6650bbccddeeff0011223345", "name": { "TR": "Hizmetimizi 1-5 arası puanlar mısınız?" } },
{ "id": "6650bbccddeeff0011223346", "name": { "TR": "Eklemek istediğiniz bir şey var mı?" } }
],
"event_status": "START",
"start_time": "2026-09-07T09:45:12.512Z",
"complated_time": "2026-09-07T09:45:12.740Z",
"webhook_adress": [ … ]
}
ANSWER_GRANTED — Her soru cevaplandığındaKişinin cevabı doğrulamadan geçip kaydedildiğinde. Ortak yapıya ek olarak yalnızca bu olayda instantReply bloğu bulunur; az önce cevaplanan soruyu tek başına verir.
| Alan | Tip | Açıklama |
|---|---|---|
instantReply.questionId | string | Az önce cevaplanan sorunun kimliği |
instantReply.questionText | object | Soru metni, dil koduna göre |
instantReply.answer | string | Kişinin yazdığı ya da seçtiği cevap, ham metin |
instantReply.preData | object | survey.preData ile aynı |
{
"survey": { "id": "6650aabbccddeeff00112233", "name": "Müşteri Memnuniyet Anketi", "preData": { "orderId": "SP-99123" } },
"contact": { "contactId": "6612cc33dd44ee55ff667788", "name": "A**** Y*****", "phone": "905321112233" },
"instantReply": {
"questionId": "6650bbccddeeff0011223345",
"questionText": { "TR": "Hizmetimizi 1-5 arası puanlar mısınız?" },
"answer": "5",
"preData": { "orderId": "SP-99123" }
},
"questions": [
{ "id": "6650bbccddeeff0011223345", "name": { "TR": "Hizmetimizi 1-5 arası puanlar mısınız?" }, "answer": { "button_reply": "5" } },
{ "id": "6650bbccddeeff0011223346", "name": { "TR": "Eklemek istediğiniz bir şey var mı?" } }
],
"event_status": "ANSWER_GRANTED",
"start_time": "2026-09-07T09:46:02.101Z",
"complated_time": "2026-09-07T09:46:02.330Z",
"webhook_adress": [ … ]
}
COMPLETED — Anket sona erdiğindeSon soru cevaplanıp kapanış mesajı gönderildiğinde. Yapı START ile aynıdır; farkı questions içindeki tüm soruların answer alanının dolu olmasıdır.
{
"survey": { "id": "6650aabbccddeeff00112233", "name": "Müşteri Memnuniyet Anketi" },
"contact": { "contactId": "6612cc33dd44ee55ff667788", "name": "A**** Y*****", "phone": "905321112233" },
"questions": [
{ "id": "6650bbccddeeff0011223345", "name": { "TR": "Hizmetimizi 1-5 arası puanlar mısınız?" }, "answer": { "button_reply": "5" } },
{ "id": "6650bbccddeeff0011223346", "name": { "TR": "Eklemek istediğiniz bir şey var mı?" }, "answer": { "text_reply": "Teşekkürler, çok memnun kaldım." } }
],
"event_status": "COMPLETED",
"start_time": "2026-09-07T09:47:40.000Z",
"complated_time": "2026-09-07T09:47:40.212Z",
"webhook_adress": [ … ]
}
LEAVE — Kişi anketten ayrıldığındaKişi devam eden bir ankette çıkış komutu yazdığında ya da "Ayrıl" butonuna bastığında. Yapı START ile aynıdır; o ana kadar verilmiş cevaplar questions içinde bulunur. Bu olay yalnızca anket erişimi "Tümü" olan webhook'lara gider.
TIMEOUT — Anket süresi dolduğunda otomatikBitiş tarihi tanımlı bir anketin süresi dolmuşken kişi mesaj gönderdiğinde. Panelde ayrıca seçilmez; aktif tüm webhook'larınıza gider. İki biçimi vardır: kişi ankete daha önce başlamışsa yapı START ile aynıdır ve questions dolu gelir. Kişi süresi dolmuş bir linke ilk kez tıkladıysa questions alanı bulunmaz ve contact.contactId yer almaz:
{
"survey": { "id": "6650aabbccddeeff00112233", "name": "Müşteri Memnuniyet Anketi" },
"contact": { "name": "Ahmet Yılmaz", "phone": "905321112233" },
"event_status": "TIMEOUT",
"start_time": "2026-09-07T09:52:00.000Z",
"complated_time": "2026-09-07T09:52:00.180Z",
"webhook_adress": [ … ]
}
REPEATED — Tek kullanımlık anket tekrar açıldığında otomatik"Tek kullanımlık" olarak işaretlenmiş bir anketi daha önce tamamlamış bir kişi aynı linke yeniden tıkladığında. Panelde ayrıca seçilmez; aktif tüm webhook'larınıza gider. Yapı, süresi dolmuş linkteki TIMEOUT ile aynıdır; yalnızca event_status değeri REPEATED olur.
SURVEY_FORM_CREATE_OR_UPDATE — Anket formu oluşturulduğunda veya değiştirildiğindePanelde bir anket oluşturulduğunda, anket ayarları kaydedildiğinde, bir soru düzenlendiğinde ya da bir buton/liste seçeneği eklenip silindiğinde. Her durumda anketin tam güncel tanımı gönderilir; hangi parçanın değiştiği ayrıca belirtilmez.
| Alan | Tip | Açıklama |
|---|---|---|
result._id / result.name | string | Anket kimliği ve adı |
result.language | string | TR, EN, DE, FR, ES, IT, AR, HI, RU, PT_PT |
result.keys | string | Anket linkindeki kısa anahtar |
result.startMessage / endMessage | string | Açılış ve kapanış mesajları |
result.disposable | boolean | Tek kullanımlık mı |
result.collectUserInfo | boolean | Kişi bilgisi toplanıyor mu |
result.endDate / endDateActive | date / boolean | Bitiş tarihi ve aktif olup olmadığı |
result.tags | array | Ankete bağlı etiketler |
result.transactions veya result.question | array | Sıralı soru listesi. Anket ayarları kaydedildiğinde transactions, soru veya seçenek düzenlendiğinde question adıyla gelir. İkisini de aynı biçimde işleyin. |
…[].type | string | TEXT, INTERACTIVE, IMAGE, VIDEO, DOCUMENT, LOCATION |
…[].text / header / footer | string veya object | Soru metni; çok dilli anketlerde dil koduna göre nesne |
…[].response_type | string | TEXT, NUMBER, EMAIL, DATE, TIME, NPS, STAR, LOCATION, MEDIA veya boş |
…[].nextProcess_id | string | Sonraki soru; son soruda yoktur |
…[].order | number | Sıra numarası, 0'dan başlar |
…[].interactives[] | array | Buton/liste seçenekleri: title, description, processGoTo_id (gidilecek soru ya da "end") |
user_id | string | Hesap kimliğiniz |
{
"result": {
"_id": "66a0f1e2d3c4b5a697887766",
"name": "Müşteri Memnuniyet Anketi",
"language": "TR",
"keys": "Kd83Ba7Z",
"disposable": false,
"collectUserInfo": true,
"startMessage": "Anketimize hoş geldiniz.",
"endMessage": "Katılımınız için teşekkürler.",
"firstProcess_id": "66a0f1e2d3c4b5a697887767",
"tags": [ { "_id": "66b1c2d3e4f5a60718293a4b", "name": "memnuniyet" } ],
"transactions": [
{
"_id": "66a0f1e2d3c4b5a697887768",
"type": "INTERACTIVE",
"header": "Değerlendirme",
"text": "Hizmetimizden memnun kaldınız mı?",
"response_type": "",
"order": 1,
"interactives": [
{ "_id": "66a0f1e2d3c4b5a697887780", "title": "Evet", "processGoTo_id": "end" },
{ "_id": "66a0f1e2d3c4b5a697887781", "title": "Hayır", "processGoTo_id": "66a0f1e2d3c4b5a697887769" }
]
}
],
"createdAt": "2026-09-07T11:14:58.442Z",
"updatedAt": "2026-09-07T11:31:02.900Z"
},
"user_id": "6512b0f4a1c2d3e4f5a6b7c8",
"event_status": "SURVEY_FORM_CREATE_OR_UPDATE",
"complated_time": "2026-09-07T11:31:03.117Z",
"webhook_adress": [ … ]
}
Talep olaylarında userId işlemi yapan panel kullanıcısını, userType ise bu kullanıcının ana hesap (NORMAL) mı alt kullanıcı (SUB) mı olduğunu belirtir.
TICKET_CREATED — Talep oluşturulduğundaPanelden ya da API'den yeni bir talep açıldığında. Talebin tam kaydı createOneResult altında gelir.
| Alan | Tip | Açıklama |
|---|---|---|
createOneResult._id | string | Talep kimliği. Diğer talep olaylarındaki ticket_id ile eşleşir. |
createOneResult.taskId | string | Panelde görünen talep numarası (1001'den başlar) |
createOneResult.status | string | NEW, OPEN, PENDING, CLOSED |
createOneResult.subject / message | string | Konu ve açıklama |
createOneResult.priorty | string | Öncelik (alan adı bu şekilde yazılır) |
createOneResult.contactId | string | Talebi açan kişinin kimliği |
createOneResult.assigneeId | string | Atanan kullanıcı; atanmamışsa yoktur |
createOneResult.dueDate | date | Son tarih |
createOneResult.tags | array | Etiket kimlikleri |
createOneResult.mediaName | array | Eklenen dosya adları |
createOneResult.createdAt | date | Oluşturulma zamanı |
{
"createOneResult": {
"_id": "665f1a2b3c4d5e6f70819200",
"taskId": "1042",
"status": "NEW",
"subject": "Kargo gecikmesi",
"message": "Siparişim 5 gündür elime ulaşmadı.",
"priorty": "NORMAL",
"contactId": "6612cc33dd44ee55ff667788",
"tags": [ "66201122334455667788990a" ],
"mediaName": [ "fatura.pdf" ],
"comments": [],
"createdAt": "2026-09-07T09:12:44.123Z",
"updatedAt": "2026-09-07T09:12:44.123Z"
},
"userId": "6600aa11bb22cc33dd44ee55",
"userType": "NORMAL",
"event_status": "TICKET_CREATED",
"complated_time": "2026-09-07T09:12:44.400Z",
"webhook_adress": [ … ]
}
TICKET_STATUS_CHANGE — Talep durumu değiştiğindeBir talebin durumu NEW, OPEN, PENDING veya CLOSED olarak ayarlandığında. Alanlar: status (yeni durum), ticket_id, tagsId (talebin etiket kimlikleri), userId / userType.
{
"status": "CLOSED",
"ticket_id": "665f1a2b3c4d5e6f70819200",
"tagsId": [ "66201122334455667788990a" ],
"userId": "6600aa11bb22cc33dd44ee55",
"userType": "NORMAL",
"event_status": "TICKET_STATUS_CHANGE",
"complated_time": "2026-09-07T10:02:10.000Z",
"webhook_adress": [ … ]
}
TICKET_ASSIGNEE_CHANGE — Talep ataması değiştiğindeBir talep bir kullanıcıya atandığında. Alanlar: assigneeId (talebin atandığı kullanıcı), ticket_id, tagsId, userId / userType (atamayı yapan kullanıcı).
{
"assigneeId": "6633445566778899aabbccdd",
"ticket_id": "665f1a2b3c4d5e6f70819200",
"tagsId": [ "66201122334455667788990a" ],
"userId": "6600aa11bb22cc33dd44ee55",
"userType": "NORMAL",
"event_status": "TICKET_ASSIGNEE_CHANGE",
"complated_time": "2026-09-07T10:05:00.000Z",
"webhook_adress": [ … ]
}
TICKET_SEND_COMMENT_PANEL — Talebe yorum yazıldığındaPanelden ya da API'den bir talebe, kişiye gönderilen bir yorum eklendiğinde. "Dahili not" olarak işaretlenen yorumlar bu olayı tetiklemez; yoruma eklenen dosyalar payload'da yer almaz. Alanlar: message (yorum metni), ticket_id, taskId (adına rağmen talep numarası değil, talebin etiket kimlikleri), userId / userType.
{
"message": "Kargo firmasıyla görüşüldü, yarın teslim edilecek.",
"ticket_id": "665f1a2b3c4d5e6f70819200",
"taskId": [ "66201122334455667788990a" ],
"userId": "6633445566778899aabbccdd",
"userType": "SUB",
"event_status": "TICKET_SEND_COMMENT_PANEL",
"complated_time": "2026-09-07T10:08:30.000Z",
"webhook_adress": [ … ]
}
Canlı destek sohbetleri için olaylar. chat_id sohbet kimliğidir; contactId karşıdaki kişiyi, userId ve userType işlemi yapan temsilciyi belirtir.
CHAT_CREATED — Sohbet oluşturulduğundaPanelden ya da API'den bir kişiyle sohbet başlatıldığında. Kişinin zaten açık bir sohbeti varsa yeni kayıt açılmaz, mevcut sohbet döner. Alanlar createOneResult altındadır: _id (sohbet kimliği), status (NEW, OPEN, PENDING, CLOSED), contactId, teamId, assigneeId (atanmamışsa yoktur), messages, tags, sessionTime.startTime.
{
"createOneResult": {
"_id": "667700112233445566778899",
"status": "NEW",
"contactId": "6612cc33dd44ee55ff667788",
"teamId": "6644556677889900aabbccdd",
"messages": [],
"tags": [],
"sessionTime": { "startTime": "2026-09-07T09:30:00.000Z" },
"createdAt": "2026-09-07T09:30:00.000Z",
"updatedAt": "2026-09-07T09:30:00.000Z"
},
"userId": "6600aa11bb22cc33dd44ee55",
"userType": "NORMAL",
"event_status": "CHAT_CREATED",
"complated_time": "2026-09-07T09:30:00.250Z",
"webhook_adress": [ … ]
}
CHAT_NORMAL_MESSAGE — Temsilci mesaj gönderdiğindeBir temsilci panelden kişiye metin mesajı gönderdiğinde tetiklenir (müşteriden gelen mesajlarda tetiklenmez). Mesajdaki satır sonları boşluğa çevrilir; mesaja eklenen medya payload'da yer almaz. Alanlar: message, chat_id, contactId, userId / userType.
{
"message": "Merhaba, size nasıl yardımcı olabilirim?",
"chat_id": "667700112233445566778899",
"contactId": "6612cc33dd44ee55ff667788",
"userId": "6600aa11bb22cc33dd44ee55",
"userType": "SUB",
"event_status": "CHAT_NORMAL_MESSAGE",
"complated_time": "2026-09-07T09:31:12.000Z",
"webhook_adress": [ … ]
}
CHAT_TEMPLATE_MESSAGE — Şablon mesajı gönderildiğindeBir temsilci sohbetten WhatsApp şablon mesajı gönderdiğinde. Şablonun içeriği payload'da yer almaz; sohbet kimliği bu olayda conversationId adıyla gelir.
{
"conversationId": "667700112233445566778899",
"userId": "6600aa11bb22cc33dd44ee55",
"userType": "NORMAL",
"event_status": "CHAT_TEMPLATE_MESSAGE",
"complated_time": "2026-09-07T09:33:00.000Z",
"webhook_adress": [ … ]
}
CHAT_STATUS_CHANGE — Sohbet durumu değiştiğindeBir sohbetin durumu elle değiştirildiğinde, temsilci NEW durumundaki bir sohbete ilk mesajı yazdığında (OPEN), kişi silindiği için sohbet kapatıldığında (CLOSED) ya da oturum zaman aşımıyla sohbet kapandığında (CLOSED). Alanlar: status, chat_id, contactId, userId / userType. Otomatik kapanışlarda userType bulunmayabilir.
{
"status": "CLOSED",
"chat_id": "667700112233445566778899",
"contactId": "6612cc33dd44ee55ff667788",
"userId": "6600aa11bb22cc33dd44ee55",
"userType": "NORMAL",
"event_status": "CHAT_STATUS_CHANGE",
"complated_time": "2026-09-07T10:40:00.000Z",
"webhook_adress": [ … ]
}
CHAT_ASSIGNEE_CHANGE — Sohbet ataması değiştiğindeBir sohbet başka bir temsilciye atandığında ya da atanmamış bir sohbete ilk yazan temsilci sohbeti üstlendiğinde. Alanlar: assigneeId, chat_id, contactId, userId / userType.
{
"assigneeId": "6633445566778899aabbccdd",
"chat_id": "667700112233445566778899",
"contactId": "6612cc33dd44ee55ff667788",
"userId": "6600aa11bb22cc33dd44ee55",
"userType": "SUB",
"event_status": "CHAT_ASSIGNEE_CHANGE",
"complated_time": "2026-09-07T10:41:00.000Z",
"webhook_adress": [ … ]
}
Toplu gönderimler tamamlandığında tek bir özet olay gelir. success ve failed alanları telefon numarası dizileridir; sayı almak için dizi uzunluğunu kullanın.
SURVEY_SENDING_COMPLETED — Anket gönderimi tamamlandığındaBir anket gönderim oturumundaki tüm numaralara iletim denemesi bittiğinde. Alanlar: surveyName, success, failed, startingDate, endDate, preData (gönderime eklenen özel veri; yoksa alan bulunmaz).
{
"surveyName": "Müşteri Memnuniyet Anketi",
"success": [ "905321112233", "905334445566" ],
"failed": [ "905559998877" ],
"startingDate": "2026-09-07T08:00:00.000Z",
"endDate": "2026-09-07T08:04:12.000Z",
"event_status": "SURVEY_SENDING_COMPLETED",
"complated_time": "2026-09-07T08:04:12.300Z",
"webhook_adress": [ … ]
}
NOTIFICATION_SENDING_COMPLETED — Bildirim gönderimi tamamlandığındaBir bildirim (şablon mesajı) gönderim oturumundaki tüm numaralara iletim denemesi bittiğinde. Yapı yukarıdakiyle aynıdır; anket adı yerine templateName gelir.
{
"templateName": "kampanya_eylul_2026",
"success": [ "905321112233", "905334445566" ],
"failed": [],
"startingDate": "2026-09-07T08:00:00.000Z",
"endDate": "2026-09-07T08:02:40.000Z",
"event_status": "NOTIFICATION_SENDING_COMPLETED",
"complated_time": "2026-09-07T08:02:41.000Z",
"webhook_adress": [ … ]
}
Yapay zekâ asistanı, niyetler (intent), yerelleştirme metinleri ve bilgi tabanı dosyalarıyla ilgili olaylar.
ASSISTANT_SESSION_TIMEOUT — Asistan oturumu zaman aşımına uğradığındaBir kişinin asistan oturumu, tanımlı süre boyunca mesaj gelmediği için kapatıldığında. O kişiye ait açık sohbet varsa ayrıca CLOSED durumlu bir CHAT_STATUS_CHANGE gönderilir. Tek alan: contactId.
{
"contactId": "6612cc33dd44ee55ff667788",
"event_status": "ASSISTANT_SESSION_TIMEOUT",
"complated_time": "2026-09-07T12:00:05.000Z",
"webhook_adress": [ … ]
}
ASSISTANT_INTENT_CHANGE — Asistan niyeti değiştiğindePanelde bir niyet oluşturulduğunda, güncellendiğinde ya da silindiğinde. Ne olduğunu place alanı söyler (CREATE, UPDATED, DELETED). Niyetin regex kuralları payload'da yer almaz; bu olayı genellikle önbellek tazelemek için kullanın. Alanlar: place, name (niyet adı), languageId (örn. tr-TR), userId.
{
"place": "UPDATED",
"name": "siparis_durumu_sorgula",
"languageId": "tr-TR",
"userId": "6512b0f4a1c2d3e4f5a6b7c8",
"event_status": "ASSISTANT_INTENT_CHANGE",
"complated_time": "2026-09-07T11:45:02.117Z",
"webhook_adress": [ … ]
}
ASSISTANT_LOCATION_CHANGE — Asistan yerelleştirmesi değiştiğindeAsistan metinleri (yerelleştirme anahtarları) eklendiğinde, güncellendiğinde ya da silindiğinde. Alanlar place değerine göre değişir:
| place | Alanlar | Açıklama |
|---|---|---|
CREATE | createdData, userId | createdData eklenen anahtar listesidir: [{key, value, languageId}] |
CREATE_STATIC | createdData | Yeni bir dil tanımlandığında: {name, languageId, cultureCode} |
UPDATED | key, languageId, userId | Değişen anahtar. Yeni değer payload'da yoktur; API'den okuyun. |
DELETED | key, userId | Anahtar tüm dillerden silindi |
{
"place": "UPDATED",
"key": "welcome_message",
"languageId": "tr-TR",
"userId": "6512b0f4a1c2d3e4f5a6b7c8",
"event_status": "ASSISTANT_LOCATION_CHANGE",
"complated_time": "2026-09-07T11:45:02.117Z",
"webhook_adress": [ … ]
}
FILE_UPLOAD_AGENT — Asistan bilgi dosyaları değiştiğinde otomatikYapay zekâ asistanına bilgi kaynağı olarak dosya yüklendiğinde, dosya silindiğinde ya da bir bilgi tabanı (stage) silindiğinde. Panelde ayrıca seçilmez; aktif webhook'larınıza gider. Webhook tanımında "Bu botun aldığı bilgi tabanları" seçimiyle hangi bilgi tabanlarının olaylarını alacağınızı daraltabilirsiniz. Ne olduğunu status alanı söyler:
| status | Alanlar | Açıklama |
|---|---|---|
FILE_ADDED | stageId, files[], userId | files yeni eklenen dosyalardır: originalName, storageLink, mimeType, size (byte) |
FILE_DELETED | stageId, file, userId | file silinen tek dosya, aynı alanlarla |
STAGE_DELETED | stageId, userId | Bilgi tabanının tamamı silindi |
{
"status": "FILE_ADDED",
"stageId": "66f1c2a9b4e5d6f7a8b9c0d1",
"files": [
{
"originalName": "urun-katalogu-2026.pdf",
"storageLink": "https://storage.cxperium.com/…/urun-katalogu-2026.pdf",
"mimeType": "application/pdf",
"size": 481920
}
],
"userId": "6512b0f4a1c2d3e4f5a6b7c8",
"event_status": "FILE_UPLOAD_AGENT",
"complated_time": "2026-09-07T11:45:02.117Z",
"webhook_adress": [ … ]
}
Teknik ekibimiz entegrasyonunuzda size eşlik etsin — sorunuzu iletin, aynı gün dönelim.
Türkçe teknik destek · Entegrasyon danışmanlığı ücretsiz