---
name: webask-integration-triage
description: Находит причину, по которой ответы на опрос WebAsk не доходят до
  внешней системы, и устраняет её. Применяется, когда человек сообщает, что заявки
  не приходят в CRM, уведомления не появляются в Telegram или MAX, строки не
  добавляются в Google Таблицу либо не срабатывает вебхук.
---

# Почему ответы не уходят из опроса

У молчащей интеграции четыре разные причины, и лечатся они по-разному. Идти строго
по порядку: каждый следующий шаг дороже предыдущего.

Отвечай человеку на том языке, на котором он пишет.

## 1. Узнать номер опроса

Без него дальше идти некуда. Если опрос назвали словами — найти через
`get_quiz_list` и подтвердить, тот ли это опрос, прежде чем что-то менять.

## 2. Прочитать состояние: `get_quiz_integrations`

Возвращает все интеграции опроса, у каждой поле с готовой причиной. Это покрывает
большинство обращений и не стоит ничего.

| Причина | Что значит | Что делать |
|---|---|---|
| `blocked_by_tariff` | интеграция не входит в тариф | сказать прямо и остановиться, см. запрет ниже |
| `not_connected` | подключения нет вовсе | подключение делается только в кабинете: дать шаги, не пытаться сделать самому |
| `disabled` | подключено, но отправка выключена | спросить, выключали ли намеренно; включить только с согласия |
| пусто | со стороны настроек всё исправно | идти к шагу 3 |

Вебхуков в этом ответе нет — у них своя настройка, см. шаг 5.

## 3. Найти отказ

Дальше поведение зависит от системы: журнал есть не у всех.

**Telegram и MAX** — `get_integration_logs`. В записях текст отказа от мессенджера:
бота выгнали из группы, чат удалён, тема закрыта, токен отозван. Поле с числом
неотправленных показывает, сколько ждёт повтора.

**Битрикс24** — своего журнала нет, вместо него `manage_quiz_crm` с
действием `check`. Он обращается к порталу и отвечает, жив ли доступ. Токен
отзывают на стороне CRM, и со стороны опроса это выглядит как исправная интеграция —
поэтому шаг обязателен, даже если на шаге 2 всё было чисто.

**Google Таблицы** — `manage_quiz_google_sheets` с действием `show`. Самая частая
причина молчания одна: отозван доступ к аккаунту Google.

## 4. Досылать только после устранения причины

`resend_integration_logs` для мессенджеров: одной записью или всеми неудачными за
период.

Досылка при живой причине бессмысленна — повторится тот же отказ, а в журнале
станет вдвое больше мусора. Сначала человек чинит на своей стороне: возвращает бота
в группу, перевыпускает токен, восстанавливает доступ к таблице.

## 5. Вебхуки — отдельно

`get_quiz_webhooks` — список и включён ли каждый. `get_quiz_webhook_logs` — журнал
доставки с кодом ответа принимающей стороны. `resend_quiz_webhook_log` — досылка.

Значения заголовков в ответах подменены звёздочками: там ключи доступа к чужой
системе. Не просить человека продиктовать их и не предлагать перезаписать заголовок
«чтобы проверить» — правка вебхука перезаписывает его целиком.

## Чего не делать

- **Не предлагать смену тарифа и не вести на оплату.** При запрете по тарифу
  назвать причину и остановиться.
- **Не включать отправку самостоятельно** — выключенная интеграция часто выключена
  намеренно, на время правок.
- **Не досылать «на всякий случай»** — см. шаг 4.

## Что сказать в конце

Три вещи: какая интеграция молчит, по какой именно причине и что нужно сделать
человеку. Если причина устранена и досылка прошла — сколько отправок ушло.