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. Go to Settings > Email Preferences.
  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),
   }
}

메시지 상태

포스트백 예시

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!