Документация

Гайды по подключению CRM, настройке webhook'ов и защите данных.

Быстрый старт

За 5 минут получите рабочий сценарий «webhook → Google Sheets».

  1. Зарегистрируйтесь — бесплатный тариф 100 задач/мес.
  2. В кабинете «Сценарии» → «Создать сценарий».
  3. На канвасе добавьте узел Webhook (триггер) → узел Google Sheets (действие).
  4. Скопируйте URL вебхука и вставьте его в настройки вашей CRM (раздел «Интеграции» → «Webhook»).
  5. Дождитесь первого события — Autoflow определит поля автоматически и предложит сопоставить их с колонками таблицы.
  6. Включите сценарий тумблером «Активен».

Интеграции CRM — скоро

Прямые интеграции с CRM (AmoCRM, Битрикс24) находятся в разработке. Когда они появятся — здесь будет инструкция по подключению через OAuth и настройке триггеров (новый лид, изменение сделки и т.п.).

Уже сейчас вы можете принимать вебхуки от любой CRM через универсальный Webhook-триггер, а также отправлять данные в любой REST API через действие HTTP. Этого достаточно, чтобы интегрироваться с большинством CRM, у которых есть исходящие вебхуки и REST API.

Подключение Google Sheets

Используем Google Service Account — это бессрочный доступ без OAuth-redirect.

  1. Зайдите в Google Cloud Console.
  2. Создайте проект (или используйте существующий).
  3. Включите API: APIs & Services → Enable APIs → Google Sheets API.
  4. IAM & Admin → Service Accounts → Create. Имя любое.
  5. Откройте созданный аккаунт → Keys → Add Key → JSON. Скачается файл с ключом.
  6. В Autoflow → Подключения → Google Sheets → Добавить:
    • Service Account Email: поле client_email из JSON
    • Private Key: поле private_key из JSON (целиком, включая BEGIN/END строки)
  7. Откройте Google Sheets таблицу → «Поделиться» → дайте email сервисного аккаунта роль Editor.

Ключ хранится в БД зашифрованным AES-256-GCM. После сохранения вы не сможете его увидеть в UI — только удалить и добавить заново.

Подключение Telegram

  1. В Telegram напишите @BotFather.
  2. Команда /newbot → дайте имя боту.
  3. Скопируйте токен (выглядит как 1234567890:AAF...).
  4. В Autoflow: Подключения → Telegram → Добавить, вставьте токен.
  5. В сценарии в действии Telegram укажите chatId (ваш ID или ID канала, можно узнать через @userinfobot).
  6. В шаблоне сообщения используйте {{data.field_name}} для подстановки данных из webhook.

Действие HTTP — вызов любого API

Универсальный блок для интеграции с любым сервисом, у которого есть REST API. Поддерживает GET/POST/PUT/PATCH/DELETE и интерполяцию данных.

Поля действия

  • URL — адрес запроса. Можно подставлять данные: https://api.example.com/orders/{{data.id}}
  • Метод — GET / POST / PUT / PATCH / DELETE
  • Тело (body) — JSON для POST/PUT/PATCH. Поддерживает интерполяцию: { "name": "{{data.name}}", "amount": {{data.amount}} }

Пример: отправка заявки в свой API

  1. Триггер — webhook от формы на сайте (например, поступила заявка с полями name, phone, message).
  2. Действие HTTP запрос:
    • URL: https://my-crm.example.com/api/leads
    • Метод: POST
    • Body: { "client": "{{data.name}}", "phone": "{{data.phone}}", "comment": "{{data.message}}" }

Что возвращает

В следующих шагах сценария доступны: {{data.status}} (HTTP-код, например 200) и {{data.body.X}} (поля JSON-ответа).

Авторизация (Bearer-токены, API-ключи) сейчас передаётся через URL или Body. Headers как отдельное поле — в разработке.

Защита webhook (HMAC-подпись)

По умолчанию webhook принимает любой запрос на свой URL. Если URL утечёт — злоумышленник может отправлять фейковые данные. Решение: HMAC-SHA256 подпись.

  1. Откройте сценарий, в карточке вебхука нажмите «Включить» рядом с «🔒 HMAC-подпись».
  2. Скопируйте секрет (показан один раз — сохраните в надёжном месте).
  3. Передайте секрет отправляющей стороне (CRM, скрипт).
  4. Отправляющая сторона должна добавлять заголовок X-Webhook-Signature: <hmac_sha256(secret, body)> в hex.

Пример на Node.js:

const crypto = require('crypto')
const signature = crypto
  .createHmac('sha256', SECRET)
  .update(JSON.stringify(body))
  .digest('hex')

fetch(WEBHOOK_URL, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-Webhook-Signature': signature
  },
  body: JSON.stringify(body)
})

Пример на Python:

import hmac, hashlib, json, requests

body = json.dumps({"name": "test"}).encode()
signature = hmac.new(SECRET.encode(), body, hashlib.sha256).hexdigest()

requests.post(WEBHOOK_URL,
  data=body,
  headers={
    "Content-Type": "application/json",
    "X-Webhook-Signature": signature
  })

Подстановка данных в шаблоны

В любом текстовом поле действий можно вставлять значения из webhook через двойные фигурные скобки.

Webhook прислал:

{
  "deal": {
    "id": 12345,
    "client": { "name": "Иван Петров", "phone": "+79991234567" }
  },
  "amount": 150000
}

В шаблоне Telegram-сообщения:

Новая сделка #{{data.deal.id}}
Клиент: {{data.deal.client.name}}
Телефон: {{data.deal.client.phone}}
Сумма: {{data.amount}} ₽

Если поле — массив, доступ через индекс: {{data.items[0].name}}.

Лимиты и тарификация

Один успешный запуск шага = 1 задача. Если в сценарии 3 действия — 1 webhook расходует 3 задачи. Failed-шаги не списываются.

  • При исчерпании лимита сценарии перестают выполняться до начала следующего месяца или перехода на тариф выше.
  • Лимит обновляется 1-го числа каждого месяца автоматически.
  • Текущий расход видно в «Биллинг».
  • Цены: /pricing.

Поддержка

  • Email: info@tserta.com
  • Время ответа: до 24 часов в рабочие дни (Free), приоритетная — на платных тарифах.
  • Запросы по 152-ФЗ (экспорт/удаление данных) обрабатываются в течение 30 дней.