> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nudgen.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Использовать бессрочные кампании

> Отправить одно напоминание, вызванное событием, контакту с каждым проверенным триггером

## Что вам поможет эта страница

Создайте бессрочную кампанию, которая всегда будет готова к событиям из вашей системы. Каждый действительный триггер создает не более одного выполнения и отправляет одно напоминание контакту в своей полезной нагрузке.

## Почему это важно

Вы можете отправлять своевременные и релевантные электронные письма без повторного создания и запуска кампаний. Серверная часть контролирует, когда происходит событие, в то время как Nudgen хранит содержимое электронной почты, доставку, отслеживание и настройки контактов в одном месте.

## Когда использовать пожизненную кампанию

Используйте пожизненную кампанию для электронной почты, управляемой событиями, например:

* Подтверждения заказов
* Напоминания о платежах
* Регистрация на основе событий
* Обновления учетной записи или подписки

В отличие от разовых и капельных кампаний, пожизненная кампания не отправляется сразу сохраненной аудитории. Его аудитория всегда — **Триггер**.

## Создайте и активируйте кампанию

<Steps>
  <Step title="Create a Lifetime campaign">
    Перейдите в раздел **Кампании**, нажмите **Новая кампания**, затем выберите **Пожизненный**. Добавьте название кампании, цель, конфигурацию бренда и необязательную ссылку с призывом к действию.
  </Step>

  <Step title="Define runtime parameters">
    Добавьте все значения, которые ваша система предоставит во время отправки. Параметр создает переменную `data.*`: например, `order_id` в электронном письме становится `{{data.order_id}}`.
  </Step>

  <Step title="Create the email">
    Сгенерируйте или напишите тему и HTML, а затем добавьте переменные времени выполнения туда, где они должны быть. Просмотрите электронное письмо и отправьте тестовое письмо, прежде чем активировать его.
  </Step>

  <Step title="Activate the campaign">
    Сохраните его как черновик и нажмите **Активировать**. Nudgen проверяет, представлены ли необходимые параметры в электронном письме и что контракт параметров не изменился с момента создания.
  </Step>

  <Step title="Create a trigger key">
    Перейдите в **Настройки** → **Ключи API** и создайте **Ключ API группового триггера**. Сохраните секрет `ndg_team_*` в своем бэкэнде или диспетчере секретов; никогда не размещайте его в коде браузера или мобильного приложения.
  </Step>
</Steps>

## Параметры времени выполнения и переменные шаблона

Ваш `variableManifest` представляет собой контракт между шаблоном электронной почты и объектом `data` каждого триггера. В кампании можно определить до 100 переменных.

| Поле           | Тип                                             | Требуется | Описание                                                                                                   |
| -------------- | ----------------------------------------------- | --------- | ---------------------------------------------------------------------------------------------------------- |
| `path`         | `data.<name>`                                   | Да        | Переменный путь. Поддерживаются вложенные пути, такие как `data.order.total`.                              |
| `type`         | `string`, `number`, `boolean`, `date` или `url` | Да        | Тип триггера должен обеспечивать. `date` должен быть допустимой строкой даты, а `url` должен быть HTTP(S). |
| `required`     | логическое                                      | Да        | Отсутствующие значения возвращают `422`, если не установлено значение по умолчанию.                        |
| `defaultValue` | строка, число или логическое значение           | Нет       | Резервное значение, которое должно соответствовать типу переменной.                                        |
| `description`  | строка                                          | Нет       | Объясните значение, чтобы вы и Nudgen AI могли правильно его использовать.                                 |

Например, используйте в шаблоне `{{data.order_id}}`, `{{data.total}}` и `{{data.order_url}}`. Вы также можете использовать `contact.*`, `event.*`, `brand.*` и устаревшие переменные, такие как `{{firstName}}` и `{{brandName}}`.

Nudgen экранирует значения переменных, вставленные в HTML. Шаблоны не поддерживают JavaScript, выражения и циклы. Любая переменная, используемая в `href`, должна быть переменной `data.*`, объявленной с типом `url`.

## Управление жизненным циклом

| Статус             | Что это значит                                                 |
| ------------------ | -------------------------------------------------------------- |
| **Черновик**       | Настройте кампанию и протестируйте ее электронную почту.       |
| **Активен**        | Nudgen принимает аутентифицированные триггеры.                 |
| **Приостановлено** | Nudgen не принимает новые триггеры. Вы можете возобновить его. |
| **В архиве**       | Кампания закрыта навсегда и не может быть активирована снова.  |

Действительными переходами являются `draft → active → paused → active` и `active|paused → archived`.

<Note>
  Приостановка или архивирование отменяет выполнения, которые все еще находятся в ожидании или в очереди. Выполнение, которое уже обрабатывается, все еще может отправляться.
</Note>

Каждое выполнение делает снимки содержимого кампании и отправляет настройки, когда Nudgen получает триггер. Изменение активной кампании влияет только на последующие триггеры, а не на уже существующие исполнения.

## Триггер из вашего серверного интерфейса

Вызовите конечную точку триггера с доверенного сервера после проверки исходного события. Используйте ключ API триггера группы, а не токен личного доступа (PAT).

```bash theme={null}
curl -X POST "$NUDGEN_APP_URL/api/v1/campaigns/$CAMPAIGN_ID/triggers" \
  -H "Authorization: Bearer $NUDGEN_TEAM_API_KEY" \
  -H "Content-Type: application/json" \
  --data @- <<'JSON'
{
  "eventId": "order_123",
  "eventName": "order.created",
  "occurredAt": "2026-08-23T10:00:00Z",
  "contact": {
    "email": "an@example.com",
    "externalId": "customer_456",
    "name": "An Nguyen",
    "metadata": { "company": "Nudgen" }
  },
  "data": {
    "order_id": "order_123",
    "total": 490000,
    "order_url": "https://example.com/orders/order_123"
  }
}
JSON
```

Сохраняйте тот же `eventId` при повторной попытке события. Nudgen возвращает существующее выполнение с помощью `200` и `duplicate: true` вместо отправки еще одного подталкивания. Новое выполнение возвращает `201`.

## Безопасная интеграция

* Запуск от потребителя веб-перехватчика или серверной части и проверка входящего веб-перехватчика перед вызовом Nudgen.
* Повторить ошибки сети, `429` и `503` с экспоненциальной задержкой и тем же самым `eventId`.
  – Не регистрируйте заголовки `Authorization` или полезные данные, содержащие конфиденциальные контактные данные.
  – Регулярно меняйте триггерные ключи и немедленно отзывайте ключ, если вы подозреваете, что он раскрыт.
  – Создайте одну кампанию для каждого типа события и переменного контракта, чтобы шаблоны и аудит выполнения оставались ясными.

## Отслеживайте исполнения

Откройте кампанию на панели управления, чтобы просмотреть последние выполнения и их статусы. Исполнение может быть `pending`, `queued`, `processing`, `sent`, `skipped`, `cancelled`, `failed` или `delivery_unknown`.

`skipped` означает, что контакт был отписан от подписки или отклонен, поэтому Nudgen записывает событие, но не отправляет и не использует квоту. `delivery_unknown` означает, что поставщик, возможно, принял электронное письмо, но окончательный результат доставки был неопределенным; Nudgen не повторяет попытку автоматически, чтобы избежать повторной отправки.

Информацию о программной настройке, запуске и выполнении запросов см. в [Developer API](/ru/agents/api).

## Связанные документы

<CardGroup cols={2}>
  <Card title="Campaigns overview" icon="list" href="/ru/campaigns/overview">
    Сравните разовые, капельные и пожизненные кампании.
  </Card>

  <Card title="Developer API" icon="code" href="/ru/agents/api">
    Управляйте пожизненными кампаниями и триггерами с помощью API.
  </Card>
</CardGroup>
