Files
twenty/packages/twenty-docs/l/ru/developers/extend/capabilities/webhooks.mdx
T
001c2097a3 i18n - docs translations (#18231)
Created by Github action

<!-- mintlify-editor-comments:start -->
Mintlify
---
0 threads from 0 users in Mintlify

- No unresolved comments
<!-- mintlify-editor-comments:end -->

<!-- mintlify-comment-->

<a
href="https://dashboard.mintlify.com/twenty/twenty/editor/i18n-docs?source=pr_comment"
target="_blank" rel="noopener noreferrer"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://d3gk2c5xim1je2.cloudfront.net/assets/open-mintlify-editor-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://d3gk2c5xim1je2.cloudfront.net/assets/open-mintlify-editor-light.svg"><img
src="https://d3gk2c5xim1je2.cloudfront.net/assets/open-mintlify-editor-light.svg"
alt="Open in Mintlify Editor"></picture></a>

<!-- /mintlify-comment -->

Co-authored-by: github-actions <github-actions@twenty.com>
2026-02-25 16:50:28 +01:00

113 lines
5.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Вебхуки
description: Получайте уведомления в реальном времени, когда в вашей CRM происходят события.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Вебхуки отправляют данные в ваши системы в реальном времени при возникновении событий в Twenty — опрос не требуется. Используйте их, чтобы поддерживать синхронизацию с внешними системами, запускать автоматизации или отправлять оповещения.
## Создать Webhook
1. Перейдите в **Настройки → API и Вебхуки → Вебхуки**
2. Нажмите **+ Создать вебхук**
3. Введите URL вашего вебхука (должен быть общедоступным)
4. Нажмите **Сохранить**
Вебхук активируется сразу и начинает отправлять уведомления.
<VimeoEmbed videoId="928786708" title="Создание вебхука" />
### Управление вебхуками
**Изменить**: Нажмите на вебхук → Обновите URL → **Сохранить**
**Удалить**: Нажмите на вебхук → **Удалить** → Подтвердить
## События
Twenty отправляет вебхуки для следующих типов событий:
| Событие | Пример |
| -------------------- | ---------------------------------------------------------- |
| **Запись создана** | `person.created`, `company.created`, `note.created` |
| **Запись обновлена** | `person.updated`, `company.updated`, `opportunity.updated` |
| **Запись удалена** | `person.deleted`, `company.deleted` |
Все типы событий отправляются на URL вашего вебхука. Фильтрация событий может быть добавлена в будущих версиях.
## Формат полезной нагрузки
Каждый вебхук отправляет HTTP POST с телом JSON:
```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) |
<Note>
Ответьте со **статусом HTTP 2xx** (200-299), чтобы подтвердить получение. Ответы вне диапазона 2xx фиксируются как ошибки доставки.
</Note>
## Валидация вебхуков
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)
```javascript
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 из внешних систем |
Для получения внешних данных см. [Настройка триггера вебхука](/l/ru/user-guide/workflows/how-tos/connect-to-other-tools/set-up-a-webhook-trigger).