الشرائح
إنشاء شرائح ديناميكية بناءً على سمات المشتركين وسلوكهم
الشرائح هي مجموعات ديناميكية من المشتركين تُعرَّف بواسطة شروط محددة. على عكس القوائم الثابتة، تتحدث الشرائح تلقائيًا مع تغيُّر بيانات المشتركين. استخدم الشرائح لاستهداف الحملات بجماهير محددة بناءً على السمات والتفاعل والسلوك.
أنواع التطابق
| نوع التطابق | القيمة | الوصف |
|---|---|---|
All | 0 | يجب أن تتطابق جميع الشروط (منطق AND) |
Any | 1 | يمكن لأي شرط أن يتطابق (منطق OR) |
إنشاء شريحة
POST https://api.mail.land/v1/marketing/segments{
"name": "Active Engaged Users",
"description": "Users who opened or clicked in last 30 days",
"matchType": "All",
"conditions": [
{
"field": "lastemailopenedat",
"operator": "inlast",
"value": "30"
},
{
"field": "status",
"operator": "equals",
"value": "Active"
}
]
}| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
name | string | نعم | اسم الشريحة (فريد لكل مساحة عمل) |
description | string | لا | وصف الشريحة |
matchType | string | لا | All (افتراضي) أو Any |
conditions | array | نعم | شرط واحد على الأقل |
curl -X POST https://api.mail.land/v1/marketing/segments \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{
"name": "Active Engaged Users",
"matchType": "All",
"conditions": [
{ "field": "lastemailopenedat", "operator": "inlast", "value": "30" },
{ "field": "status", "operator": "equals", "value": "Active" }
]
}'الاستجابة
{
"id": "0qe306asbapwvd",
"name": "Active Engaged Users",
"description": "Users who opened or clicked in last 30 days",
"matchType": "all",
"matchTypeName": "All",
"conditionsCount": 2,
"subscriberCount": 450,
"createdAt": "2026-02-17T12:00:00Z",
"updatedAt": "2026-02-17T12:00:00Z"
}تُعيد الاستجابات matchType بأحرف صغيرة ("all" / "any") حتى وإن كان طلب الإنشاء/التحديث يقبل "All"/"Any".
حقول الشرط المبنية على الفتح/النقر (emailsopened، lastemailopenedat، إلخ) تتضمن نشاطاً آلياً، الجلب المسبق لحماية خصوصية بريد Apple وماسحات الروابط الأمنية، وهو غير مُصفّى حالياً.
توجد أيضاً نقطة نهاية غير موثَّقة GET /{id}/preview، تُعيد عيّنة من المشتركين الذين يطابقون حالياً شروط الشريحة.
حقول الشرط
الحقول النصية
الحقول: email، firstname، lastname، company، source، phone
| المعامل | الوصف | القيمة مطلوبة |
|---|---|---|
equals | تطابق تام | نعم |
notequals | لا يساوي | نعم |
contains | يحتوي على نص فرعي | نعم |
notcontains | لا يحتوي على | نعم |
startswith | يبدأ بـ | نعم |
endswith | ينتهي بـ | نعم |
isempty | الحقل فارغ | لا |
isnotempty | الحقل غير فارغ | لا |
الحقول الرقمية
الحقول: emailssent، emailsopened، emailsclicked
| المعامل | الوصف | القيمة مطلوبة | القيمة2 مطلوبة |
|---|---|---|---|
equals | يساوي | نعم | لا |
notequals | لا يساوي | نعم | لا |
greaterthan | أكبر من | نعم | لا |
greaterthanorequal | أكبر من أو يساوي | نعم | لا |
lessthan | أقل من | نعم | لا |
lessthanorequal | أقل من أو يساوي | نعم | لا |
between | بين قيمتين | نعم | نعم |
حقول التاريخ
الحقول: createdat، subscribedat، lastemailsentat، lastemailopenedat، lastemailclickedat
| المعامل | الوصف | القيمة مطلوبة |
|---|---|---|
equals | في تاريخ محدد | نعم (تاريخ ISO) |
before | قبل التاريخ | نعم (تاريخ ISO) |
after | بعد التاريخ | نعم (تاريخ ISO) |
onorbefore | في أو قبل | نعم (تاريخ ISO) |
onorafter | في أو بعد | نعم (تاريخ ISO) |
between | بين تاريخين | نعم (value + value2) |
inlast | في آخر N أيام | نعم (عدد صحيح للأيام) |
isnull | التاريخ غير محدد | لا |
isnotnull | التاريخ محدد | لا |
الحقول التعدادية
الحقل: status
| المعامل | الوصف | القيم |
|---|---|---|
equals | يساوي الحالة | Active، Unsubscribed، Bounced، Complained |
notequals | لا يساوي | نفس القيم |
أمثلة على الشروط
{ "field": "email", "operator": "contains", "value": "example.com" }{ "field": "emailssent", "operator": "between", "value": "10", "value2": "50" }{ "field": "lastemailclickedat", "operator": "inlast", "value": "7" }{ "field": "firstname", "operator": "isempty" }الحصول على بيانات تعريف الشريحة
استرداد جميع الحقول والمعاملات والقيم التعدادية المتاحة لبناء شروط الشريحة:
GET https://api.mail.land/v1/marketing/segments/metadata/fieldscurl https://api.mail.land/v1/marketing/segments/metadata/fields \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."{
"fields": [
{
"name": "email",
"label": "Email",
"type": "string",
"operators": ["equals", "notequals", "contains", "notcontains", "startswith", "endswith", "isempty", "isnotempty"],
"enumValues": null
},
{
"name": "status",
"label": "Status",
"type": "enum",
"operators": ["equals", "notequals"],
"enumValues": ["Active", "Unsubscribed", "Bounced", "Complained"]
}
]
}قائمة الشرائح
GET https://api.mail.land/v1/marketing/segments| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
cursor | string | - | مؤشر معتم من nextCursor للصفحة السابقة. احذفه للصفحة الأولى. |
limit | int | 20 | العناصر في الصفحة |
search | string | - | البحث بالاسم أو الوصف |
sortBy | string | - | حقل الترتيب |
sortDesc | bool | false | الترتيب تنازلياً |
curl "https://api.mail.land/v1/marketing/segments?limit=20" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."الحصول على تفاصيل الشريحة
GET https://api.mail.land/v1/marketing/segments/{id}يعيد الشريحة الكاملة مع شروطها:
curl https://api.mail.land/v1/marketing/segments/0qe306asbapwvd \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."{
"id": "0qe306asbapwvd",
"name": "Active Engaged Users",
"description": "Users who engaged in last 30 days",
"matchType": "all",
"matchTypeName": "All",
"conditionsCount": 2,
"subscriberCount": 450,
"conditions": [
{
"field": "lastemailopenedat",
"operator": "inlast",
"value": "30",
"value2": null
},
{
"field": "status",
"operator": "equals",
"value": "Active",
"value2": null
}
],
"cachedCount": 450,
"cachedAt": "2026-02-17T10:00:00Z",
"createdAt": "2026-01-10T08:00:00Z",
"updatedAt": "2026-02-17T10:00:00Z"
}معاينة الشروط
معاينة نتيجة الشروط قبل إنشاء الشريحة. يقتصر تقييم الشريحة دائماً على المشتركين ذوي الحالة Active، لذا فإن شرطاً مثل status notequals Active لا يطابق أحداً.
POST https://api.mail.land/v1/marketing/segments/preview{
"conditions": [
{ "field": "lastemailopenedat", "operator": "inlast", "value": "30" }
],
"matchType": "All"
}curl -X POST https://api.mail.land/v1/marketing/segments/preview \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{
"conditions": [
{ "field": "lastemailopenedat", "operator": "inlast", "value": "30" }
],
"matchType": "All"
}'{
"count": 450,
"sampleEmails": [
"[email protected]",
"[email protected]",
"[email protected]"
]
}الحصول على عدد الشريحة
GET https://api.mail.land/v1/marketing/segments/{id}/countcurl https://api.mail.land/v1/marketing/segments/0qe306asbapwvd/count \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."{
"segmentId": "0qe306asbapwvd",
"count": 450
}تحديث ذاكرة التخزين المؤقت للشريحة
إجبار إعادة حساب المشتركين المطابقين:
POST https://api.mail.land/v1/marketing/segments/{id}/refreshcurl -X POST https://api.mail.land/v1/marketing/segments/0qe306asbapwvd/refresh \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."{
"segmentId": "0qe306asbapwvd",
"count": 460,
"refreshedAt": "2026-02-17T12:30:00Z"
}تكرار شريحة
POST https://api.mail.land/v1/marketing/segments/{id}/duplicate?name=Copy%20of%20Segmentينشئ شريحة جديدة بشروط مستنسخة. المعامل name اختياري.
curl -X POST "https://api.mail.land/v1/marketing/segments/0qe306asbapwvd/duplicate?name=Copy%20of%20Segment" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."تحديث شريحة
PUT https://api.mail.land/v1/marketing/segments/{id}يتطابق نص الطلب مع طلب الإنشاء. يؤدي تحديث الشريحة إلى تحديث عددها المخزن مؤقتًا تلقائيًا.
curl -X PUT https://api.mail.land/v1/marketing/segments/0qe306asbapwvd \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{
"name": "Active Engaged Users (Updated)",
"matchType": "All",
"conditions": [
{ "field": "lastemailopenedat", "operator": "inlast", "value": "14" },
{ "field": "status", "operator": "equals", "value": "Active" }
]
}'حذف شريحة
DELETE https://api.mail.land/v1/marketing/segments/{id}يؤدي حذف شريحة إلى فصلها عن أي حملة بحالة Draft أو Scheduled تستهدفها (يُمسَح segmentId الخاص بالحملة)، فتصبح بلا جمهور: إرسالها يُرجِع 422 أو يُسلَّم إلى لا أحد. أما الحملة التي هي بالفعل في حالة Sending فلا تتأثر، لأن مستلميها قد تم تحديدهم مسبقاً.
curl -X DELETE https://api.mail.land/v1/marketing/segments/0qe306asbapwvd \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."استجابات الخطأ
| الحالة | الرمز | الوصف |
|---|---|---|
400 | VALIDATION_FAILED | الاسم أو الشروط غير صالحة |
400 | INVALID_REQUEST | اسم الشريحة موجود مسبقًا |
403 | FORBIDDEN | صلاحيات غير كافية |
404 | RESOURCE_NOT_FOUND | الشريحة غير موجودة |