Требуется действие: обновите URL вебхука до 5 августа 2026 г.
Ваш URL вебхука меняется сapp.respond.ioнаwebhook.respond.io. Обновите пользовательский канал (включая SMS) до 5 августа 2026 г., иначе входящие сообщения перестанут доставляться.
Как обновить
1. В respond.io перейдите в Настройки канала > Конфигурация и скопируйте новый URL вебхука.
2. Вставьте его в поле Callback URL на Информационной панели Meta App.
Нужна помощь? Свяжитесь со службой поддержки.
Эта интеграция позволяет вашей команде общаться с клиентами по любому каналу обмена сообщениями с помощью индивидуальной реализации.
Подключение пользовательского канала
Шаг 1: Перейти к Настройки > Каналы
Шаг 2: Нажмите Добавить канал > Пользовательский канал > Подключиться

Шаг 3: Введите целевой URL-адрес Webhook, на который будут отправляться исходящие сообщения.
Шаг 4: Выберите тип идентификатора для канала > нажмите Далее
Типы идентификаторов используются для идентификации пользователя и связи с вашим пользовательским сервером интеграции.
Доступны два типа идентификаторов:
Номер телефона: Используйте этот вариант, если поставщик услуг обмена сообщениями распознает контакты по номеру телефона.
Пример формата:
+60177872890
Пользовательский идентификатор: используйте этот вариант, если поставщик услуг обмена сообщениями распознает контакты на основе пользовательского идентификатора.
Максимальная длина — 50 символов.
A-Z,a-z,0-9,_,=,+,/и@разрешены.

Шаг 5: В следующем диалоговом окне будут указаны ID канала, Токен API и URL вебхука, например.
Идентификатор канала:
gfd8g7fd89dgfdТокен API:
aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasdURL вебхука:
https://webhook.respond.io/custom/channel/webhook/Использование идентификатора номера телефона позволяет вам начать разговор и отправить первое сообщение контакту.

Передача сообщений на response.io
URL вебхука используется для отправки сообщений, эхо-сообщений и квитанций сообщений на платформу respond.io.
Предоставленный код активирует веб-хук на response.io, при необходимости создавая контакт и сохраняя сообщение под этим контактом.
Образец для сообщений
curl -X POST \\
https://webhook.respond.io/custom/channel/webhook/ \\
-H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'cache-control: no-cache' \\
-H 'content-type: application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": \[
{
"type": "message",
"mId": "xcvzzxcxczxczxc",
"timestamp": 2132131321000,
"message": {
"type": "text",
"text": "Привет, мир"
}
}
\],
"contact": {
"firstName": "Джон",
"lastName": "Доу",
"profilePic": "<https://static.independent.co.uk/s3fs-public/thumbnails/image/2015/07/08/14/pic.jpg>",
"countryCode": "MY",
"email": "john@respond.io",
"phone": "+60177872890",
"language": "en"
}
}'Образец для сообщений Echo
curl -X POST \\
https://webhook.respond.io/custom/channel/webhook/ \\
-H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'cache-control: no-cache' \\
-H 'content-type: application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": \[
{
"type": "message\_echo",
"mId": "xcvzzxcxczxczxc",
"timestamp": 2132131321000,
"message": {
"type": "text",
"text": "Привет, мир"
}
}
\],
"contact": {
"firstName": "Джон",
"lastName": "Доу",
"profilePic": "<https://static.independent.co.uk/s3fs-public/thumbnails/image/2015/07/08/14/pic.jpg>",
"countryCode": "MY",
"email": "john@respond.io",
"phone": "+60177872890",
"language": "en"
}
}'Образец квитанций об отправке сообщений
curl -X POST \\
https://webhook.respond.io/custom/channel/webhook/ \\
-H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'cache-control: no-cache' \\
-H 'content-type: application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": \[
{
"type": "message\_status",
"mId": "xcvzzxcxczxczxc",
"timestamp": 2132131321000,
"status": {
"value": "sent|delivered|read|failed",
"message": "Ошибка: отправка не удалась из-за недопустимого токена"
}
}
\]
}'Поле | Описание | Проверка |
|---|---|---|
идентификатор канала | Уникальный идентификатор канала | Необходимый. Уникальное поле. Генерируется response.io. |
Идентификатор контакта | Уникальный идентификатор контакта | Необходимый. Уникальный идентификатор контакта response.io. Макс. 50 символов. |
события.тип | Тип события | Необходимый. Доступные типы: message, message_echo и message_status. |
события.mld | Идентификатор сообщения | Необходимый. Уникальный идентификатор сообщения. Макс. 50 символов. |
события.метка времени | UNIX Epoch Time (миллисекунды) | Необходимый. Время события, вызвавшего обратный вызов. |
события.сообщение.тип | Тип сообщения | Необходимый. Доступные типы сообщений: текст, вложение, местоположение и quick_reply. Примеры других типов сообщений см. в разделе «Тип сообщения». |
события.сообщение.текст | Текст сообщения | Необходимый. Максимальная длина 7000 символов. |
события.статус.значение | Текст | Обязательно, если event.type — message_status. Доступные значения статуса: отправлено, доставлено, прочитано и не выполнено. |
события.статус.сообщение | Текст | Требуется, если events.status.value равно failed. |
контакт.имя | Имя | Необязательный. Макс. 50 символов. |
контакт.фамилия | Фамилия | Необязательный. Макс. 50 символов. |
Фото контакта | URL-адрес фотографии профиля | Необязательный. Размер аватара не должен превышать 100 кб. Рекомендуется 720x720. |
контакт.локаль | Код локали | Необязательный. Список значений можно найти здесь. |
contact.countryCode | Код страны | Необязательный. Двухбуквенный код страны — код ISO ALPHA-2. |
Часовой пояс контакта | Часовой пояс | Необязательный. (мин: -24) (макс: 24). |
контакт.электронная почта | Адрес электронной почты | Необязательный. Макс. 50 символов. |
контакт.телефон | Номер телефона | Необязательный. Максимум 18 символов. |
контакт.язык | Язык | Необязательный. ИСО 639-1. |
Ответ - Успешно (статус HTTP → 200)
"ОК"Обработка исходящих сообщений от respond.io
respond.io вызовет конечную точку <API Base URL>/message
Убедитесь, что вы применили код Outgoing Message на маршруте
/messageвашего веб-сервера.
Вот пример cURL для response.io, вызывающего конечную точку:
curl -X POST \\
/message \\
-H 'Authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'Cache-Control: no-cache' \\
-H 'Content-Type: application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"message": {
"type": "text",
"text": "Привет, мир"
}
}' Ответ - Успешно (статус HTTP → 200)
{
"mId": "1640141607842"
}Необходимо выполнить аутентификацию на конечной точке перед отправкой сообщения поставщику услуг обмена сообщениями.
Вот пример Express middleware для этой цели:
const {validationResult} = require('express-validator');
const validateToken = (req, res, next) => {
const apiToken = <>;
const bearerToken = req.headers.authorization;
if (!bearerToken)
return res.send(401);
const token = bearerToken.substring(7, bearerToken.length);
if (apiToken !== token) {
return res.send(401);
}
next();
};
module.exports = {
validateToken
}; Вот пример пользовательского канала, который вы можете протестировать на своем сервере. Ознакомьтесь с нашим проектом на GitHub здесь.
Тип сообщения
Образец текста
{
"тип": "текст",
"текст": "Добро пожаловать в respond.io",
}Поле | Описание | Проверка |
|---|---|---|
тип | Тип сообщения | Необходимый. текст |
текст | Текст сообщения | Необходимый. Максимальная длина 7000 символов. |
Образец для медиа-файла
{
"тип": "вложение",
"вложение": {
"тип": "изображение|видео|аудио|файл",
"url": "https://abc/japan.png",
"mimeType": "image/png",
"fileName":"логотип компании.png",
"описание": "последний логотип компании"
}
}Поле | Описание | Проверка |
|---|---|---|
тип | Тип сообщения | Необходимый. вложение. |
тип.прикрепления | Тип вложения | Необходимый. Доступные типы вложений: изображение, видео, аудио и файл. |
вложение.url | URL | Необходимый. Максимум 2000 символов. Убедитесь, что это общедоступная ссылка, чтобы пользователи или контакты могли видеть ее содержимое. |
вложение.mimeType | Тип MIME вложения | Необязательный |
вложение.имя_файла | Имя файла | Необязательно. Имя файла должно включать расширение. Максимум 256 символов (включая расширение файла). Отправка файла без расширения или с неправильным расширением может привести к тому, что контакт или пользователь не сможет открыть файл. |
вложение.описание | Описание файла | Необязательный. Максимум 256 символов. Применимо только для attach.type = image. |
Убедитесь, что URL-адрес вложения не'принудительно загружен браузером. Заголовок HTTP-ответа's Content-Disposition должен иметь значение по умолчанию, то есть inline.
Образец для местоположения
{
"тип": "местоположение",
"широта": 0.123456,
"долгота": -0.1234,
"адрес": "Sky Suites, Джалан П. Рамли, Куала-Лумпур, 50250 Куала-Лумпур, Wilayah Persekutuan Kuala Lumpur"
}Поле | Описание | Проверка |
|---|---|---|
тип | Тип сообщения | Необходимый. расположение. |
широта | Координаты | Необходимый. Широта (±90°) в допустимых диапазонах. |
долгота | Координаты | Необходимый. Долгота (±180°) в допустимых диапазонах. |
адрес | Адрес местонахождения | Необязательный. Максимум 256 символов. |
Образец для быстрого ответа
{
"тип": "быстрый_ответ",
"заголовок": "Выберите предпочитаемый язык",
"ответы": [
"Малайский",
"Английский"
]
}Поле | Описание | Проверка |
|---|---|---|
тип | Тип сообщения | Необходимый. быстрый_ответ. |
заголовок | Заголовок быстрого ответа | Необходимый. Максимум 256 символов. |
ответы | Текст ответа | Необходимый. Максимум 10 ответов, каждый длиной не более 256 символов. |
Коды ошибок
Ошибка (статус HTTP → 4xx)
Конфигурация канала
Шаг 1: Нажмите Настройки > Каналы
Шаг 2: Найдите пользовательский канал > нажмите Управление

Шаг 3: На странице Пользовательской конфигурации канала вы увидите следующие конфигурации:
Значок канала - Загрузите изображение, которое будет служить значком для вашего пользовательского канала.
Название канала - Название канала можно изменить, оно используется внутри для идентификации канала.
URL-адрес веб-перехватчика для исходящих сообщений — URL-адрес веб-перехватчика для исходящих сообщений на этот канал.
URL-адрес веб-перехватчика для входящих сообщений — URL-адрес веб-перехватчика для входящих сообщений на этот канал.
Тип идентификатора — Они используются для идентификации пользователя и используются для связи с вашим пользовательским сервером интеграции.
Идентификатор канала — Уникальный идентификатор канала для идентификации вашего пользовательского канала.
API-токен — уникальный идентификатор, используемый для аутентификации пользователя для доступа к API.

Шаг 4: Нажмите Сохранить изменения , чтобы обновить конфигурацию пользовательского канала.
Часто задаваемые вопросы и устранение неполадок
Могу ли я подключить чаты с других платформ, используя Пользовательский канал?
Да, вы можете. Вот три шага, которые нужно выполнить:
В respond.io введите URL-адрес вебхука назначения с другой платформы в поле URL вебхука для входящего сообщения.
На другой платформе настройте URL вебхука, указывающий на respond.io, чтобы контакты могли отправлять сообщения обратно вам.
Вам потребуется Сервер пользовательской интеграции, чтобы интерпретировать API как respond.io, так и другой платформы, позволяя обмениваться сообщениями между ними.
Убедитесь, что вы подтвердили с другой платформой, что первые два шага осуществимы.
Часто задаваемые вопросы по вебхукам Пользовательского канала
Почему вебхук возвращает статус 200, даже если сообщение не удалось доставить в respond.io?
При подключении Пользовательского канала сообщения, отправленные в respond.io через вебхуки, всегда будут немедленно возвращать код состояния 200, независимо от того, было ли сообщение успешно передано в respond.io. Это связано с природой вебхуков, которые предназначены для немедленного ответа без проверки успешности доставки сообщения.