Skip to content

API 트리거 전송을 통해 트랜잭션 이메일 보내기

post

/transactional/v1/campaigns/{campaign_id}/send

이 엔드포인트를 사용하여 지정된 사용자에게 즉각적인 일회성 트랜잭션 메시지를 보낼 수 있습니다.

이 엔드포인트는 Braze 트랜잭션 이메일 캠페인 생성 및 해당 캠페인 ID와 함께 사용됩니다.

보내기 트리거 캠페인 엔드포인트와 마찬가지로, 이 캠페인 유형을 사용하면 메시지 콘텐츠를 Braze 대시보드 내에 보관하면서 API를 통해 메시지를 언제, 누구에게 보낼지 지정할 수 있습니다. 메시지를 보낼 오디언스 또는 세그먼트를 허용하는 보내기 트리거 캠페인 엔드포인트와 달리, 이 캠페인 유형은 주문 확인 또는 비밀번호 재설정과 같은 1:1 알림 메시징을 위해 특별히 제작된 것이므로 이 엔드포인트에 대한 요청은 external_user_id 또는 user_alias로 단일 사용자를 지정해야 합니다.

필수 구성 요소

이 엔드포인트를 사용하려면 transactional.send 권한으로 API 키를 생성해야 합니다.

사용량 제한

경로 매개변수

요청 본문

1
2
Content-Type: application/json
Authorization: Bearer YOUR-REST-API-KEY
1
2
3
4
5
6
7
8
9
10
11
{
  "external_send_id": (optional, string) see the following request parameters,
  "trigger_properties": (optional, object) personalization key-value pairs that will apply to the user in this request,
  "recipient": (required, object)
    {
      // Either "external_user_id" or "user_alias" is required. Requests must specify only one.
      "user_alias": (optional, User alias object) User alias of the user to receive message,
      "external_user_id": (optional, string) External identifier of user to receive message,
      "attributes": (optional, object) fields in the attributes object will create or update an attribute of that name with the given value on the specified user profile before the message is sent and existing values will be overwritten
    }
}

요청 매개변수

요청 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
curl -X POST \
  -H 'Content-Type:application/json' \
  -H 'Authorization: Bearer YOUR-REST-API-KEY' \
  -d '{
        "external_send_id" : YOUR_BASE64_COMPATIBLE_ID
        "trigger_properties": {
          "example_string_property": YOUR_EXAMPLE_STRING,
          "example_integer_property": YOUR_EXAMPLE_INTEGER
        },
        "recipient": {
          "external_user_id": TARGETED_USER_ID_STRING
        }
      }' \
  https://rest.iad-01.braze.com/transactional/v1/campaigns/{campaign_id}/send

응답

트랜잭션 이메일 보내기 엔드포인트는 이 메시지 전송의 인스턴스를 나타내는 dispatch_id로 응답합니다. 이 식별자는 트랜잭션 HTTP 이벤트 포스트백의 이벤트와 함께 단일 사용자에게 전송된 개별 이메일의 상태를 추적하는 데 사용할 수 있습니다.

응답 예시

1
2
3
4
5
{
    "dispatch_id": A randomly-generated unique ID of the instance of this send
    "status": Current status of the message
    "metadata" : Object containing additional information about the send instance
}

문제 해결

엔드포인트는 경우에 따라 오류 코드와 사람이 읽을 수 있는 메시지를 반환할 수도 있는데, 대부분은 유효성 검사 오류입니다. 다음은 잘못된 요청을 할 때 발생할 수 있는 몇 가지 일반적인 오류입니다.

너무 많은 요청을 한 경우 Braze의 엔드포인트 대부분에는 429 응답 코드를 반환하는 사용량 제한이 구현되어 있습니다. 트랜잭션 전송 엔드포인트는 다르게 작동합니다. 할당된 사용량 제한을 초과하는 경우 당사 시스템은 계속해서 API 호출을 수집하고 성공 코드를 반환하며 메시지를 전송하지만 해당 메시지는 해당 기능에 대해 계약된 SLA의 적용을 받지 않을 수 있습니다. 이 기능에 대한 자세한 정보가 필요한 경우 문의해 주세요.

트랜잭션 HTTP 이벤트 포스트백

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

수신 이벤트를 특정 전송 인스턴스에 연결하려면 API 응답에 반환된 Braze dispatch_id를 캡처하여 저장하거나 external_send_id 필드에 고유 식별자를 전달하도록 선택할 수 있습니다. 해당 필드에 전달하도록 선택할 수 있는 값의 예로는 주문 1234를 완료한 후 Braze를 통해 사용자에게 주문 확인 메시지가 트리거되고 external_send_id : 1234가 요청에 포함된 주문 ID를 들 수 있습니다. Sent, Delivered 등의 모든 다음 이벤트 포스트백에는 페이로드에 external_send_id : 1234가 포함되어 사용자가 주문 확인 이메일을 성공적으로 수신했는지 확인할 수 있습니다.

트랜잭션 HTTP 이벤트 포스트백 사용을 시작하려면 Braze 대시보드에서 설정 > 이메일 기본 설정 으로 이동하여 트랜잭션 이벤트 상태 포스트백 섹션을 찾습니다. 포스트백을 받으려면 원하는 URL을 입력하세요.

포스트백 본문

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!