---
title: "Webhook + AmoCRM + Telegram: обработка опросов"
description: "Ответ из опроса должен мгновенно превращаться в задачу, лида или уведомление. Показываем три рабочих сценария на Webhook без кода."
url: https://askyo.ru/blog/webhook-amocrm-telegram
lang: ru
last_modified: 2026-04-22
---

[Все статьи](https://askyo.ru/blog)

# Webhook + AmoCRM + Telegram: обработка опросов

Ответ из опроса должен мгновенно превращаться в задачу, лида или уведомление. Показываем три рабочих сценария на Webhook без кода.

Команда аскио · 22 апреля 2026 г. · #разработчикам#интеграции#webhook

Опрос без интеграции это файл Excel в почте. Опрос с интеграцией это это автоматизированный процесс: лид в CRM, задача оператору, алёрт в Telegram-канал. Разбираем три рабочих сценария, которые включаются за 10 минут.

## Что такое Webhook в аскио

При каждом сданном ответе аскио отправляет HTTP POST на ваш URL с JSON-ом вида:

```
{
  "surveyId": "nps-feedback-v3",
  "responseId": "r_2k9a8b7c",
  "submittedAt": "2026-04-22T10:30:00Z",
  "answers": {
    "score": 9,
    "comment": "Очень понравилось, особенно граф-редактор",
    "email": "user@example.com"
  },
  "variables": {
    "userId": "user-42",
    "plan": "pro"
  },
  "respondent": {
    "userAgent": "Mozilla/5.0 ...",
    "language": "ru",
    "country": "RU"
  }
}
```

Дальше на ваше усмотрение: передать в CRM, в чат, в свою БД, в n8n / Make / Zapier для дальнейшего ветвления.

## Сценарий 1: NPS-критики автоматически идут в AmoCRM

**Задача:** клиент поставил 0–6 → создаём лида в AmoCRM, тегаем «retention-risk», вешаем задачу менеджеру в течение 2 часов.

**Шаги:**

1. В аскио в редакторе опроса откройте «Интеграции» → добавьте Webhook.
2. URL: `https://your-bridge.example.com/askyo-to-amo`, это ваш эндпоинт. Можно поднять на n8n / make.com или написать AWS Lambda на 30 строк.
3. В аскио поставьте **фильтр**: «отправлять только если answer.score ≤ 6». Это делается в одном клике, без кода.
4. На стороне моста:

```
// Псевдокод, реальная реализация на n8n / Lambda / любом стеке
async function handle(req, res) {
  const { answers, respondent } = req.body;

  // Создаём лида в AmoCRM
  const lead = await amo.leads.create({
    name: `NPS ${answers.score}, риск ухода`,
    custom_fields_values: [
      { field_id: AMO_FIELD_NPS, values: [{ value: answers.score }] },
      { field_id: AMO_FIELD_COMMENT, values: [{ value: answers.comment }] },
      { field_id: AMO_FIELD_EMAIL, values: [{ value: answers.email }] },
    ],
    _embedded: { tags: [{ name: 'retention-risk' }] },
  });

  // Задача менеджеру: связаться в течение 2 часов
  await amo.tasks.create({
    entity_id: lead.id,
    entity_type: 'leads',
    text: `Связаться с критиком NPS (${answers.score}). Комментарий: ${answers.comment}`,
    complete_till: Math.floor(Date.now() / 1000) + 2 * 3600,
  });

  res.status(200).send('ok');
}
```

Готово. Каждый раз, когда критик отправляет ответ, в AmoCRM появляется лид и задача. Менеджер видит её в общем потоке.

## Сценарий 2: важные ответы в Telegram-чат команды

**Задача:** все ответы от платящих клиентов (`plan == 'pro'`) идут сразу в групповой Telegram продакт-команды, чтобы видели в реалтайме.

**Шаги:**

1. В Telegram создайте бота через [@BotFather](https://t.me/BotFather). Получите токен.
2. Добавьте бота в групповой чат, узнайте `chat_id` (через `https://api.telegram.org/bot<TOKEN>/getUpdates` после любого сообщения в чат).
3. В аскио добавьте Webhook с фильтром `variables.plan == 'pro'`.
4. Используйте готовый шаблон «Telegram via Webhook»: вписываете только токен и chat\_id, текст шаблонизируется автоматически:

```
🔔 Pro-клиент ответил на «NPS-feedback»

⭐️ Оценка: {{ answers.score }}/10
💬 Комментарий: {{ answers.comment }}
👤 userId: {{ variables.userId }}
🌐 Страна: {{ respondent.country }}

🔗 Открыть в аскио: https://app.askyo.ru/r/{{ responseId }}
```

Никакого кода, шаблон в визуальном редакторе. За 5 минут.

## Сценарий 3: ответы в Google Sheets для маркетинга

Старая школа, но работает: маркетологи любят видеть данные в табличке.

**Шаги:**

1. В Google Sheets создайте таблицу, добавьте Apps Script:

```
function doPost(e) {
  const sheet = SpreadsheetApp.getActiveSheet();
  const data = JSON.parse(e.postData.contents);
  sheet.appendRow([
    new Date(data.submittedAt),
    data.responseId,
    data.answers.score,
    data.answers.comment,
    data.answers.email,
    data.variables.utmSource ?? '',
  ]);
  return ContentService.createTextOutput('ok');
}
```

2. Deploy → Web app → Anyone can access.
3. Скопируйте URL вебхука.
4. В аскио: Интеграции → Webhook → вставляете URL. Всё.

Каждый ответ это новая строка в Google Sheets. Никаких CSV-выгрузок руками.

## Что делать с failed-доставкой

Webhooks ненадёжны. Сеть, таймауты, ваш сервер упал. аскио:

- Делает **3 retry** с экспоненциальным backoff (5с, 30с, 5 мин).
- Хранит все попытки в журнале с кодом ответа и временем.
- На 4-й неудачной уходит письмо владельцу опроса и ставится пометка ответа как `webhook_failed`.
- При успехе позднее статус сам перепишется.

Для критичных интеграций (платежи, биллинг) лучше использовать **polling через API**: мы такое тоже умеем, но это уже отдельная статья.

## Чек-лист безопасности

Webhook принимает данные с открытого интернета. Защищаемся:

- **HMAC-подпись.** аскио подписывает каждый запрос заголовком `X-Askyo-Signature: sha256=...`. Проверяйте его на стороне моста.
- **Проверяйте подпись, а не IP.** Allow-list по адресам выглядит надёжно, но ломается при каждом переезде инфраструктуры и не спасает, если кто-то окажется в той же подсети. HMAC-подпись выше закрывает ту же задачу лучше. Если внутренние правила всё же требуют фиксированный адрес, напишите на <support@askyo.ru>, выдадим актуальный.
- **Idempotency.** Используйте `responseId` как ключ дедупликации: retry могут привести к двум доставкам, не плодите дубли.
- **Rate limit.** При шторме ответов (тысячи в минуту) ставьте очередь между Webhook и CRM, у AmoCRM есть свой rate limit.

## Когда Webhook не нужен

Если интеграция простая и нужна **раз в день, а не в реалтайме**, используйте экспорт CSV / Google Sheets / API-pull. Webhook оправдан, когда:

- нужна быстрая реакция (минуты),
- ответ ветвится по логике («только критики»),
- есть downstream-сервис с собственной логикой обработки.

Иначе можно обойтись без них и спать спокойно.

---

**Готовый шаблон под n8n** мы выложили в [public GitHub-репозитории](https://github.com/askyo-ru/integrations), форкайте и адаптируйте под свой стек.

## Это уже есть в продукте

- [Виджет для разработчиков](https://askyo.ru/embed)
- [Опрос на сайт](https://askyo.ru/opros-na-sayt)

## Читайте также

- [Виджет опросов в Shadow DOM: почему iframe устарел iframe весит 200+ КБ, ломает поисковую индексацию и плохо адаптируется. Shadow DOM-виджет это современный путь встраивания. Разбираем технически.](https://askyo.ru/blog/widget-na-saite)
- [Экспертная оценка онлайн: жюри, защита проектов, открытые уроки и оценка 360 Кому нужен электронный оценочный лист: школам, детским садам, вузам, колледжам, HR и организаторам конкурсов. 14 сценариев с готовыми критериями и тем, как их собрать.](https://askyo.ru/blog/elektronnoe-zhyuri-i-ekspertnaya-ocenka)
- [AI-генерация опросов: где помогает, где врёт Прописали в промпт «сделай мне опрос про лояльность» и получили 30 однообразных вопросов? Разбираем, где AI реально экономит часы, а где портит данные.](https://askyo.ru/blog/ai-generaciya-oprosov)

Поделиться: [Telegram](https://t.me/share/url?url=https%3A%2F%2Faskyo.ru%2Fblog%2Fwebhook-amocrm-telegram\&text=Webhook%20%2B%20AmoCRM%20%2B%20Telegram%3A%20%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0%20%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2) [X](https://twitter.com/intent/tweet?url=https%3A%2F%2Faskyo.ru%2Fblog%2Fwebhook-amocrm-telegram\&text=Webhook%20%2B%20AmoCRM%20%2B%20Telegram%3A%20%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0%20%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2) [Email](mailto:?subject=Webhook%20%2B%20AmoCRM%20%2B%20Telegram%3A%20%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0%20%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D0%BE%D0%B2\&body=https%3A%2F%2Faskyo.ru%2Fblog%2Fwebhook-amocrm-telegram)
