Skip to content

트랜잭션 이메일 추적

이 페이지에서는 트랜잭션 이메일 Campaign에 대한 실시간 추적을 설정하는 방법을 설명합니다. 엔드포인트 자체에 대한 자세한 내용은 API 트리거 전달을 사용하여 트랜잭션 이메일 보내기를 참조하세요.

주문 확인이나 비밀번호 재설정과 같은 트랜잭션 이메일을 보낼 때, 해당 이메일이 고객에게 도달하는지 아는 것이 중요합니다. Braze 트랜잭션 HTTP 이벤트 포스트백을 사용하면 모든 트랜잭션 이메일의 상태에 대한 실시간 인사이트를 얻을 수 있으므로, 문제가 발생했을 때 신속하게 대응할 수 있습니다.

이 기능을 사용하면 다음과 같은 작업이 가능합니다:

  • 이메일을 실시간으로 모니터링: 메시지가 전송, 처리, 전달되었는지 또는 문제가 발생했는지 즉시 확인할 수 있습니다.
  • 사전 대응: 메시지를 재시도하거나, SMS와 같은 다른 채널로 전환하거나, 대체 시스템을 사용하여 커뮤니케이션이 전달되도록 할 수 있습니다.

트랜잭션 이메일 추적하기

모든 트랜잭션 이메일은 지정된 URL로 HTTP 요청 형태로 전송되는 이벤트 상태 포스트백으로 보완됩니다. 이를 통해 실시간으로 메시지 상태를 평가하고, 메시지가 전달되지 않은 경우 다른 채널을 통해 사용자에게 도달하기 위한 조치를 취하거나, Braze에 지연이 발생하는 경우 내부 시스템으로 대체할 수 있습니다.

고유 식별자를 사용하여 이러한 업데이트를 개별 메시지에 연결할 수 있습니다:

  • dispatch_id: Braze가 각 메시지에 대해 자동으로 생성하는 고유 ID입니다.
  • external_send_id: 주문 번호와 같이 업데이트를 내부 시스템과 매칭하기 위해 제공하는 커스텀 식별자입니다.

예를 들어, 주문 확인 이메일을 보낼 때 요청에 external_send_id: 1234를 포함하면, 해당 이메일에 대한 모든 후속 이벤트 포스트백(예: Sent 또는 Delivered)에 external_send_id: 1234가 포함됩니다. 이를 통해 주문 #1234의 고객이 주문 확인 이메일을 수신했는지 확인할 수 있습니다.

포스트백 설정하기

Braze 대시보드에서:

  1. 설정 > 이메일 환경설정으로 이동합니다.
  2. 트랜잭션 이벤트 상태 포스트백 아래에서, Braze가 트랜잭션 이메일에 대한 상태 업데이트를 보낼 URL을 입력합니다.
  3. 포스트백을 테스트합니다.

포스트백 본문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
  "dispatch_id": (string, a randomly-generated unique ID of the instance of this send),
  "status": (string, Current status of message from the following message status table,
  "metadata" : (object, additional information relating to the execution of an event)
   {
     "external_send_id" : (string, If provided at the time of the request, Braze will pass your internal identifier for this send for all postbacks),
     "campaign_api_id" : (string, API identifier of this transactional campaign),
     "received_at": (ISO 8601 DateTime string, Timestamp of when the request was received by Braze, only included for events with "sent" status),
     "enqueued_at": (ISO 8601 DateTime string, Timestamp of when the request was enqueued by Braze, only included for events with "sent" status),
     "executed_at": (ISO 8601 DateTime string, Timestamp of when the request was processed by Braze, only included for events with "sent" status),
     "sent_at": (ISO 8601 DateTime string, Timestamp of when the request was sent to the ESP by Braze, only included for events with "sent" status),
     "processed_at" : (ISO 8601 DateTime string, Timestamp the event was processed by the ESP, only included for events with "processed" status),
     "delivered_at" : (ISO 8601 DateTime string, Timestamp the event was delivered to the user's inbox provider, only included for events with "processed" status),
     "bounced_at" : (ISO 8601 DateTime string, Timestamp the event was bounced by the user's inbox provider, only included for events with "bounced" status),
     "aborted_at" : (ISO 8601 DateTime string, Timestamp the event was Aborted by Braze, only included for events with "aborted" status),
     "reason" : (string, The reason Braze or the Inbox provider was unable to process this message to the user, only included for events with "aborted" or "bounced" status),
   }
}

메시지 상태

상태 설명
sent Braze 이메일 발송 파트너에게 메시지가 성공적으로 전달되었습니다
processed 이메일 발송 파트너가 사용자의 받은편지함 제공업체로 보낼 메시지를 성공적으로 수신하고 준비했습니다
aborted 사용자에게 이메일 가능한 주소가 없거나 메시지 본문에서 Liquid 중단 로직이 호출되어 Braze가 메시지를 성공적으로 발송할 수 없었습니다. 중단된 모든 이벤트에는 메시지가 중단된 이유를 나타내는 메타데이터 오브젝트 내의 reason 필드가 포함됩니다
delivered 사용자의 이메일 받은편지함 제공업체에서 메시지를 수락했습니다
bounced 사용자의 이메일 받은편지함 제공업체에서 메시지를 거부했습니다. 모든 반송 이벤트에는 받은편지함 제공업체가 제공한 반송 오류 코드를 반영하는 메타데이터 오브젝트 내의 reason 필드가 포함됩니다

포스트백 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61

// Sent Event
{
    "dispatch_id": "acf471119f7449d579e8089032003ded",
    "status": "sent",
    "metadata": {
      "received_at": "2020-08-31T18:58:41.000+00:00",
      "enqueued_at": "2020-08-31T18:58:41.000+00:00",
      "executed_at": "2020-08-31T18:58:41.000+00:00",
      "sent_at": "2020-08-31T18:58:42.000+00:00",
      "campaign_api_id": "417220e4-5a2a-b634-7f7d-9ec891532368",
      "external_send_id" : "34a2ceb3cf6184132f3d816e9984269a"
    }
}

// Processed Event
{
    "dispatch_id": "acf471119f7449d579e8089032003ded",
    "status": "processed",
    "metadata": {
      "processed_at": "2020-08-31T18:58:42.000+00:00",
      "campaign_api_id": "417220e4-5a2a-b634-7f7d-9ec891532368",
      "external_send_id" : "34a2ceb3cf6184132f3d816e9984269a"
    }
}

// Aborted
{
    "dispatch_id": "acf471119f7449d579e8089032003ded",
    "status": "aborted",
    "metadata": {
      "reason": "User not emailable",
      "aborted_at": "2020-08-31T19:04:51.000+00:00",
      "campaign_api_id": "417220e4-5a2a-b634-7f7d-9ec891532368",
      "external_send_id" : "34a2ceb3cf6184132f3d816e9984269a"
    }
}

// Delivered Event
{
    "dispatch_id": "acf471119f7449d579e8089032003ded",
    "status": "delivered",
    "metadata": {
      "delivered_at": "2020-08-31T18:27:32.000+00:00",
      "campaign_api_id": "417220e4-5a2a-b634-7f7d-9ec891532368",
      "external_send_id" : "34a2ceb3cf6184132f3d816e9984269a"
    }
}

// Bounced Event
{
    "dispatch_id": "acf471119f7449d579e8089032003ded",
    "status": "bounced",
    "metadata": {
      "bounced_at": "2020-08-31T18:58:43.000+00:00",
      "reason": "550 5.1.1 The email account that you tried to reach does not exist",
      "campaign_api_id": "417220e4-5a2a-b634-7f7d-9ec891532368",
      "external_send_id" : "34a2ceb3cf6184132f3d816e9984269a"
    }
}

New Stuff!