Перейти к основному содержанию

Documentation Index

Fetch the complete documentation index at: https://docs.twenty.com/llms.txt

Use this file to discover all available pages before exploring further.

Триггеры вебхуков позволяют внешним сервисам запускать ваши рабочие процессы, отправляя данные на уникальный 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": "john@example.com",
  "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":"test@example.com"}'
С помощью Postman или аналогов:
  1. Создайте POST-запрос на URL вашего вебхука
  2. Установите заголовок Content-Type в application/json
  3. Добавьте тестовое тело JSON
  4. Отправьте и проверьте запуски рабочего процесса

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

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

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

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

Если ваш вебхук отправляет вложенные данные:
{
  "contact": {
    "name": "John Doe",
    "email": "john@example.com"
  },
  "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.

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