Доставка ответов обратной связи
В редакторе кампании на шаге «Содержание» включите «Отправлять данные во внешнюю систему» и заполните «Адрес для отправки ответов». Нужен публичный HTTPS-адрес вашего получателя. Flowtomate сначала сохраняет ответ формы, затем делает один JSON POST. Ошибка внешней доставки не отменяет сохранённый ответ.
Запрос содержит три заголовка:
text
Content-Type: application/json
Idempotency-Key: <requestId>
X-Flowtomate-Event: feedback.response.createdТело первого запроса имеет такой состав; значения в примере вымышленные:
json
{
"event": "feedback.response.created",
"responseId": "response_123",
"requestId": "request_123",
"projectId": "project_123",
"widgetId": "widget_123",
"widgetKey": "nps",
"widgetName": "Оценка продукта",
"widgetRevision": 1,
"responseKind": "rating",
"primaryScore": 5,
"message": "",
"contactEmail": "",
"answers": [
{
"fieldId": "rating_1",
"type": "rating",
"question": "Как вы оцениваете продукт?",
"value": 5
}
],
"context": {},
"visitorId": "visitor_123",
"userId": null,
"submittedAt": "2026-08-23T12:00:00.000Z"
}Idempotency-Key равен requestId. responseKind принимает rating, text или survey. primaryScore и userId могут быть null; message и contactEmail всегда строки, в том числе пустые. answers содержит от 1 до 20 ответов вида { fieldId, type, question, value, optionSnapshots? }. Тип поля может быть rating, text, textarea, email, phone, date или choice. Для rating значение равно целому числу от 0 до 10 либо null. Для choice значение бывает пустой строкой, ID варианта или массивом до 50 разных ID; optionSnapshots содержит ID и подписи выбранных вариантов. Остальные значения — строки: text до 500 знаков, textarea до 4 000, email до 254, phone до 64, date в формате YYYY-MM-DD или пустая. Состав context зависит от формы и страницы.
Ответы могут содержать персональные данные. Проверяйте метод, размер и схему входящего JSON; сохраняйте requestId с уникальным ограничением, чтобы не обработать тот же ответ дважды. Не пишите в журнал текст ответа, email, внешний ID пользователя, answers или context.
Что означает доставка
Flowtomate не подписывает запрос и не добавляет общий секрет. Один лишь заголовок Idempotency-Key не доказывает происхождение запроса. Используйте HTTPS и ограничьте доступ к получателю своими средствами; не кладите секрет в query-параметр endpoint.
Flowtomate ждёт ответ до пяти секунд, считает успешным любой статус 2xx и не повторяет неудачный запрос. Долгая или неудачная попытка оставляет ответ в кабинете, но не доставляет его в вашу систему. Не используйте endpoint как единственное хранилище ответа или канал для платежей и необратимых команд.
Для проверки отправьте тестовую форму. Найдите ответ в кабинете, затем в DevTools → Network посмотрите ответ на её отправку: при первой попытке поле externalDelivery принимает delivered, failed или disabled. Оно сообщает итог этой попытки, но не служит постоянным журналом. Сверьте requestId и responseId с записью у своего получателя. При повторной отправке того же запроса ответ может не содержать externalDelivery, поскольку Flowtomate уже сохранил его.