Перейти к основному содержанию
Вебхуки отправляют данные в ваши системы в реальном времени при возникновении событий в Twenty — опрос не требуется. Используйте их, чтобы поддерживать синхронизацию с внешними системами, запускать автоматизации или отправлять оповещения.

Создать Webhook

  1. Перейдите в Настройки → API и Вебхуки → Вебхуки
  2. Нажмите + Создать вебхук
  3. Введите URL вашего вебхука (должен быть общедоступным)
  4. Нажмите Сохранить
Вебхук активируется сразу и начинает отправлять уведомления.

Управление вебхуками

Изменить: Нажмите на вебхук → Обновите URL → Сохранить Удалить: Нажмите на вебхук → Удалить → Подтвердить

События

Twenty отправляет вебхуки для следующих типов событий:
СобытиеПример
Запись созданаperson.created, company.created, note.created
Запись обновленаperson.updated, company.updated, opportunity.updated
Запись удаленаperson.deleted, company.deleted
Все типы событий отправляются на URL вашего вебхука. Фильтрация событий может быть добавлена в будущих версиях.

Формат полезной нагрузки

Каждый вебхук отправляет HTTP POST с телом JSON:
{
  "event": "person.created",
  "data": {
    "id": "abc12345",
    "firstName": "Alice",
    "lastName": "Doe",
    "email": "alice@example.com",
    "createdAt": "2025-02-10T15:30:45Z",
    "createdBy": "user_123"
  },
  "timestamp": "2025-02-10T15:30:50Z"
}
ПолеОписание
событиеЧто произошло (например, person.created)
данныеПолная запись, которая была создана/обновлена/удалена
метка времениКогда произошло событие (UTC)
Ответьте со статусом HTTP 2xx (200-299), чтобы подтвердить получение. Ответы вне диапазона 2xx фиксируются как ошибки доставки.

Валидация вебхуков

Twenty подписывает каждый запрос вебхука для обеспечения безопасности. Проверяйте подписи, чтобы убедиться в подлинности запросов.

Заголовки

ЗаголовокОписание
X-Twenty-Webhook-SignatureПодпись HMAC SHA256
X-Twenty-Webhook-TimestampМетка времени запроса

Шаги проверки

  1. Получите метку времени из X-Twenty-Webhook-Timestamp
  2. Создайте строку: {timestamp}:{JSON payload}
  3. Вычислите HMAC SHA256, используя секрет вашего вебхука
  4. Сравните с X-Twenty-Webhook-Signature

Пример (Node.js)

const crypto = require("crypto");

const timestamp = req.headers["x-twenty-webhook-timestamp"];
const payload = JSON.stringify(req.body);
const secret = "your-webhook-secret";

const stringToSign = `${timestamp}:${payload}`;
const expectedSignature = crypto
  .createHmac("sha256", secret)
  .update(stringToSign)
  .digest("hex");

const isValid = expectedSignature === req.headers["x-twenty-webhook-signature"];

Вебхуки vs рабочие процессы

МетодНаправлениеСценарий использования
ВебхукиOUTАвтоматически уведомлять внешние системы о любом изменении записи
Рабочий процесс + HTTP-запросOUTОтправлять данные наружу с настраиваемой логикой (фильтры, преобразования)
Триггер вебхука в рабочем процессеINПолучать данные в Twenty из внешних систем
Для получения внешних данных см. Настройка триггера вебхука.