> ## 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.

# 평생 캠페인 사용

> 인증된 모든 트리거가 있는 연락처에 하나의 이벤트 트리거 넛지 보내기

## 이 페이지의 도움이 되는 작업

시스템에서 이벤트에 대비한 평생 캠페인을 만드세요. 각 유효한 트리거는 최대 1개의 실행을 생성하고 해당 페이로드의 연락처에 하나의 넛지를 보냅니다.

## 이것이 중요한 이유

캠페인을 반복적으로 구축하고 실행하지 않고도 적시에 관련 이메일을 보낼 수 있습니다. 백엔드는 이벤트 발생 시기를 제어하고 Nudgen은 이메일 콘텐츠, 배송, 추적 및 연락처 기본 설정을 한 곳에 유지합니다.

## 평생 캠페인 사용 시기

다음과 같은 이벤트 중심 이메일에 평생 캠페인을 사용하세요.

* 주문 확인
* 결제 알림
* 이벤트 기반 온보딩
* 계정 또는 구독 업데이트

일회성 및 드립 캠페인과 달리 평생 캠페인 캠페인은 저장된 대상자에게 즉시 전송되지 않습니다. 잠재고객은 항상 **트리거**입니다.

## 캠페인 생성 및 활성화

<Steps>
  <Step title="Create a Lifetime campaign">
    **캠페인**으로 이동하여 **새 캠페인**을 클릭한 다음 **평생**을 선택합니다. 캠페인 이름, 목표, 브랜드 구성 및 선택적 CTA 링크를 추가하세요.
  </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`에 사용되는 모든 변수는 `url` 유형으로 선언된 `data.*` 변수여야 합니다.

## 수명 주기 관리

| 상태        | 의미                                      |
| --------- | --------------------------------------- |
| **초안**    | 캠페인을 구성하고 이메일을 테스트합니다.                  |
| **활성**    | Nudgen은 인증된 트리거를 허용합니다.                 |
| **일시중지됨** | Nudgen은 새로운 트리거를 허용하지 않습니다. 재개할 수 있습니다. |
| **보관됨**   | 캠페인이 영구적으로 종료되어 다시 활성화할 수 없습니다.         |

유효한 전환은 `draft → active → paused → active` 및 `active|paused → archived`입니다.

<Note>
  일시 중지 또는 보관하면 아직 보류 중이거나 대기열에 있는 실행이 취소됩니다. 이미 처리 중인 실행은 계속해서 보낼 수 있습니다.
</Note>

모든 실행은 캠페인 콘텐츠의 스냅샷을 찍고 Nudgen이 트리거를 수신하면 설정을 보냅니다. 활성 캠페인을 편집하면 이미 존재하는 실행이 아닌 이후의 트리거에만 영향을 미칩니다.

## 백엔드에서 트리거

소스 이벤트를 확인한 후 신뢰할 수 있는 서버에서 트리거 엔드포인트를 호출하세요. PAT(개인 액세스 토큰)가 아닌 팀 트리거 API 키를 사용하세요.

```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은 중복 전송을 피하기 위해 자동으로 재시도하지 않습니다.

프로그래밍 방식 설정, 트리거링 및 실행 쿼리는 [개발자 API](/ko/agents/api)를 참조하세요.

## 관련 문서

<CardGroup cols={2}>
  <Card title="Campaigns overview" icon="list" href="/ko/campaigns/overview">
    원샷, 드립, 평생 캠페인을 비교하세요.
  </Card>

  <Card title="Developer API" icon="code" href="/ko/agents/api">
    API를 통해 평생 캠페인 및 트리거를 관리하세요.
  </Card>
</CardGroup>
