واجهة البرمجة
لا توجد نقطة نهاية خاصة. ولا حتى للواجهة.
معظم المنتجات لديها واجهتا برمجة: الموثَّقة التي تُعرض عليك، والمثيرة التي تستخدمها شاشاتها الخاصة. الثانية دائمًا أفضل، ولا يُسمح لك أبدًا بالاقتراب منها. هنا توجد واحدة فقط، والواجهة عميل لها كأي شيء آخر — وهذا قيد علينا، وهو أيضًا سبب إمكانية بناء كل ما تريد بناءه.
ما تكلفته الفعلية لهذه القاعدة
تعني أن الشاشة تضطر أحيانًا إلى انتظار صحة واجهة البرمجة، بدلًا من الالتفاف حولها للحصول على حقل مريح. اليوم الذي تحتاج فيه الشاشة إلى شيء لا تستطيع واجهة البرمجة العامة تقديمه هو اليوم الذي تكون فيه واجهة البرمجة خاطئة، والإصلاح يكون في واجهة البرمجة نفسها.
المكسب هو أن ثلاثة عملاء مختلفين تمامًا لا يكلفون شيئًا إضافيًا تقريبًا. خادم MCP عميل. بلاطة في dash-b عميل. سكربتك الخاص عميل. لا أحد منهم مواطن من الدرجة الثانية يتجاوز سطحًا مصمَّمًا لشخص آخر، لأنه لا يوجد سطح آخر ليكون في مرتبة أدنى منه.
موثَّقة ومُجرَّبة
يُولَّد OpenAPI في /docs ولكل مسار اختبارٌ هو المثال الوارد في التوثيق. التوثيق المكتوب بمعزل عن الشيفرة ينحرف خلال شهر؛ أما التوثيق الذي يُفشل البناء عندما يكون خاطئًا فلا ينحرف.
تسجيل الدخول
حسابك في castomo، عبر مسار كود التفويض مع PKCE — الحساب نفسه الذي تستخدمه في dash-ب وبقية العائلة. صفحة بلا خادم خاص بها تُنفِّذ هذا المسار بشكل ممتاز؛ فهو ما صُمِّم من أجله. وللعمل بين الآلات، مفتاح واجهة برمجة محدود بنطاق المشروع.
- 1الأشخاص
/v1/contacts·/lists·/segments·/tags·/imports - 2المحتوى
/v1/creatives، مع التحقق والمعاينة والعرض لكل هدف - 3الأتمتة
/v1/funnels·/funnels/:id/versions·/runs·/simulate - 4بث
/v1/campaigns، مع الجمهور والتجهيز والجدولة والإرسال كخطوات منفصلة - 5الأحداث الواردة
/v1/events— أحداث تطبيقك الخاص، كمُشغِّلات - 6التسليم
/sender-identities·/domains·/apps·/webhooks - 7الأرقام
/v1/reports/*، و/track/*على مضيف التتبع
OpenAPI في /docs/mcp على العملية نفسها
الاصطلاحات
الشكل نفسه الذي تتبعه كل خدمات castomo الأخرى
وهذا أهم مما يبدو. إذا كنت تستدعي إحداها بالفعل، فأنت تعرف بالفعل كيف تجيب هذه وتفشل وتُرقِّم صفحاتها.
غلاف خطأ واحد
لكل فشل الشكل نفسه، وكود ثابت، ورسالة موجهة إلى شخص. لا يخترع أي مسار طريقته الخاصة في التعب عن عدم الرضا.
ترقيم صفحات بالمؤشرات
ليس بالإزاحات. القائمة التي تتغير أثناء تجوّلك فيها لا تتخطى صفوفًا أو تكررها بصمت، وهو ما يفعله ترقيم الإزاحات بهدوء وباستمرار.
مفاتيح التكرارية
على كل مسار يُغيِّر البيانات. أعد إرسال طلبٍ لست متأكدًا من وصوله وستحصل على الإجابة نفسها بدلًا من جهة اتصال ثانية أو حملة ثانية أو إرسال ثانٍ.
محدود بمشروع
الرمز يخاطب مستأجرًا واحدًا ومشروعًا واحدًا، كليهما. أمن مستوى الصفوف مفروض في قاعدة البيانات نفسها، لا بالتذكّر بإضافة شرط.
خطاطات الويب الصادرة
موقَّعة، يُعاد إرسالها بتراجع تدريجي، وتُسلَّم مرة واحدة على الأقل — لذا يجب أن تكون نقطة النهاية لديك تكرارية أيضًا. الأحداث هي المفردات نفسها التي تستخدمها التقارير.
المحو والتصدير
يمكن تصدير جهة الاتصال أو محوها عبر واجهة البرمجة API، ويصل المحو إلى كل خدمة شقيقة تحتفظ بنسخة عبر القناة الداخلية الخاصة بالعائلة.

كل ما تستطيع الواجهة فعله، يستطيع POST فعله.
الأحداث هي الجزء الممتع
كل شيء آخر في هذه الصفحة مجرد بنية تحتية تتوقعها أصلاً. POST /v1/events هو المسار الذي يغيّر غرض المنتج.
تطبيقك يعرف بالفعل أشياء لا يمكن لأي أداة تسويقية مراقبتها: من أكمل الإعداد الأولي، ومن دعّا زميلاً، ومن اصطدم بحدّ ما، ومن صدّر بياناته ظهر يوم أحد. انشرها كأحداث برمزك الخاص، فيصبح كل منها مُشغِّلاً وشرطاً وشريحة.
يترتب الباقي على نموذج جهة الاتصال. الأحداث تُضاف ولا تُعدّل أبداً؛ فهي السجل الذي يتعلق به المنتج كله. قمع يُشغَّل عند حدث عرّفته أنت ليس تكاملاً — بل هو الآلية ذاتها التي يستخدمها message_opened باسم مختلف فيها.
- 1أنت تنشره
POST /v1/events— اسم، وجهة اتصال، حمولة، ومفتاح عدم تكرار. - 2يصليُضاف إلى سجل جهة الاتصال. لا شيء آخر يحتاج إلى معرفة وجوده.
- 3يبدأ قمعأي قمع تذكر نقطة دخوله ذلك الحدث، لأي جهة اتصال مؤهلة وفق مواصفات دخوله.
- 4قمعات أخرى تتفرع عليه"هل وقع هذا الحدث خلال آخر 14 يوماً" هو شرط شريحة عادي.
- موإنهاء التشغيلاتعقدة هدف تذكر الحدث نفسه توقف تسلسلاً لحظة أن يقوم الشخص بالفعل.
مصطلحاتكرمزك
حدود يستحق معرفتها قبل أن تبدأ البناء
يخزّن ClickSomo ثلاثة معرّفات عنك — مستأجر ومشروع ومستخدم، كمعرّفات مبهمة — ولا شيء غير ذلك. لا كلمة مرور، ولا ملف شخصي، ولا بطاقة، ولا فاتورة. حدود الخطة تصل كأرقام: كم جهة اتصال، كم رسالة، كم توليداً. لا يعبر مفردات الدفع ذلك الخط في أي من الاتجاهين.
جهات اتصالك ملكك. أنت المتحكم بالبيانات؛ ونحن المعالج. لا يوجد مسار يتيح لأي منتج آخر في العائلة قراءة قائمة جهات اتصالك أو الكتابة فيها، ولا قناة استيعاب يستخدمها أحدها.
إذا كنت تقيّم هذا جدياً: اقرأ /docs قبل قراءة أي شيء آخر في هذا الموقع. واجهة البرمجة API هي الوصف الصادق لما يفعله المنتج، وكل ادعاء في هذه الصفحات يقابله مسار أو نوع عقدة تجدها هناك. وعندما يتغيّر المخطط، تتغير هذه الصفحات.