Перейти к содержанию

Рекомендации по обработке опросов через входящие уведомления#

События обновления опроса формируются в уведомлении типа pollUpdateMessage.

Это уведомление возвращает действия с опросом в разрезе одного пользователя.
Для получения общей картины состояния опроса необходимо собрать данные со всех вебхуков.

Примеры вебхуков при обновлении опросов:#

Выбор одного варианта ответа (аккаунт 1):#

{
  "typeWebhook": "incomingMessageReceived",
  "instanceData": {
    "idInstance": 1234567890,
    "wid": "71234567890@c.us",
    "typeInstance": "whatsapp"
  },
  "timestamp": 1756439417,
  "idMessage": "3A93672A6E64A1669387",
  "senderData": {
    "chatId": "120363403814479258@g.us",
    "chatName": "name",
    "sender": "79876543210@c.us",
    "senderName": "name",
    "senderContactName": ""
  },
  "messageData": {
    "typeMessage": "pollUpdateMessage",
    "pollMessageData": {
      "stanzaId": "BAE59896B404EB11",
      "name": "bebebe",
      "votes": [
        {
          "optionName": "bebe!",
          "optionVoters": [
            "79876543210@c.us"
          ]
        },
        {
          "optionName": "bebe?",
          "optionVoters": []
        },
        {
          "optionName": "bebe.",
          "optionVoters": []
        }
      ],
      "multipleAnswers": false
    }
  }
}

Выбор одного варианта ответа (аккаунт 2):#

{
  "typeWebhook": "incomingMessageReceived",
  "instanceData": {
    "idInstance": 1234567890,
    "wid": "71234567890@c.us",
    "typeInstance": "whatsapp"
  },
  "timestamp": 1756439432,
  "idMessage": "74FFFB71C24FD2A6BC9B11DE7B23806C",
  "senderData": {
    "chatId": "120363403814479258@g.us",
    "chatName": "name",
    "sender": "79998765432@c.us",
    "senderName": "name",
    "senderContactName": ""
  },
  "messageData": {
    "typeMessage": "pollUpdateMessage",
    "pollMessageData": {
      "stanzaId": "BAE59896B404EB11",
      "name": "bebebe",
      "votes": [
        {
          "optionName": "bebe!",
          "optionVoters": []
        },
        {
          "optionName": "bebe?",
          "optionVoters": [
            "79998765432@c.us"
          ]
        },
        {
          "optionName": "bebe.",
          "optionVoters": []
        }
      ],
      "multipleAnswers": false
    }
  }
}

Отмена выбора варианта ответа (аккаунт 2):#

{
  "typeWebhook": "incomingMessageReceived",
  "instanceData": {
    "idInstance": 1234567890,
    "wid": "71234567890@c.us",
    "typeInstance": "whatsapp"
  },
  "timestamp": 1756439831,
  "idMessage": "60D0A3349B03DCDAD6899B8D2D305CBB",
  "senderData": {
    "chatId": "120363403814479258@g.us",
    "chatName": "name",
    "sender": "79998765432@c.us",
    "senderName": "name",
    "senderContactName": ""
  },
  "messageData": {
    "typeMessage": "pollUpdateMessage",
    "pollMessageData": {
      "stanzaId": "BAE59896B404EB11",
      "name": "bebebe",
      "votes": [
        {
          "optionName": "bebe!",
          "optionVoters": []
        },
        {
          "optionName": "bebe?",
          "optionVoters": []
        },
        {
          "optionName": "bebe.",
          "optionVoters": []
        }
      ],
      "multipleAnswers": false
    }
  }
}

Выбор одного варианта ответа (аккаунт 3):#

{
  "typeWebhook": "incomingMessageReceived",
  "instanceData": {
    "idInstance": 1234567890,
    "wid": "71234567890@c.us",
    "typeInstance": "whatsapp"
  },
  "timestamp": 1756439716,
  "idMessage": "3F7F71A4165ACE0EA60A",
  "senderData": {
    "chatId": "120363403814479258@g.us",
    "chatName": "name",
    "sender": "77123456789@c.us",
    "senderName": "name",
    "senderContactName": ""
  },
  "messageData": {
    "typeMessage": "pollUpdateMessage",
    "pollMessageData": {
      "stanzaId": "BAE59896B404EB11",
      "name": "bebebe",
      "votes": [
        {
          "optionName": "bebe!",
          "optionVoters": []
        },
        {
          "optionName": "bebe?",
          "optionVoters": []
        },
        {
          "optionName": "bebe.",
          "optionVoters": [
            "77123456789@c.us"
          ]
        }
      ],
      "multipleAnswers": false
    }
  }
}

Пример результата обработки уведомлений:#

После сбора данных из всех уведомлений варианты опроса должны выглядеть следующим образом:

"votes": [
  {
    "optionName": "bebe!",
    "optionVoters": [
      "79876543210@c.us"
    ]
  },
  {
    "optionName": "bebe?",
    "optionVoters": []
  },
  {
    "optionName": "bebe.",
    "optionVoters": [
      "77123456789@c.us"
   ]
  }
]