انتقل للمحتوى

    عربي أو إنجليزي · ↑↓ للتنقل · Enter للفتح · Esc للقفل

    English
    في الصفحة دي

    الردود التلقائية

    تعديل / تشغيل وإيقاف قاعدة

    PATCH/v2/numbers/{numberId}/auto-replies/{ruleId}
    • الصلاحية:autoreplies:write
    • Idempotency-Key:اختياري
    • بيغيّر إعدادات

    تعديل جزئي؛ enabled بيشغل ويوقف.

    البارامترات

    المسار

    الاسمالنوعالقيودالوصف
    numberIdإجباريالنوعstringالقيود—الوصفرقم الـ id بتاع الرقم (من GET /v2/numbers).
    ruleIdإجباريالنوعstringالقيود—الوصفid قاعدة الرد التلقائي.

    الهيدرز

    الاسمالنوعالقيودالوصف
    Idempotency-Keyاختياريالنوعstringالقيود≤ 191 حرفالوصفid فريد من عندك للعملية دي (حد أقصى 191 حرف ASCII). لو كررت بنفس المفتاح ونفس الـ body بيرجعلك أول رد ومعاه Idempotent-Replayed: true — عمرها ما تتنفذ مرتين. بيتحفظ 24 ساعة.
    X-Request-Idاختياريالنوعstringالقيود—الوصفاختياري: id الطلب بتاعك وبيرجعلك (غير كده بنعمل req_…). اديه للدعم لو احتجت.

    الـ Body

    الاسمالنوعالقيودالوصف
    nameاختياريالنوعstringالقيود≤ 120 حرفالوصفاسم القاعدة (حد أقصى 120).
    enabledاختياريالنوعbooleanالقيودالافتراضي trueالوصفfalse بيسيب القاعدة موجودة بس يوقف ردها.
    triggerاختياريالنوعobjectالقيود—الوصفإمتى القاعدة ترد.
    trigger.typeاختياريالنوعstringالقيودواحد من: KEYWORD · FIRST_MESSAGE · AWAYالوصفKEYWORD (الرسالة فيها/هي كلمة معينة) أو FIRST_MESSAGE (ترحيب بمحادثة جديدة) أو AWAY (برا مواعيد العمل).
    trigger.matchاختياريالنوعstringالقيودواحد من: EXACT · CONTAINS · STARTS_WITH · REGEXالوصفEXACT أو CONTAINS أو STARTS_WITH (كلمات حرفية بعد توحيد الحروف العربي: أ/إ/آ ← ا، ى ← ي، ة ← ه، من غير تشكيل) أو REGEX (أنماط RE2 في trigger.patterns). أي حالة حروف مقبولة (regex و starts_with)؛ و trigger.matchType اسم بديل.
    trigger.keywordsاختياريالنوعstring[]القيود≤ 50 عنصرالوصفلحد 50 كلمة لقواعد EXACT / CONTAINS / STARTS_WITH.
    trigger.patternsاختياريالنوعstring[]القيود1–10 عنصرالوصفقواعد REGEX: من 1 لـ 10 أنماط RE2، كل نمط ≤ 200 حرف؛ أي نمط يطابق بيشغّل القاعدة. وقت خطّي — من غير نظر للأمام/للخلف ولا إشارة لمجموعة سابقة. المجموعات بتتحط في الرد كـ {1} و {2} أو {اسم_المجموعة}.
    trigger.regexاختياريالنوعobjectالقيود—الوصفخيارات REGEX.
    trigger.regex.ignoreCaseاختياريالنوعbooleanالقيودالافتراضي trueالوصفتجاهل الحروف الكبيرة والصغيرة (افتراضيًا true).
    trigger.regex.normalizeArabicاختياريالنوعbooleanالقيودالافتراضي trueالوصفالمطابقة على النص بعد توحيد الحروف العربي: أ/إ/آ ← ا، ى ← ي، ة ← ه، من غير تطويل وتشكيل، والأرقام العربي ← 0–9 (افتراضيًا true).
    trigger.regex.allowLinksInCapturesاختياريالنوعbooleanالقيودالافتراضي falseالوصفسيب الروابط في الأجزاء الملتقطة (افتراضيًا false: بتتشال دايمًا عشان محدش يخلّي رقمك يبعت رابط من اختياره).
    scheduleاختياريالنوعobject | nullالقيود—الوصفمواعيد العمل (لقواعد AWAY). null = طول الوقت.
    schedule.timezoneاختياريالنوعstringالقيود—الوصفالمنطقة الزمنية IANA، مثلًا Africa/Cairo أو Asia/Riyadh.
    schedule.daysاختياريالنوعinteger[]القيود—الوصفأيام الشغل، 0 = الأحد … 6 = السبت.
    schedule.startاختياريالنوعstringالقيود—الوصفوقت الفتح HH:mm.
    schedule.endاختياريالنوعstringالقيود—الوصفوقت القفل HH:mm.
    replyاختياريالنوعobjectالقيود—الوصفالرد.
    reply.textاختياريالنوعstringالقيود≤ 4096 حرفالوصفنص الرد؛ {name|بديل} بيحط اسم العميل.
    reply.mediaUrlاختياريالنوعstringالقيود—الوصفملف https:// عام اختياري يتبعت مع الرد.
    reply.mediaTypeاختياريالنوعstringالقيودواحد من: image · video · document · audioالوصفنوع reply.mediaUrl.
    cooldownMinutesاختياريالنوعintegerالقيود≥ 0الوصفماترُدّش على نفس الشخص بنفس القاعدة تاني قبل الدقايق دي.
    priorityاختياريالنوعintegerالقيود—الوصفالترتيب لو أكتر من قاعدة اتطابقت: الرقم الأصغر بيتشاف الأول (الافتراضي 0).

    الطلب

    curl -X PATCH "https://mursilat.com/api/v2/numbers/cm1abcd2345efgh6789ijkl/auto-replies/cm3rule0001xyz" \
      -H "Authorization: Bearer $WASLA_API_KEY" \
      -H "Idempotency-Key: order-1042-confirm" \
      -H "Content-Type: application/json" \
      -d '{
      "enabled": false
    }'
    الطلب — JSON
    {
      "enabled": false
    }

    الرد

    200مثال

    200 — application/json
    {
      "id": "cm3rule0001xyz",
      "sessionId": "cm1abcd2345efgh6789ijkl",
      "scope": "number",
      "name": "الأسعار",
      "enabled": false,
      "trigger": {
        "type": "KEYWORD",
        "match": "CONTAINS",
        "keywords": [
          "سعر",
          "بكام",
          "price"
        ]
      },
      "schedule": null,
      "reply": {
        "text": "أهلاً {name|بيك} 👋 الأسعار: https://example.com/prices"
      },
      "cooldownMinutes": 60,
      "priority": 0,
      "stats": {
        "triggered": 42,
        "lastTriggeredAt": "2026-10-13T07:40:00.000Z"
      },
      "createdAt": "2026-10-01T09:00:00.000Z",
      "updatedAt": "2026-10-10T09:00:00.000Z"
    }

    شكل الرد

    حقول الرد في المثال. افتح الكائنات والقوايم.

    • responseobject13 حقل
      • idstring "cm3rule0001xyz"
      • sessionIdstring "cm1abcd2345efgh6789ijkl"
      • scopestring "number"
      • namestring "الأسعار"
      • enabledboolean false
      • triggerobject3 حقل
        • typestring "KEYWORD"
        • matchstring "CONTAINS"
        • keywordsarray3 عنصر
          • [0]string "سعر"
      • schedulenull null
      • replyobject1 حقل
        • textstring "أهلاً {name|بيك} 👋 الأسعار: https://example.com/prices"
      • cooldownMinutesinteger 60
      • priorityinteger 0
      • statsobject2 حقل
        • triggeredinteger 42
        • lastTriggeredAtstring "2026-10-13T07:40:00.000Z"
      • createdAtstring "2026-10-01T09:00:00.000Z"
      • updatedAtstring "2026-10-10T09:00:00.000Z"

    الأخطاء

    أخطاء المصادقة وحدود الطلبات والتحقق العامة بس.

    الأخطاء →

    جرّب

    ابعت الطلب ده من متصفحك لـ API مرسلات.

    مثال موثّق

    معاينة — النسخة دي من التوثيق مش على mursilat.com، فالكونسول بيعرض المثال الموثّق بدل ما يكلم الـ API.

    الطلبات الحقيقية بتستخدم رقمك وباقتك الحقيقيين: ممكن تبعت رسايل واتساب وتصرف من رصيدك وتمسح بيانات. (بيغيّر إعدادات)

    متخزن في ذاكرة التبويب ده بس: عمره ما بيتحفظ ولا بيتحط في الرابط، وبيتبعت لـ mursilat.com بس. لو عملت reload بيتنسي.

    بارامترات المسار

    تبعت الطلب ده بجد؟

    ده بيغيّر إعدادات حسابك.

    PATCH /v2/numbers/{numberId}/auto-replies/{ruleId}