К содержанию

Доставка ответов обратной связи ​

В редакторе кампании на шаге «Содержание» включите «Отправлять данные во внешнюю систему» и заполните «Адрес для отправки ответов». Нужен публичный 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 уже сохранил его.