Перейти к основному содержанию
Триггеры вебхуков позволяют внешним сервисам запускать ваши рабочие процессы, отправляя данные на уникальный URL. Используйте их для подключения форм, сторонних приложений и пользовательских интеграций.

Когда использовать вебхуки

Сценарий использованияПример
Веб-формыОтправки формы обратной связи создают лиды
Сторонние приложенияПлатеж в Stripe → создать запись клиента
Пользовательские интеграцииВаше приложение → автоматизация Twenty
Инструменты без кодаПодключения Zapier, Make, n8n

Пошаговая настройка

Шаг 1: Создайте рабочий процесс

  1. Перейдите в Настройки → Рабочие процессы
  2. Нажмите + Новый рабочий процесс
  3. Дайте ему имя (например, “Отправка формы на сайте”)

Шаг 2: Настройте триггер вебхука

  1. Нажмите на блок триггера
  2. Выберите Вебхук
  3. Вы получите уникальный URL вебхука, например:
    https://api.twenty.com/webhooks/workflow/abc123...
    
  4. Скопируйте этот URL — он понадобится вашему внешнему сервису

Шаг 3: Определите ожидаемую структуру данных

Для POST-запросов определите ожидаемую структуру тела:
  1. Нажмите Определить ожидаемое тело
  2. Введите пример JSON, который ваш сервис будет отправлять:
{
  "firstName": "John",
  "lastName": "Doe",
  "email": "[email protected]",
  "company": "Acme Inc",
  "message": "Interested in your product"
}
  1. Нажмите Сохранить — это создаст переменные, которые можно использовать на следующих шагах

Шаг 4: Добавьте действия

Теперь добавьте действия, которые используют данные вебхука: Пример: Создать запись Person
  1. Добавьте действие Создать запись
  2. Выберите объект People
  3. Сопоставьте поля:
ПолеЗначение
Имя{{trigger.body.firstName}}
Фамилия{{trigger.body.lastName}}
Электронная почта{{trigger.body.email}}
КомпанияНайдите или создайте на основе {{trigger.body.company}}

Шаг 5: Протестируйте вебхук

Перед активацией протестируйте вебхук: С помощью cURL:
curl -X POST https://api.twenty.com/webhooks/workflow/abc123... \
  -H "Content-Type: application/json" \
  -d '{"firstName":"Test","lastName":"User","email":"[email protected]"}'
С помощью Postman или аналогов:
  1. Создайте POST-запрос на URL вашего вебхука
  2. Установите заголовок Content-Type в application/json
  3. Добавьте тестовое тело JSON
  4. Отправьте и проверьте запуски рабочего процесса

Шаг 6: Активируйте

После тестирования нажмите Активировать, чтобы сделать рабочий процесс активным.

Обработка разных структур данных

Вложенные данные

Если ваш вебхук отправляет вложенные данные:
{
  "contact": {
    "name": "John Doe",
    "email": "[email protected]"
  },
  "source": "website"
}
Обращайтесь так: {{trigger.body.contact.email}}

Массивы

Если данные включают массивы:
{
  "items": [
    {"name": "Product A", "qty": 2},
    {"name": "Product B", "qty": 1}
  ]
}
То, как обрабатывать массивы, зависит от сценария использования: Неизвестное количество элементов → Используйте Iterator Если нужно обработать каждый элемент массива (например, создать запись для каждого), добавьте действие Code для разбора массива, затем используйте Iterator:
export const main = async (params: { items: any }) => {
  const items = typeof params.items === "string"
    ? JSON.parse(params.items)
    : params.items;
  return { items };
};
Затем используйте Iterator для перебора: {{code.items}} Известные/конкретные поля → Извлеките в именованные поля Если массив содержит конкретные поля, к которым нужно обращаться по отдельности (например, ответы формы, где позиция 0 — всегда “имя”, позиция 1 — всегда “фамилия”), добавьте действие Code для их извлечения:
export const main = async (params: { items: any }) => {
  const items = typeof params.items === "string"
    ? JSON.parse(params.items)
    : params.items;

  return {
    product: {
      name: items[0]?.name || "",
      qty: items[0]?.qty || 0
    }
  };
};
Теперь вы можете выбирать product.name и product.qty по отдельности на следующих шагах.
Для получения подробностей об обработке массивов см. Обработка массивов в действиях Code.

Связанные материалы