--- name: webask-webhook-setup description: "Настраивает отправку ответов опроса WebAsk на внешний адрес вебхуком: адрес, метод, состав полей и их имена, заголовки, отправка незавершённых. Применяется, когда человек просит слать ответы на свой сервер, в свою систему, в Make или n8n, поменять поля вебхука или включить и выключить его." --- # Вебхук: ответы на свой адрес Вебхук — самый прямой способ забрать ответы в свою систему: каждый ответ уходит HTTP-запросом на указанный адрес. Настраивается быстро, ломается тихо — поэтому порядок здесь важнее скорости. Отвечай человеку на том языке, на котором он пишет. ## 1. Проверить, доступны ли вебхуки `get_workspace_tariff` — вебхуки входят не во все тарифы. Если недоступны, сказать об этом сразу и остановиться: собирать адрес, метод, состав полей и заголовки, чтобы упереться в отказ на последнем шаге, — впустую потраченный разговор. ## 2. Посмотреть, что уже есть `get_quiz_webhooks` — список вебхуков опроса и включён ли каждый. Второй вебхук на тот же адрес — почти всегда ошибка, а не желание: проверить, нет ли уже такого. ## 3. Узнать четыре вещи Без них создавать нечего: | Что | Зачем | |---|---| | **Адрес** | куда слать; только `https`, принимающая сторона должна отвечать 2xx | | **Метод** | `post` почти всегда; `get`, `put`, `patch` — если так требует приёмник | | **Какие поля** | телефон и два-три ключевых ответа лучше полной анкеты — приёмнику проще | | **Как называть поля** | если система ждёт `phone`, а у нас вопрос называется «Ваш телефон», — переименовать через `body_naming` | Имена вопросов и их идентификаторы — из `get_quiz_structure`. ## 4. Создать `create_quiz_webhook`: название (для себя, чтобы отличать), адрес, метод, состав полей (`body`), переименование (`body_naming`), заголовки (`headers` — сюда идут ключи доступа к приёмнику). **Незавершённые прохождения** — `incomplete` и `hours`. По умолчанию уходят только завершённые. Если человеку нужны и брошенные, слать их с задержкой (1, 6, 12 или 24 часа): иначе один и тот же человек, вернувшийся дописать анкету, придёт дважды. ## 5. Проверить доставку Сразу после создания — `get_quiz_webhook_logs`: там код ответа приёмника и его тело. `200` — работает. `4xx` — приёмник не принял: чаще всего адрес, метод или формат тела. `5xx` — ошибка на их стороне. Пустой журнал — ответов ещё не было, это не ошибка. Не досылать записи `resend_quiz_webhook_log`, пока приёмник отвечает ошибкой: повторится то же самое. ## Изменить, выключить, удалить - Поправить адрес или поля — `update_quiz_webhook`. **Правка перезаписывает вебхук целиком**, включая заголовки: значения заголовков в ответах скрыты звёздочками, поэтому перед правкой спросить их у человека заново, а не переписать пустыми. - Выключить на время правок на своей стороне — `toggle_quiz_webhook`, а не удалять. - Удалить — `delete_quiz_webhook`, только по прямой просьбе: настройки не вернуть. ## Чего не делать - **Не создавать второй вебхук на тот же адрес**, не спросив. - **Не слать все вопросы подряд**, если их много, — приёмнику нужны нужные поля. - **Не просить человека продиктовать ключи доступа в чат** — попросить вписать в заголовки в кабинете либо вставить самому только то, что он сам прислал. - **Не включать вебхук, который выключили намеренно.** - **Не предлагать смену тарифа и не вести на оплату.** Если упёрлись в лимит — назвать факт и остановиться.