API аркылуу үлгүсүз меню жана баскычтар

    5 мүн окуу
    ·
    8 көрүү
    ·
    Жаңыртылды: 10/03/2026

    Үлгүсүз меню жана жооп баскычтары

    POST /v1/messages/send аркылуу кардарга интерактивдүү билдирүү жөнөтсө болот: тизме-меню же жооп баскычтары. Бул үчүн үлгү да, Meta жактыруусу да керек эмес. Чат-боттор үчүн ыңгайлуу: кардар «Старт» деп жазат, ботуңуз жооп катары менюну көрсөтөт.

    Эки түрү

    typeКардар эмнени көрөтВарианттар
    listБилдирүүнүн астында бир баскыч, мисалы «Менюну ачуу». Басканда тизме ачылат, кардар бир пунктту тандайт10го чейин
    buttonsБаскычтар билдирүүнүн текстинин так астында3кө чейин

    Кардарда кандай көрүнөт

    Менюсу бар билдирүү: аталыш, текст, кол тамга жана «Менюну ачуу» баскычы.

    Аталышы, тексти жана менюну ачуу баскычы бар WhatsApp билдирүүсү

    Басканда пункттардын тизмеси ачылат. Сол жакта телефон, оң жакта компьютердеги WhatsApp.

    Телефондогу ачык WhatsApp менюсу, алты пункт Компьютердеги ачык WhatsApp менюсу, алты пункт

    Кардар пунктту басат, анын тандоосу пункттун id менен вебхугуңузга келет.

    Качан жөнөтсө болот

    • WhatsApp Business API линияларында гана (whatsapp_waba). Башка линиялар үчүн API 400 катасын кайтарат.
    • Кардардын акыркы билдирүүсүнөн кийин 24 саат ичинде гана. Бул WhatsApp эрежеси: терезеден тышкары үлгү гана жөнөтсө болот. Терезе жабылса, WhatsApp билдирүүнү кабыл албайт, ал эми статус вебхугуна ката келет.
    • Тизме-менюну үлгүгө жана жалпы жөнөтүүгө кошууга болбойт, бул да WhatsApp эрежеси. Үлгүдө 10го чейин тез жооп баскычын жасаса болот: кабинеттеги «Үлгүлөр» бөлүмү.

    URL

    POST https://api.wazzabee.com/api-gateway/v1/messages/send

    Аталыштар

    Authorization: Bearer СИЗДИН_API_АЧКЫЧЫҢЫЗ
    Content-Type: application/json

    interactive талаасынын параметрлери

    ПараметрТүрүМилдеттүүСүрөттөмө
    typestring✅list же buttons
    bodystring✅Билдирүүнүн тексти: менюда 4096 белгиге чейин, баскычтарда 1024кө чейин
    headerstringЖокТексттин үстүндөгү аталыш, 60 белгиге чейин
    footerstringЖокТексттин астындагы майда жазуу, 60 белгиге чейин
    buttonstringlist үчүн ✅Менюну ачкан баскычтын жазуусу, 20 белгиге чейин
    rowsarraylist үчүн ✅*Меню пункттары: id 200 белгиге чейин, title 24кө чейин, description 72ге чейин (милдеттүү эмес). Баары 10 пунктка чейин
    sectionsarraylist үчүн ✅*Бөлүмдөргө бөлүнгөн пункттар: { "title": "...", "rows": [...] }. 10 бөлүмгө чейин, аталышы 24 белгиге чейин, бөлүм бирден көп болсо милдеттүү. Баары 10 пунктка чейин
    buttonsarraybuttons үчүн ✅1ден 3кө чейин баскыч: id 256 белгиге чейин, title 20га чейин

    * Меню үчүн rows же sections жөнөтүңүз.

    interactive талаасын text, mediaUrl жана templateName менен бирге жөнөтүүгө болбойт: билдирүүнүн тексти interactive.body ичине жазылат. Пункттардын жана баскычтардын id, ошондой эле баскычтардын жазуулары кайталанбашы керек. Суроонун башка талаалары (channelId, chatId, campaignId, senderName, automated) кадимкидей иштейт, караңыз: Билдирүүлөрдү жөнөтүү.

    Мисал: алты пункттан турган меню

    curl -X POST "https://api.wazzabee.com/api-gateway/v1/messages/send" \
      -H "Authorization: Bearer СИЗДИН_API_АЧКЫЧЫҢЫЗ" \
      -H "Content-Type: application/json" \
      -d '{
        "channelId": "линияңыздын-uuid",
        "chatId": "996555123456",
        "interactive": {
          "type": "list",
          "header": "Башкы меню",
          "body": "Саламатсызбы! Сизди эмне кызыктырарын тандаңыз",
          "footer": "9:00дөн 19:00гө чейин иштейбиз",
          "button": "Менюну ачуу",
          "rows": [
            { "id": "prices", "title": "Баалар", "description": "Тарифтер жана баасы" },
            { "id": "catalog", "title": "Каталог" },
            { "id": "delivery", "title": "Жеткирүү жана төлөм" },
            { "id": "order_status", "title": "Заказдын абалы" },
            { "id": "address", "title": "Дарек жана график" },
            { "id": "manager", "title": "Менеджер менен байланыш" }
          ]
        }
      }'

    Мисал: бөлүмдөрү бар меню

    "interactive": {
      "type": "list",
      "body": "Кызматты тандаңыз",
      "button": "Кызматтар",
      "sections": [
        { "title": "Чач кырктыруу", "rows": [
          { "id": "cut_men", "title": "Эркектерге" },
          { "id": "cut_women", "title": "Аялдарга" }
        ]},
        { "title": "Боёо", "rows": [
          { "id": "color_full", "title": "Толук боёо" }
        ]}
      ]
    }

    Мисал: жооп баскычтары

    "interactive": {
      "type": "buttons",
      "body": "Эртең саат 10:00гө жазылууну ырастайсызбы?",
      "buttons": [
        { "id": "confirm", "title": "Ооба, барам" },
        { "id": "reschedule", "title": "Которуу" },
        { "id": "cancel", "title": "Жокко чыгаруу" }
      ]
    }

    Жооп (202)

    {
      "success": true,
      "queued": true,
      "queueId": "uuid",
      "campaignId": null,
      "message": "Сообщение поставлено в очередь на отправку"
    }

    Каталар (400)

    Чектөөлөр жөнөтүүгө чейин дароо текшерилет. Бир нерсе туура эмес болсо, API 400 кайтарып, кайсы талааны оңдоо керектигин жазат. Ката тексттери орус тилинде, мисалы:

    { "error": "В меню не больше 10 пунктов всего, сейчас 11" }
    { "error": "interactive.rows[2].title: не длиннее 24 символов" }
    { "error": "interactive доступен только для линий WhatsApp Business API (whatsapp_waba)" }

    Кардар эмнени тандаганын кантип билүүгө болот

    messages_button жазылуусун күйгүзүңүз (караңыз: Webhooks). Кардар меню пунктун тандаганда же баскычты басканда окуя келет:

    {
      "buttons": [{
        "messageId": "uuid",
        "channelId": "uuid",
        "chatId": "996555123456",
        "contactId": "uuid",
        "conversationId": "uuid",
        "button": {
          "type": "list_reply",
          "id": "prices",
          "title": "Баалар",
          "description": "Тарифтер жана баасы"
        },
        "replyTo": {
          "messageId": "uuid",
          "queueId": "uuid",
          "campaignId": null,
          "broadcastId": null
        },
        "timestamp": "2026-10-03T12:00:00Z"
      }]
    }

    Меню пункту үчүн button.type маани list_reply, жооп баскычы үчүн button_reply. button.id ичинде сиздин id келет, ал аркылуу бот сценарийин андан ары улантуу оңой. replyTo.queueId кардар кайсы жөнөтүүгө жооп бергенин көрсөтөт.

    Оператор эмнени көрөт

    Кабинеттин чатында билдирүү текст жана анын астындагы меню пункттары же баскычтар түрүндө көрсөтүлөт, кардар кандай көрсө, ошондой. Кардардын тандоосу чатка пункттун аталышы менен кадимки кирген билдирүү болуп келет.