Resept: CRM ilə kontakt sinxronu
Son yeniləmə: 11 noyabr 2026 · 9 dəq oxunur
Bu resept Clomni kontaktlarını CRM-inizlə uyğun saxlamaq üçündür: Bitrix24, amoCRM, HubSpot və ya öz sisteminiz. Əvvəl bütün kontaktları bir dəfə yükləyirsiniz, sonra yalnız dəyişənləri götürürsünüz, lazım olanda CRM-dən Clomni-yə yazırsınız.
Addımlar
-
1
Nə alırsınız
- CRM-də hər müştərinin Clomni kontaktı: ad, telefon, e-poçt, xüsusi sahələr.
- Clomni-də yaranan və dəyişən kontakt bir neçə saniyəyə CRM-ə düşür.
- CRM-də dəyişən məlumat (məsələn müştəri səviyyəsi) Clomni-yə yazılır və operator söhbətdə görür.
- İstəsəniz, CRM-də müştərinin söhbət tarixçəsi.
-
2
Lazım olan scope-lar
contacts:read(orta risk): kontaktları oxumaq vəcontact.*webhook-ları.contacts:write(orta risk): CRM-dən Clomni-yə yazmaq. Yalnız Clomni-dən CRM-ə köçürürsünüzsə, bunu istəməyin.custom_attributes:read(aşağı risk): xüsusi sahələrin siyahısı.conversations:readvəmessages:read(orta risk): yalnız CRM-də söhbət tarixçəsini göstərəcəksinizsə.
App yaradanda «CRM sinxronu» hazır dəstini seçə bilərsiniz, sonra lazım olmayanı silin.
contacts:writecontacts:read-i də verir, amma webhook mövzusu seçmək üçüncontacts:readayrıca təsdiqlənməlidir. App və token: developer.clomni.ai-da app yaratmaq: addım-addım, Developer API-də tokenlər və autentifikasiya. -
3
1. Bütün kontaktları bir dəfə yükləyin
GET /v1/sync/contactskontaktları(updated_at, id)sırası ilə, ən köhnə dəyişiklikdən başlayaraq qaytarır.limit1-100 arasındadır. Növbəti səhifə üçün cavabdakınext_cursor-uafterilə göndərin.has_more: falseolanda hamısını almısınız.curl "https://api.clomni.ai/v1/sync/contacts?limit=100" \ -H "Authorization: Bearer clomni_pat_xxx"
{ "data": [ { "id": 981, "name": "Leyla Həsənova", "email": "[email protected]", "phone_number": "+994501234567", "identifier": "crm-10422", "custom_attributes": { "customer_tier": "gold" }, "created_at": "2026-07-25T11:02:00.000Z", "updated_at": "2026-11-08T09:14:03.120Z" } ], "next_cursor": "MjAyNi0xMS0wOFQwOToxNDowM1p8OTgx", "has_more": true }next_cursor-u açmağa və ya özünüz qurmağa çalışmayın, olduğu kimi geri göndərin. -
4
2. Sonra yalnız dəyişənləri götürün
İlk yükləmədən sonra ən böyük
updated_atdəyərini saxlayın. Növbəti dəfəupdated_sinceilə ondan sonra dəyişənləri alın:curl "https://api.clomni.ai/v1/sync/contacts?updated_since=2026-11-08T09:12:00Z&limit=100" \ -H "Authorization: Bearer clomni_pat_xxx"
- Saxladığınız vaxtdan 1-2 dəqiqə geri gedin ki, eyni anda yazılan qeydlər itməsin.
- Kontaktı
idilə yazın (upsert): eyni kontakt iki dəfə gəlsə, yenisi köhnəsinin üstünə yazılır. has_more: trueolandaafterilə davam edin,updated_since-i dəyişməyin.- Yeni vaxtı yalnız bütün səhifələr uğurla yazılandan sonra saxlayın.
Sinxron endpoint-ləri token üzrə dəqiqədə 60 sorğu ilə məhdudlaşır. Bunu bir neçə dəqiqədən bir işlətmək kifayətdir.
-
5
3. Dəyişiklikləri dərhal alın
Developer portalında app-ın «Webhook-lar» bölməsində HTTPS ünvanınızı yazın və
contact.created,contact.updatedmövzularını seçin. Hadisədə kontaktın tam obyekti gəlir. Webhook dublikat gələ bilər və sıra zəmanətli deyil:updated_at-ı yoxlayın, CRM-dəki qeyd daha yenidirsə köhnə hadisəni atın. Webhook işləməyən vaxt üçün 2-ci addımı da saxlayın, məsələn saatda bir dəfə. Quraşdırma və imza yoxlaması: App webhook-ları və hadisələr: qurmaq, mövzular, imzanın yoxlanması. -
6
4. CRM-dən Clomni-yə yazın
Kontaktın
identifiersahəsinə CRM-dəki ID-ni yazın: bu sahə workspace daxilində unikaldır. Əvvəl kontaktın Clomni-də olub-olmadığını axtarın (ad, e-poçt, telefon vəidentifierüzrə axtarır):curl "https://api.clomni.ai/v1/contacts/search?q=crm-10422" \ -H "Authorization: Bearer clomni_pat_xxx"
Yoxdursa, yaradın:
curl -X POST "https://api.clomni.ai/v1/contacts" \ -H "Authorization: Bearer clomni_pat_xxx" \ -H "Content-Type: application/json" \ -d '{"name": "Leyla Həsənova", "email": "[email protected]", "phone_number": "+994501234567", "identifier": "crm-10422", "custom_attributes": {"customer_tier": "gold"}}'Varsa, yeniləyin.
PATCHyalnız göndərdiyiniz sahələri dəyişir,custom_attributesköhnə dəyərlərlə birləşdirilir:curl -X PATCH "https://api.clomni.ai/v1/contacts/981" \ -H "Authorization: Bearer clomni_pat_xxx" \ -H "Content-Type: application/json" \ -d '{"custom_attributes": {"customer_tier": "platinum"}}'Telefon nömrəsi beynəlxalq formada olmalıdır:
+və ölkə kodu ilə, boşluqsuz. Eyni e-poçt və ya telefonla ikinci kontakt yaratmaq 422 qaytarır. -
7
5. Xüsusi sahələri uyğunlaşdırın
custom_attributesaçarları workspace-də əvvəlcədən təyin olunmalıdır. Siyahı:curl "https://api.clomni.ai/v1/custom_attribute_definitions?attribute_model=contact_attribute" \ -H "Authorization: Bearer clomni_pat_xxx"
CRM sahələrini bu açarlara bir dəfə uyğunlaşdırın. Təyin olunmamış açar paneldə görünmür. Yeni açarı paneldə yaradın və ya API ilə (
custom_attributes:write). -
8
6. Sonsuz dövrəyə düşməyin
İki tərəfli sinxronda öz yazdığınız dəyişiklik webhook kimi geri qayıdır. Onu yenidən CRM-ə yazsanız, dövrə yaranır. Clomni-yə yazanda cavabdakı
updated_at-ı saxlayın və eyniupdated_atilə gələn hadisəni atın. Və ya sinxronlaşdırdığınız sahələrin hash-ini saxlayın: dəyişməyibsə heç nə etməyin. -
9
Tez-tez səhvlər
updated_sinceüst-üstə düşmədən saxlanır və eyni saniyədə dəyişən kontaktlar itir. 1-2 dəqiqə geri gedin.- Səhifələr arasında
updated_sincedəyişdirilir. Səhifələri yalnızafterilə gəzin. - Kontaktın olub-olmadığı yoxlanmadan yaradılır və 422 gəlir. Əvvəl axtarın, sonra yeniləyin.
- Telefon
0501234567kimi, ölkə kodu olmadan yazılır. custom_attributes-ə workspace-də olmayan açar yazılır və paneldə görünmür.contacts:writetəsdiqlənib,contacts:readyoxdur vəcontact.*webhook-u seçilmir.- 429 alanda dərhal təkrar edilir.
Retry-Afterbaşlığındakı saniyə qədər gözləyin. - Vaxtlar qarışdırılır: sinxron endpoint-ləri ISO 8601 (UTC), köhnə siyahılar Unix saniyəsi qaytarır.
Bütün kontakt endpoint-ləri: Scope-lar və endpoint-lər: kontaktlar, etiketlər, xüsusi sahələr, hazır cavablar.