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

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

    English
    في الصفحة دي

    الأزرار التفاعلية والبديل بالأرقام

    أزرار الرد وقوائم الاختيار وأزرار الروابط من رقم مربوط — وليه كل عميل يقدر يرد حتى لو الأزرار ما ظهرتش.

    POST /v2/messages بيبعت تلات أنواع تفاعلية: buttons (لحد 3 أزرار رد) و list (قائمة لحد 10 اختيارات) و cta_url (زرار رابط واحد).

    type: buttons
    {
      "numberId": "cm1abcd2345efgh6789ijkl",
      "to": "201001234567",
      "type": "buttons",
      "body": {
        "text": "طلبك رقم 1042 جاهز. نأكد التوصيل النهارده؟"
      },
      "footer": {
        "text": "متجر مرسلات"
      },
      "buttons": [
        {
          "id": "confirm",
          "title": "تأكيد"
        },
        {
          "id": "cancel_order",
          "title": "إلغاء"
        }
      ],
      "reference": "order-1042"
    }
    الحقلالحدود
    body.textالحدود1–1024 (إجباري)
    header.text / footer.textالحدود≤ 60
    buttons[]الحدود1–3 · id ≤ 64 (A-Z a-z 0-9 _ . : -، مش متكرر) · title ≤ 20 (مش متكرر)
    list.buttonTextالحدود≤ 20
    list.sections[]الحدود1–10 أقسام، title ≤ 24 · الصفوف: 1–10 إجمالي، id ≤ 64، title ≤ 24، description ≤ 72
    cta.title / cta.urlالحدود≤ 20 · رابط https:// عام
    expiresInMinutesالحدود5–10080 (الافتراضي 1440): الردود بتتطابق لحد إمتى

    البديل بالأرقام

    واتساب بيعرض الرسايل التفاعلية من الأجهزة المربوطة على أغلب الموبايلات، مش كلها. عشان كده مرسلات بتضيف نسخة مرقّمة من الاختيارات للنص افتراضيًا (fallback: "numbered"). العميل اللي شايف نص عادي بيرد بالرقم أو بالاسم:

    اللي بيشوفه عميل من غير أزرار
    طلبك رقم 1042 جاهز. نأكد التوصيل النهارده؟
    
    1) تأكيد
    2) إلغاء
    
    اكتب رقم اختيارك

    في الحالتين بيوصلك ويب هوك interactive.reply واحد. reply.source بيقولك إزاي: button / list (داس) أو number / title (كتب). أول رد صحيح بس لكل رسالة؛ ورسالة العميل نفسها بتوصل كمان كـ message.received.

    interactive.reply → data
    {
      "interactionId": "int_8f2c1d9a7b3e4f56a1b2c3d4",
      "messageId": "3EB0A1B2C3D4E5F60718",
      "reference": "order-1042",
      "from": {
        "phone": "201099887766",
        "lid": null,
        "name": "منى"
      },
      "reply": {
        "id": "confirm",
        "title": "تأكيد",
        "index": 1,
        "source": "number"
      },
      "replyMessageId": "3EB0FFEE0011223344",
      "timestamp": "2026-10-10T12:03:00.000Z"
    }

    نصايح

    خلّي أسماء الأزرار قصيرة ومختلفة (بتتطابق لما تتكتب). استخدم reference عشان تربط الرد بالأوردر. في الحملات، GET /v2/campaigns/{id}/recipients?reply=ANY بيعرض مين رد بإيه.