جهات الاتصال
أبقِ جهات الاتصال والوسوم والحقول المخصصة متزامنة مع أنظمتك.
أبقِ جهات اتصال مساحة العمل متزامنة مع نظام CRM أو متجرك أو نظام ERP لديك: ادفع التغييرات لحظة حدوثها عبر upsert، واعرف بالتغييرات التي تُجرى هنا عبر أحداث contact.*.
كيف يعمل: مزامنة جهات الاتصالرقم واحد يعني جهة اتصال واحدة · ادفع التغييرات عبر upsert · الوسوم والحقول المخصصة · الموافقة · اعرف بالتغييرات التي تُجرى هنا · اللحاق بما فاتك · احذف جهة اتصال
رقم واحد يعني جهة اتصال واحدة#
تُعرَّف جهة الاتصال برقم هاتفها. أرسله بأي صيغة شائعة (+966 50 123 4567 أو 00966501234567 أو 0501234567)، ويُحفظ ويُعاد بصيغة E.164 (+966501234567). يُرفض إنشاء جهة اتصال ثانية بالرقم نفسه بالخطأ resource_exists، ويوضح existing_id جهة الاتصال الموجودة.
ادفع التغييرات عبر upsert#
يبحث POST /contacts/upsert عن جهة الاتصال برقم الهاتف ويغيّر الحقول المرسلة فقط، أو ينشئها. يرد بـ 201 عند الإنشاء و200 عند التحديث، فيغطي طلب واحد حالتي "عميل جديد" و"عميل تغيّرت بياناته":
{
"phone": "0501234567",
"first_name": "سارة",
"email": "sara@example.com",
"language": "ar",
"tags": ["عملاء VIP"],
"fields": { "loyalty_points": 180, "branch": "riyadh" }
}أرسل Idempotency-Key أيضًا: فلا يُطبَّق upsert المعاد مرتين أبدًا.
الوسوم والحقول المخصصة#
- الوسوم تقبل المعرّفات (
tag_…) أو الأسماء، ويُنشأ الاسم غير الموجود. في upsert أوPATCHيستبدلtagsوسوم جهة الاتصال كاملة. للإضافة دون حذف استخدمPOST /contacts/{id}/tags، ولإزالة وسم واحدDELETE /contacts/{id}/tags/{tag}. - الحقول المخصصة تُرسل في
fieldsبالمفاتيح الواردة منGET /contact_fields. تُفحص القيم حسب الحقل: رقم، أو تاريخ بصيغةYYYY-MM-DD، أو أحد خيارات القائمة. القيمة الفارغة تمسح الحقل، وتعود القيم نصية.
الموافقة#
يوضح opted_in هل تقبل جهة الاتصال رسائل الأعمال.
- إلغاء الاشتراك. إرسال
PATCHبالقيمة"opted_in": falseيعمل كرسالة "إيقاف" من العميل: تُلغى رسائل الحملات المجدولة له، وتحتاج القوالب المرسلة إليه بعدها إلىconsent_confirmed. - إعادة الاشتراك تحتاج سجلًا بكيفية موافقته:
"opted_in": true, "consent": {"source": "paper_form"}. المصادر هيwebsite_formوpaper_formوexisting_customerوwhatsapp_conversation، أوotherمعnote. - يستطيع العملاء أيضًا إلغاء الاشتراك وإعادته بأنفسهم عبر رسالة (انظر العربية والسوق السعودي)، ويصلك ذلك عبر
contact.opted_outوcontact.opted_in.
اعرف بالتغييرات التي تُجرى هنا#
اشترك بنقطة استقبال في contact.* ليبقى نظامك محدّثًا بالتغييرات القادمة من المنصة والاستيراد والتدفقات والواجهة البرمجية:
| الحدث | متى |
|---|---|
contact.created | أُضيفت جهة اتصال |
contact.updated | تغيّرت البيانات أو الوسوم أو الحقول |
contact.opted_out وcontact.opted_in | تغيّرت الموافقة |
contact.deleted | حُذفت جهة الاتصال، فاحذف نسختك |
تنتظر أحداث جهات الاتصال بضع ثوانٍ لتحمل جهة الاتصال مكتملة (تُكتب وسوم جهة الاتصال الجديدة وحقولها بعد إنشائها مباشرة)، وتصل عدة تغييرات سريعة كحدث contact.updated واحد. يكون data.object دائمًا جهة الاتصال كاملة، فطبّقه كلقطة كاملة لا كفرق.
اللحاق بما فاتك#
إن توقف نظامك، اعرض ما تغيّر منذ آخر مزامنة عبر GET /contacts?updated_since=2026-10-01T00:00:00Z وتنقّل بين الصفحات بـ cursor. أما الحذف فلا يُبلَّغ عنه إلا بأحداث contact.deleted، التي تستمر إعادة محاولتها وفق الجدول المعتاد ويمكن إعادة إرسالها من سجل التسليم.
احذف جهة اتصال#
يحذف DELETE /contacts/{id} جهة الاتصال ووسومها وقيم حقولها، ويلغي رسائل الحملات التي ما زالت مجدولة لها: وهو الرد على طلب حذف البيانات. يبقى سجل محادثاتها في صندوق الوارد.
نقاط الواجهة
- getعرض الحقول المخصصة
/contact_fields - getعرض جهات الاتصال
/contacts - postإنشاء جهة اتصال
/contacts - postإنشاء أو تحديث جهة اتصال برقم الهاتف
/contacts/upsert - getجلب جهة اتصال
/contacts/{id} - patchتحديث جهة اتصال
/contacts/{id} - DELحذف جهة اتصال
/contacts/{id} - postإضافة وسوم لجهة اتصال
/contacts/{id}/tags - DELإزالة وسم من جهة اتصال
/contacts/{id}/tags/{tag} - getعرض الوسوم
/tags - postإنشاء وسم
/tags - patchإعادة تسمية وسم
/tags/{id} - DELحذف وسم
/tags/{id}
عرض الحقول المخصصة
https://api.saei.automize.sa/v1/contact_fields- الصلاحية:
contacts:read - يعمل في وضع الاختبار
الحقول المخصصة لجهات الاتصال (تُنشأ من جهات الاتصال ← الحقول). استخدم key لكل حقل داخل fields لجهة الاتصال.
حقول الاستجابة200· كل الحقول المخصصة بترتيبها في المنصة.
object"list"مطلوبdataarray<ContactField>مطلوبالحقول الفرعية (7)
idstringمطلوبobject"contact_field"مطلوبkeystringمطلوبlabelstringمطلوبtypestringمطلوبإحدى القيم
textnumberdateselectoptionsarray | nullاختياريالقيم المسموح بها لحقل من نوع
select.requiredbooleanمطلوب
has_morebooleanمطلوبnext_cursorstring | nullمطلوب
الأخطاء المحتملة1
- 429rate_limitedطلبات كثيرة
جرّبها
curl -X GET https://api.saei.automize.sa/v1/contact_fields \
-H "Authorization: Bearer $API_KEY"كل الحقول المخصصة بترتيبها في المنصة.
{
"object": "list",
"data": [
{
"id": "fld_4",
"object": "contact_field",
"key": "city_branch",
"label": "الفرع",
"type": "select",
"options": [
"الرياض",
"جدة"
],
"required": false
},
{
"id": "fld_5",
"object": "contact_field",
"key": "loyalty_points",
"label": "نقاط الولاء",
"type": "number",
"options": null,
"required": false
}
],
"has_more": false,
"next_cursor": null
}عرض جهات الاتصال
https://api.saei.automize.sa/v1/contacts- الصلاحية:
contacts:read - لمفاتيح التشغيل فقط
جهات اتصال واتساب، الأحدث أولًا. ابحث عن شخص واحد بـ phone (بأي صيغة: +966 50 123 4567 أو 0501234567…)، أو زامن التغييرات بـ updated_since.
معاملات الاستعلام
limitintegerاختياريعدد العناصر المطلوبة، من 1 إلى 100.
cursorstringاختياريقيمة
next_cursorمن الصفحة السابقة.phonestringاختياريemailstringاختياريtagstringاختياريمعرّف وسم (
tag_…) أو اسمه.opted_inbooleanاختياريupdated_sincestringاختياريفقط جهات الاتصال التي تغيّرت في هذا الوقت أو بعده (ISO 8601).
حقول الاستجابة200· صفحة من جهات الاتصال.
object"list"مطلوبdataarray<Contact>مطلوبالحقول الفرعية (20)
idstringمطلوبobject"contact"مطلوبphonestring | nullمطلوبemailstring | nullاختياريfirst_namestring | nullاختياريlast_namestring | nullاختياريlanguagestring | nullاختيارياللغة التي يفضّلها، مثل
arأوen.countrystring | nullاختياريcitystring | nullاختياريgenderstring | nullاختياريbirth_datestring | nullاختياريnotesstring | nullاختياريopted_inbooleanمطلوبتصبح
falseعند إلغاء الاشتراك (رسالة إيقاف أو المنصة أو الواجهة). تتخطاها الحملات، وتحتاج القوالب التسويقية إلىconsent_confirmed.consentobject | nullاختياريكيف ومتى وافق على رسائل الأعمال، إن سُجّل ذلك.
الحقول الفرعية (3)
sourcestringاختياريnotestringاختياريcaptured_atstringاختياري
opted_out_atstring | nullاختياريbot_enabledbooleanاختياريهل ترد عليه الردود الآلية (التدفقات وروبوتات الذكاء الاصطناعي).
tagsarray<object>مطلوبالحقول الفرعية (2)
idstringاختياريnamestringاختياري
fieldsobjectمطلوبقيم الحقول المخصصة حسب المفتاح. القيم نصية.
created_atstring | nullاختياريupdated_atstring | nullاختياري
has_morebooleanمطلوبnext_cursorstring | nullمطلوب
الأخطاء المحتملة3
- 403test_mode_unsupportedغير متاح في وضع الاختبار
- 422parameter_invalidحقل غير صالح
- 429rate_limitedطلبات كثيرة
جرّبها
curl -X GET https://api.saei.automize.sa/v1/contacts \
-H "Authorization: Bearer $API_KEY"صفحة من جهات الاتصال.
{
"object": "list",
"data": [
{
"id": "ct_1052",
"object": "contact",
"phone": "+966501234567",
"email": "string",
"first_name": "string",
"last_name": "string",
"language": "string",
"country": "string",
"city": "string",
"gender": "string",
"birth_date": "string",
"notes": "string",
"opted_in": false,
"consent": {
"source": "string",
"note": "string",
"captured_at": "2026-10-01T09:30:00Z"
},
"opted_out_at": "2026-10-01T09:30:00Z",
"bot_enabled": false,
"tags": [
{
"id": "string",
"name": "string"
}
],
"fields": {},
"created_at": "2026-10-01T09:30:00Z",
"updated_at": "2026-10-01T09:30:00Z"
}
],
"has_more": false,
"next_cursor": "string"
}إنشاء جهة اتصال
https://api.saei.automize.sa/v1/contacts- الصلاحية:
contacts:write - لمفاتيح التشغيل فقط
- يقبل Idempotency-Key
رقم الهاتف الواحد يعني جهة اتصال واحدة: إن كان الرقم موجودًا فالرد هو resource_exists مع existing_id. للإنشاء أو التحديث في طلب واحد استخدم POST /v1/contacts/upsert.
يقبل tags معرّفات الوسوم أو أسماءها، ويُنشأ الاسم غير الموجود. ويقبل fields قيم الحقول المخصصة حسب key (انظر GET /v1/contact_fields).
الترويسات
Idempotency-Keystringاختياريأي نص فريد (يُفضّل UUID). إعادة الطلب بنفس المفتاح ونفس الجسم تُرجع الاستجابة الأولى بدل التنفيذ مرتين. يُحفظ لمدة 24 ساعة.
جسم الطلب
phonestringاختياريبأي صيغة، ويُحفظ بصيغة E.164. تُفهم الأرقام السعودية المكتوبة محليًا (
0501234567).emailstring | nullاختياريfirst_namestring | nullاختياريlast_namestring | nullاختياريlanguagestring | nullاختياريcountrystring | nullاختياريcitystring | nullاختياريgenderstring | nullاختياريإحدى القيم
malefemaleotherprefer_not_to_saynullbirth_datestring | nullاختياريnotesstring | nullاختياريbot_enabledbooleanاختياريtagsarray<string>اختياريمعرّفات الوسوم (
tag_…) أو أسماؤها. يُنشأ الاسم غير الموجود.fieldsobjectاختياريقيم الحقول المخصصة حسب المفتاح، وتُفحص حسب نوع الحقل (رقم، أو تاريخ بصيغة YYYY-MM-DD، أو أحد خيارات القائمة).
opted_inbooleanاختياريconsentobjectاختياريكيف وافق:
website_formأوpaper_formأوexisting_customerأوwhatsapp_conversationأوotherمعnote.الحقول الفرعية (2)
sourcestringمطلوبإحدى القيم
website_formpaper_formexisting_customerwhatsapp_conversationothernotestringاختياري
حقول الاستجابة201· تم الإنشاء.
idstringمطلوبobject"contact"مطلوبphonestring | nullمطلوبemailstring | nullاختياريfirst_namestring | nullاختياريlast_namestring | nullاختياريlanguagestring | nullاختيارياللغة التي يفضّلها، مثل
arأوen.countrystring | nullاختياريcitystring | nullاختياريgenderstring | nullاختياريbirth_datestring | nullاختياريnotesstring | nullاختياريopted_inbooleanمطلوبتصبح
falseعند إلغاء الاشتراك (رسالة إيقاف أو المنصة أو الواجهة). تتخطاها الحملات، وتحتاج القوالب التسويقية إلىconsent_confirmed.consentobject | nullاختياريكيف ومتى وافق على رسائل الأعمال، إن سُجّل ذلك.
الحقول الفرعية (3)
sourcestringاختياريnotestringاختياريcaptured_atstringاختياري
opted_out_atstring | nullاختياريbot_enabledbooleanاختياريهل ترد عليه الردود الآلية (التدفقات وروبوتات الذكاء الاصطناعي).
tagsarray<object>مطلوبالحقول الفرعية (2)
idstringاختياريnamestringاختياري
fieldsobjectمطلوبقيم الحقول المخصصة حسب المفتاح. القيم نصية.
created_atstring | nullاختياريupdated_atstring | nullاختياري
الأخطاء المحتملة7
- 402quota_exceededنفد الرصيد المتاح
- 403test_mode_unsupportedغير متاح في وضع الاختبار
- 422parameter_missingحقل مفقود
- 422parameter_invalidحقل غير صالح
- 404resource_missingغير موجود
- 409resource_existsموجود مسبقًا
- 429rate_limitedطلبات كثيرة
جرّبها
curl -X POST https://api.saei.automize.sa/v1/contacts \
-H "Authorization: Bearer $API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"phone": "+966501234567",
"first_name": "سارة",
"last_name": "القحطاني",
"email": "sara@example.com",
"language": "ar",
"tags": [
"عملاء VIP"
],
"fields": {
"loyalty_points": 120
},
"consent": {
"source": "website_form"
}
}'تم الإنشاء.
{
"id": "ct_1052",
"object": "contact",
"phone": "+966501234567",
"email": "sara@example.com",
"first_name": "سارة",
"last_name": "القحطاني",
"language": "ar",
"country": null,
"city": null,
"gender": null,
"birth_date": null,
"notes": null,
"opted_in": true,
"consent": {
"source": "website_form",
"captured_at": "2026-10-01T10:02:00Z"
},
"opted_out_at": null,
"bot_enabled": true,
"tags": [
{
"id": "tag_12",
"name": "عملاء VIP"
}
],
"fields": {
"loyalty_points": "120"
},
"created_at": "2026-10-01T10:02:00Z",
"updated_at": "2026-10-01T10:02:00Z"
}إنشاء أو تحديث جهة اتصال برقم الهاتف
https://api.saei.automize.sa/v1/contacts/upsert- الصلاحية:
contacts:write - لمفاتيح التشغيل فقط
- يقبل Idempotency-Key
الطلب المناسب لإبقاء نظام CRM لديك ومساحة العمل متزامنين. يبحث عن جهة الاتصال بـ phone (بأي صيغة) ويحدّث الحقول المرسلة، أو ينشئها. 201 عند الإنشاء و200 عند التحديث.
الترويسات
Idempotency-Keystringاختياريأي نص فريد (يُفضّل UUID). إعادة الطلب بنفس المفتاح ونفس الجسم تُرجع الاستجابة الأولى بدل التنفيذ مرتين. يُحفظ لمدة 24 ساعة.
جسم الطلب
phonestringاختياريبأي صيغة، ويُحفظ بصيغة E.164. تُفهم الأرقام السعودية المكتوبة محليًا (
0501234567).emailstring | nullاختياريfirst_namestring | nullاختياريlast_namestring | nullاختياريlanguagestring | nullاختياريcountrystring | nullاختياريcitystring | nullاختياريgenderstring | nullاختياريإحدى القيم
malefemaleotherprefer_not_to_saynullbirth_datestring | nullاختياريnotesstring | nullاختياريbot_enabledbooleanاختياريtagsarray<string>اختياريمعرّفات الوسوم (
tag_…) أو أسماؤها. يُنشأ الاسم غير الموجود.fieldsobjectاختياريقيم الحقول المخصصة حسب المفتاح، وتُفحص حسب نوع الحقل (رقم، أو تاريخ بصيغة YYYY-MM-DD، أو أحد خيارات القائمة).
opted_inbooleanاختياريconsentobjectاختياريكيف وافق:
website_formأوpaper_formأوexisting_customerأوwhatsapp_conversationأوotherمعnote.الحقول الفرعية (2)
sourcestringمطلوبإحدى القيم
website_formpaper_formexisting_customerwhatsapp_conversationothernotestringاختياري
حقول الاستجابة200· حُدّثت جهة اتصال موجودة.
idstringمطلوبobject"contact"مطلوبphonestring | nullمطلوبemailstring | nullاختياريfirst_namestring | nullاختياريlast_namestring | nullاختياريlanguagestring | nullاختيارياللغة التي يفضّلها، مثل
arأوen.countrystring | nullاختياريcitystring | nullاختياريgenderstring | nullاختياريbirth_datestring | nullاختياريnotesstring | nullاختياريopted_inbooleanمطلوبتصبح
falseعند إلغاء الاشتراك (رسالة إيقاف أو المنصة أو الواجهة). تتخطاها الحملات، وتحتاج القوالب التسويقية إلىconsent_confirmed.consentobject | nullاختياريكيف ومتى وافق على رسائل الأعمال، إن سُجّل ذلك.
الحقول الفرعية (3)
sourcestringاختياريnotestringاختياريcaptured_atstringاختياري
opted_out_atstring | nullاختياريbot_enabledbooleanاختياريهل ترد عليه الردود الآلية (التدفقات وروبوتات الذكاء الاصطناعي).
tagsarray<object>مطلوبالحقول الفرعية (2)
idstringاختياريnamestringاختياري
fieldsobjectمطلوبقيم الحقول المخصصة حسب المفتاح. القيم نصية.
created_atstring | nullاختياريupdated_atstring | nullاختياري
الأخطاء المحتملة7
- 402quota_exceededنفد الرصيد المتاح
- 403test_mode_unsupportedغير متاح في وضع الاختبار
- 422parameter_missingحقل مفقود
- 422parameter_invalidحقل غير صالح
- 404resource_missingغير موجود
- 409resource_existsموجود مسبقًا
- 429rate_limitedطلبات كثيرة
جرّبها
curl -X POST https://api.saei.automize.sa/v1/contacts/upsert \
-H "Authorization: Bearer $API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"phone": "0501234567",
"first_name": "سارة",
"fields": {
"loyalty_points": 180
}
}'حُدّثت جهة اتصال موجودة.
{
"id": "ct_1052",
"object": "contact",
"phone": "+966501234567",
"email": "string",
"first_name": "string",
"last_name": "string",
"language": "string",
"country": "string",
"city": "string",
"gender": "string",
"birth_date": "string",
"notes": "string",
"opted_in": false,
"consent": {
"source": "string",
"note": "string",
"captured_at": "2026-10-01T09:30:00Z"
},
"opted_out_at": "2026-10-01T09:30:00Z",
"bot_enabled": false,
"tags": [
{
"id": "string",
"name": "string"
}
],
"fields": {},
"created_at": "2026-10-01T09:30:00Z",
"updated_at": "2026-10-01T09:30:00Z"
}جلب جهة اتصال
https://api.saei.automize.sa/v1/contacts/{id}- الصلاحية:
contacts:read - لمفاتيح التشغيل فقط
معاملات المسار
idstringمطلوبمعرّف العنصر.
حقول الاستجابة200· جهة الاتصال.
idstringمطلوبobject"contact"مطلوبphonestring | nullمطلوبemailstring | nullاختياريfirst_namestring | nullاختياريlast_namestring | nullاختياريlanguagestring | nullاختيارياللغة التي يفضّلها، مثل
arأوen.countrystring | nullاختياريcitystring | nullاختياريgenderstring | nullاختياريbirth_datestring | nullاختياريnotesstring | nullاختياريopted_inbooleanمطلوبتصبح
falseعند إلغاء الاشتراك (رسالة إيقاف أو المنصة أو الواجهة). تتخطاها الحملات، وتحتاج القوالب التسويقية إلىconsent_confirmed.consentobject | nullاختياريكيف ومتى وافق على رسائل الأعمال، إن سُجّل ذلك.
الحقول الفرعية (3)
sourcestringاختياريnotestringاختياريcaptured_atstringاختياري
opted_out_atstring | nullاختياريbot_enabledbooleanاختياريهل ترد عليه الردود الآلية (التدفقات وروبوتات الذكاء الاصطناعي).
tagsarray<object>مطلوبالحقول الفرعية (2)
idstringاختياريnamestringاختياري
fieldsobjectمطلوبقيم الحقول المخصصة حسب المفتاح. القيم نصية.
created_atstring | nullاختياريupdated_atstring | nullاختياري
الأخطاء المحتملة3
- 403test_mode_unsupportedغير متاح في وضع الاختبار
- 404resource_missingغير موجود
- 429rate_limitedطلبات كثيرة
جرّبها
curl -X GET https://api.saei.automize.sa/v1/contacts/ct_1052 \
-H "Authorization: Bearer $API_KEY"جهة الاتصال.
{
"id": "ct_1052",
"object": "contact",
"phone": "+966501234567",
"email": "string",
"first_name": "string",
"last_name": "string",
"language": "string",
"country": "string",
"city": "string",
"gender": "string",
"birth_date": "string",
"notes": "string",
"opted_in": false,
"consent": {
"source": "string",
"note": "string",
"captured_at": "2026-10-01T09:30:00Z"
},
"opted_out_at": "2026-10-01T09:30:00Z",
"bot_enabled": false,
"tags": [
{
"id": "string",
"name": "string"
}
],
"fields": {},
"created_at": "2026-10-01T09:30:00Z",
"updated_at": "2026-10-01T09:30:00Z"
}تحديث جهة اتصال
https://api.saei.automize.sa/v1/contacts/{id}- الصلاحية:
contacts:write - لمفاتيح التشغيل فقط
يغيّر الحقول المرسلة فقط. يستبدل tags قائمة الوسوم كاملة (لإضافة وسم استخدم POST /v1/contacts/{id}/tags)، ويغيّر fields المفاتيح المرسلة فقط، والقيمة الفارغة تمسح الحقل.
opted_in: false يلغي اشتراك جهة الاتصال كما تفعل رسالة "إيقاف": تُلغى رسائل الحملات المجدولة لها. وopted_in: true يحتاج إلى consent يوضح كيف وافقت.
معاملات المسار
idstringمطلوبمعرّف العنصر.
جسم الطلب
phonestringاختياريبأي صيغة، ويُحفظ بصيغة E.164. تُفهم الأرقام السعودية المكتوبة محليًا (
0501234567).emailstring | nullاختياريfirst_namestring | nullاختياريlast_namestring | nullاختياريlanguagestring | nullاختياريcountrystring | nullاختياريcitystring | nullاختياريgenderstring | nullاختياريإحدى القيم
malefemaleotherprefer_not_to_saynullbirth_datestring | nullاختياريnotesstring | nullاختياريbot_enabledbooleanاختياريtagsarray<string>اختياريمعرّفات الوسوم (
tag_…) أو أسماؤها. يُنشأ الاسم غير الموجود.fieldsobjectاختياريقيم الحقول المخصصة حسب المفتاح، وتُفحص حسب نوع الحقل (رقم، أو تاريخ بصيغة YYYY-MM-DD، أو أحد خيارات القائمة).
opted_inbooleanاختياريconsentobjectاختياريكيف وافق:
website_formأوpaper_formأوexisting_customerأوwhatsapp_conversationأوotherمعnote.الحقول الفرعية (2)
sourcestringمطلوبإحدى القيم
website_formpaper_formexisting_customerwhatsapp_conversationothernotestringاختياري
حقول الاستجابة200· جهة الاتصال بعد التحديث.
idstringمطلوبobject"contact"مطلوبphonestring | nullمطلوبemailstring | nullاختياريfirst_namestring | nullاختياريlast_namestring | nullاختياريlanguagestring | nullاختيارياللغة التي يفضّلها، مثل
arأوen.countrystring | nullاختياريcitystring | nullاختياريgenderstring | nullاختياريbirth_datestring | nullاختياريnotesstring | nullاختياريopted_inbooleanمطلوبتصبح
falseعند إلغاء الاشتراك (رسالة إيقاف أو المنصة أو الواجهة). تتخطاها الحملات، وتحتاج القوالب التسويقية إلىconsent_confirmed.consentobject | nullاختياريكيف ومتى وافق على رسائل الأعمال، إن سُجّل ذلك.
الحقول الفرعية (3)
sourcestringاختياريnotestringاختياريcaptured_atstringاختياري
opted_out_atstring | nullاختياريbot_enabledbooleanاختياريهل ترد عليه الردود الآلية (التدفقات وروبوتات الذكاء الاصطناعي).
tagsarray<object>مطلوبالحقول الفرعية (2)
idstringاختياريnamestringاختياري
fieldsobjectمطلوبقيم الحقول المخصصة حسب المفتاح. القيم نصية.
created_atstring | nullاختياريupdated_atstring | nullاختياري
الأخطاء المحتملة6
- 403test_mode_unsupportedغير متاح في وضع الاختبار
- 422parameter_missingحقل مفقود
- 422parameter_invalidحقل غير صالح
- 404resource_missingغير موجود
- 409resource_existsموجود مسبقًا
- 429rate_limitedطلبات كثيرة
جرّبها
curl -X PATCH https://api.saei.automize.sa/v1/contacts/ct_1052 \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"city": "جدة",
"fields": {
"loyalty_points": 200
}
}'جهة الاتصال بعد التحديث.
{
"id": "ct_1052",
"object": "contact",
"phone": "+966501234567",
"email": "string",
"first_name": "string",
"last_name": "string",
"language": "string",
"country": "string",
"city": "string",
"gender": "string",
"birth_date": "string",
"notes": "string",
"opted_in": false,
"consent": {
"source": "string",
"note": "string",
"captured_at": "2026-10-01T09:30:00Z"
},
"opted_out_at": "2026-10-01T09:30:00Z",
"bot_enabled": false,
"tags": [
{
"id": "string",
"name": "string"
}
],
"fields": {},
"created_at": "2026-10-01T09:30:00Z",
"updated_at": "2026-10-01T09:30:00Z"
}حذف جهة اتصال
https://api.saei.automize.sa/v1/contacts/{id}- الصلاحية:
contacts:write - لمفاتيح التشغيل فقط
يحذف جهة الاتصال ووسومها وقيم حقولها المخصصة، وتُلغى رسائل الحملات المجدولة لها. يبقى سجل المحادثات في صندوق الوارد.
معاملات المسار
idstringمطلوبمعرّف العنصر.
حقول الاستجابة200· تم الحذف.
idstringمطلوبobjectstringمطلوبdeletedtrueمطلوب
الأخطاء المحتملة3
- 403test_mode_unsupportedغير متاح في وضع الاختبار
- 404resource_missingغير موجود
- 429rate_limitedطلبات كثيرة
جرّبها
curl -X DELETE https://api.saei.automize.sa/v1/contacts/ct_1052 \
-H "Authorization: Bearer $API_KEY"تم الحذف.
{
"id": "ct_1052",
"object": "contact",
"deleted": true
}إضافة وسوم لجهة اتصال
https://api.saei.automize.sa/v1/contacts/{id}/tags- الصلاحية:
contacts:write - لمفاتيح التشغيل فقط
يضيف الوسوم (معرّفات أو أسماء، والاسم الجديد يُنشئ الوسم) مع الإبقاء على وسوم جهة الاتصال الحالية.
معاملات المسار
idstringمطلوبمعرّف العنصر.
جسم الطلب
tagsarray<string>مطلوب
حقول الاستجابة200· جهة الاتصال مع وسومها.
idstringمطلوبobject"contact"مطلوبphonestring | nullمطلوبemailstring | nullاختياريfirst_namestring | nullاختياريlast_namestring | nullاختياريlanguagestring | nullاختيارياللغة التي يفضّلها، مثل
arأوen.countrystring | nullاختياريcitystring | nullاختياريgenderstring | nullاختياريbirth_datestring | nullاختياريnotesstring | nullاختياريopted_inbooleanمطلوبتصبح
falseعند إلغاء الاشتراك (رسالة إيقاف أو المنصة أو الواجهة). تتخطاها الحملات، وتحتاج القوالب التسويقية إلىconsent_confirmed.consentobject | nullاختياريكيف ومتى وافق على رسائل الأعمال، إن سُجّل ذلك.
الحقول الفرعية (3)
sourcestringاختياريnotestringاختياريcaptured_atstringاختياري
opted_out_atstring | nullاختياريbot_enabledbooleanاختياريهل ترد عليه الردود الآلية (التدفقات وروبوتات الذكاء الاصطناعي).
tagsarray<object>مطلوبالحقول الفرعية (2)
idstringاختياريnamestringاختياري
fieldsobjectمطلوبقيم الحقول المخصصة حسب المفتاح. القيم نصية.
created_atstring | nullاختياريupdated_atstring | nullاختياري
الأخطاء المحتملة4
- 403test_mode_unsupportedغير متاح في وضع الاختبار
- 422parameter_missingحقل مفقود
- 404resource_missingغير موجود
- 429rate_limitedطلبات كثيرة
جرّبها
curl -X POST https://api.saei.automize.sa/v1/contacts/ct_1052/tags \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tags": [
"tag_12",
"اشترى مؤخرًا"
]
}'جهة الاتصال مع وسومها.
{
"id": "ct_1052",
"object": "contact",
"phone": "+966501234567",
"email": "string",
"first_name": "string",
"last_name": "string",
"language": "string",
"country": "string",
"city": "string",
"gender": "string",
"birth_date": "string",
"notes": "string",
"opted_in": false,
"consent": {
"source": "string",
"note": "string",
"captured_at": "2026-10-01T09:30:00Z"
},
"opted_out_at": "2026-10-01T09:30:00Z",
"bot_enabled": false,
"tags": [
{
"id": "string",
"name": "string"
}
],
"fields": {},
"created_at": "2026-10-01T09:30:00Z",
"updated_at": "2026-10-01T09:30:00Z"
}إزالة وسم من جهة اتصال
https://api.saei.automize.sa/v1/contacts/{id}/tags/{tag}- الصلاحية:
contacts:write - لمفاتيح التشغيل فقط
معاملات المسار
idstringمطلوبمعرّف العنصر.
tagstringمطلوبمعرّف الوسم (
tag_…) أو اسمه.
حقول الاستجابة200· جهة الاتصال بدون الوسم.
idstringمطلوبobject"contact"مطلوبphonestring | nullمطلوبemailstring | nullاختياريfirst_namestring | nullاختياريlast_namestring | nullاختياريlanguagestring | nullاختيارياللغة التي يفضّلها، مثل
arأوen.countrystring | nullاختياريcitystring | nullاختياريgenderstring | nullاختياريbirth_datestring | nullاختياريnotesstring | nullاختياريopted_inbooleanمطلوبتصبح
falseعند إلغاء الاشتراك (رسالة إيقاف أو المنصة أو الواجهة). تتخطاها الحملات، وتحتاج القوالب التسويقية إلىconsent_confirmed.consentobject | nullاختياريكيف ومتى وافق على رسائل الأعمال، إن سُجّل ذلك.
الحقول الفرعية (3)
sourcestringاختياريnotestringاختياريcaptured_atstringاختياري
opted_out_atstring | nullاختياريbot_enabledbooleanاختياريهل ترد عليه الردود الآلية (التدفقات وروبوتات الذكاء الاصطناعي).
tagsarray<object>مطلوبالحقول الفرعية (2)
idstringاختياريnamestringاختياري
fieldsobjectمطلوبقيم الحقول المخصصة حسب المفتاح. القيم نصية.
created_atstring | nullاختياريupdated_atstring | nullاختياري
الأخطاء المحتملة3
- 403test_mode_unsupportedغير متاح في وضع الاختبار
- 404resource_missingغير موجود
- 429rate_limitedطلبات كثيرة
جرّبها
curl -X DELETE https://api.saei.automize.sa/v1/contacts/ct_1052/tags/tag_12 \
-H "Authorization: Bearer $API_KEY"جهة الاتصال بدون الوسم.
{
"id": "ct_1052",
"object": "contact",
"phone": "+966501234567",
"email": "string",
"first_name": "string",
"last_name": "string",
"language": "string",
"country": "string",
"city": "string",
"gender": "string",
"birth_date": "string",
"notes": "string",
"opted_in": false,
"consent": {
"source": "string",
"note": "string",
"captured_at": "2026-10-01T09:30:00Z"
},
"opted_out_at": "2026-10-01T09:30:00Z",
"bot_enabled": false,
"tags": [
{
"id": "string",
"name": "string"
}
],
"fields": {},
"created_at": "2026-10-01T09:30:00Z",
"updated_at": "2026-10-01T09:30:00Z"
}عرض الوسوم
https://api.saei.automize.sa/v1/tags- الصلاحية:
contacts:read - يعمل في وضع الاختبار
الوسوم التي تجمع جهات اتصالك، مع عدد جهات اتصال واتساب التي تحمل كل وسم.
معاملات الاستعلام
limitintegerاختياريعدد العناصر المطلوبة، من 1 إلى 100.
cursorstringاختياريقيمة
next_cursorمن الصفحة السابقة.namestringاختيارياسم الوسم بالضبط.
حقول الاستجابة200· صفحة من الوسوم.
object"list"مطلوبdataarray<Tag>مطلوبالحقول الفرعية (5)
idstringمطلوبobject"tag"مطلوبnamestringمطلوبcontact_countintegerاختياريcreated_atstring | nullاختياري
has_morebooleanمطلوبnext_cursorstring | nullمطلوب
الأخطاء المحتملة2
- 422parameter_invalidحقل غير صالح
- 429rate_limitedطلبات كثيرة
جرّبها
curl -X GET https://api.saei.automize.sa/v1/tags \
-H "Authorization: Bearer $API_KEY"صفحة من الوسوم.
{
"object": "list",
"data": [
{
"id": "tag_12",
"object": "tag",
"name": "عملاء VIP",
"contact_count": 348,
"created_at": "2026-07-01T09:00:00Z"
}
],
"has_more": false,
"next_cursor": null
}إنشاء وسم
https://api.saei.automize.sa/v1/tags- الصلاحية:
contacts:write - لمفاتيح التشغيل فقط
- يقبل Idempotency-Key
الترويسات
Idempotency-Keystringاختياريأي نص فريد (يُفضّل UUID). إعادة الطلب بنفس المفتاح ونفس الجسم تُرجع الاستجابة الأولى بدل التنفيذ مرتين. يُحفظ لمدة 24 ساعة.
جسم الطلب
namestringمطلوب
حقول الاستجابة201· تم الإنشاء.
idstringمطلوبobject"tag"مطلوبnamestringمطلوبcontact_countintegerاختياريcreated_atstring | nullاختياري
الأخطاء المحتملة4
- 403test_mode_unsupportedغير متاح في وضع الاختبار
- 422parameter_missingحقل مفقود
- 409resource_existsموجود مسبقًا
- 429rate_limitedطلبات كثيرة
جرّبها
curl -X POST https://api.saei.automize.sa/v1/tags \
-H "Authorization: Bearer $API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"name": "عملاء VIP"
}'تم الإنشاء.
{
"id": "tag_12",
"object": "tag",
"name": "string",
"contact_count": 0,
"created_at": "2026-10-01T09:30:00Z"
}إعادة تسمية وسم
https://api.saei.automize.sa/v1/tags/{id}- الصلاحية:
contacts:write - لمفاتيح التشغيل فقط
معاملات المسار
idstringمطلوبمعرّف العنصر.
جسم الطلب
namestringمطلوب
حقول الاستجابة200· تمت إعادة التسمية.
idstringمطلوبobject"tag"مطلوبnamestringمطلوبcontact_countintegerاختياريcreated_atstring | nullاختياري
الأخطاء المحتملة4
- 403test_mode_unsupportedغير متاح في وضع الاختبار
- 404resource_missingغير موجود
- 409resource_existsموجود مسبقًا
- 429rate_limitedطلبات كثيرة
جرّبها
curl -X PATCH https://api.saei.automize.sa/v1/tags/tag_12 \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "عملاء ذهبيون"
}'تمت إعادة التسمية.
{
"id": "tag_12",
"object": "tag",
"name": "string",
"contact_count": 0,
"created_at": "2026-10-01T09:30:00Z"
}حذف وسم
https://api.saei.automize.sa/v1/tags/{id}- الصلاحية:
contacts:write - لمفاتيح التشغيل فقط
يُزال الوسم من كل جهات الاتصال، وتبقى جهات الاتصال نفسها.
معاملات المسار
idstringمطلوبمعرّف العنصر.
حقول الاستجابة200· تم الحذف.
idstringمطلوبobjectstringمطلوبdeletedtrueمطلوب
الأخطاء المحتملة3
- 403test_mode_unsupportedغير متاح في وضع الاختبار
- 404resource_missingغير موجود
- 429rate_limitedطلبات كثيرة
جرّبها
curl -X DELETE https://api.saei.automize.sa/v1/tags/tag_12 \
-H "Authorization: Bearer $API_KEY"تم الحذف.
{
"id": "tag_12",
"object": "tag",
"deleted": true
}