콘텐츠로 이동

지시문 작성과 발송

메시지에 지시문을 쓰고, 테스트 발송으로 값을 확인한 뒤 저장합니다.

3단계. 메시지에 지시문 작성하기

Section titled “3단계. 메시지에 지시문 작성하기”

지시문은 API를 호출하는 줄과 응답을 사용하는 줄로 나뉩니다.

지시문 예시와 각 부분의 의미, 발송 결과


  • 경로와 쿼리스트링에 {{ userId }}, {{ tags.* }} 같은 개인화 변수를 쓸 수 있습니다. 도메인 자리에는 쓸 수 없습니다.
  • 이메일처럼 @ · + · &가 들어갈 수 있는 값은 url_encode로 감싸주세요. 감싸지 않으면 값이 깨져 전달될 수 있습니다.
✓ Do
{% connected_content https://api.example.com/coupon?uid={{ userId }} %}
{% connected_content https://api.example.com/member?email={{ email | url_encode }} :save member %}
✕ Don’t

도메인에 변수를 넣으면 저장되지 않습니다.

{% connected_content https://{{ tags.domain }}/coupon %}

요청 방식적을 것주의 사항
GET주소만 적으면 됩니다-
POST:method post + :body:method post 없이 :body만 쓰면 저장은 되지만, body가 무시된 채 GET으로 호출됩니다
POST · JSON으로 받는 API:method post + :body + :content_type application/json:content_type application/json을 빠뜨리면 API가 데이터를 읽지 못해 빈칸으로 발송됩니다

POST 예시

:body의 {{ userId }} 자리에 수신자 값이 들어가, userId가 abc123인 수신자라면 uid=abc123이 전송됩니다.

{% connected_content https://api.example.com/recommend :method post :body uid={{ userId | url_encode }} :save rec %}
추천 상품: {{ rec.product_name }}

JSON으로 보낼 때도 body는 키=값 형식으로 적고 값을 url_encode로 감싸주세요. 플레어레인이 JSON으로 바꿔 보내며, 값에 따옴표 같은 특수문자가 있어도 깨지지 않습니다. 옵션이 많으면 줄을 나눠 적을 수 있습니다.

✓ Do

이름이 김 "플레어" 레인이어도 {"uid": "…", "name": "김 \"플레어\" 레인"}으로 올바르게 전송됩니다.

{% connected_content https://api.example.com/recommend
:method post
:content_type application/json
:body uid={{ userId | url_encode }}&name={{ name | url_encode }}
:save rec %}
✕ Don’t

JSON을 직접 쓰면, 값에 따옴표가 들어간 수신자는 body가 깨져 API가 400 오류를 돌려주고 빈칸으로 발송됩니다.

{% connected_content https://api.example.com/recommend
:method post
:content_type application/json
:body {"name": "{{ name }}"}
:save rec %}

  • 사용 준비 단계에서 복사해둔 인증 정보를 주소 뒤에 붙입니다.
  • 지시문 하나에 Basic과 Token을 함께 쓸 수 없습니다.
등록한 방식옵션
Basic:basic_auth 인증이름
Token:auth_credentials 인증이름

응답이 JSON인지 일반 텍스트인지는 API의 Content-Type 응답 헤더로 정해집니다. 개발팀에 받은 응답 예시로 확인하세요. 두 형식은 꺼내 쓰는 방법이 다릅니다.

구분JSON 응답일반 텍스트 응답
값이 들어가는 곳{{ 이름.필드 }}를 쓴 자리지시문을 쓴 자리 (응답 전체)
:save이름을 붙입니다. 생략하면 connected붙여도 지시문 자리에 출력됩니다
여러 곳에 쓰기가능불가. 필요하면 개발팀에 JSON 응답({"code": "SAVE20-8F3K"})을 요청하세요
HTTP 상태코드{{ 이름.__http_status_code__ }}쓸 수 없음

:save로 이름을 붙이고, 이름 뒤에 점(.)을 찍어 필드를 꺼냅니다. 같은 값을 여러 곳에 쓸 수 있고, 꺼낼 값을 나중에 추가하기도 쉽습니다.

{% connected_content https://api.example.com/points?uid={{ userId }} :save point %}
소멸 예정 적립금 {{ point.amount }}원, {{ point.expires_at }}까지 사용하실 수 있어요.
응답발송되는 메시지
{"amount": 12000, "expires_at": "9월 30일"}소멸 예정 적립금 12000원, 9월 30일까지 사용하실 수 있어요.

값이 들어갈 위치에 지시문을 바로 적어주세요. 아래는 공개 날씨 서비스로 유저 도시의 현재 기온을 넣는 예시입니다.

오늘 {{ tags.city }} 기온은 {% connected_content https://wttr.in/{{ tags.city }}?format=%t %} 이에요. 외출 전에 옷차림 챙기세요!
유저 속성응답발송되는 메시지
tags.city = Seoul+17°C오늘 Seoul 기온은 +17°C 이에요. 외출 전에 옷차림 챙기세요!

호출이 실패하면 값 자리는 빈칸이 됩니다. 셋 중 하나를 골라 미리 적어둘 것을 권장드립니다.

하고 싶은 것문법알아둘 점
대체 문구 보여주기(권장)default:값이 비면 정해둔 문구를 대신 넣습니다.
값이 있을 때만 그 문장을 보여주기{% if %}문장이 어색해지는 것을 막을 수 있습니다. 조건문도 이름이 아닌 필드로 확인해주세요.
이 수신자에게는 보내지 않기abort_message쿠폰 코드처럼 값이 없으면 보낼 의미가 없을 때 씁니다. 발송 실패로 집계되고 과금되지 않습니다.

값이 있을 때만 보여주거나 발송하지 않으려면, 조건문으로 호출이 실패했는지 확인합니다. 확인 방법은 두 가지입니다.

확인 방법조건알아둘 점
필드가 비었는지point.amount == blank호출이 실패했거나, 성공했어도 그 필드가 비어 있으면 참이 됩니다.
HTTP 상태코드point.__http_status_code__ != 200호출이 실패하면 상태코드 값이 비어 참이 됩니다.
JSON 객체 응답 안에 담기는 값이라 텍스트 응답 API에는 쓰지 마세요.
✕ Don’t

조건문에서도 이름이 아닌 필드로 확인해주세요. 이름만 쓰면 메시지가 저장되지 않습니다.

{% if point == blank %}{% abort_message %}{% endif %}

같은 주소를 다시 부를 때는 API를 매번 호출하지 않고, 앞서 받은 응답을 일정 시간 재사용합니다. 대부분은 기본 동작 그대로 두면 되고, 바꿔야 할 때만 옵션을 적어주세요.


구분동작
GET 호출같은 주소의 응답을 5분 동안 재사용합니다. 같은 프로젝트라면 다른 메시지 · 캠페인에서 부른 응답도 재사용합니다
POST 호출:cache_max_age를 적었을 때만 재사용하고, body까지 같아야 같은 호출로 봅니다
수신자마다 다른 값주소 · body · headers에 userId · email · phoneNumber · dob가 들어가면 재사용하지 않습니다
실패한 응답재사용하지 않고, 다음 호출에서 다시 부릅니다
  • 예: tags.city만 들어간 날씨 호출은 같은 도시끼리 응답을 재사용해서, 수신자가 많아도 도시 수만큼만 호출됩니다.
  • 동시에 처리되는 수신자가 많으면 같은 주소라도 여러 번 호출될 수 있습니다. 캐시는 호출 수를 줄여줄 뿐, 정확히 한 번만 호출된다는 보장은 아닙니다.

이럴 때적을 것
재고처럼 항상 최신 값이어야 할 때:no_cache
수신자마다 값이 같은 호출이라 더 오래 재사용해 호출 수를 줄이고 싶을 때:cache_max_age 3600 (단위: 초, 3600초 = 1시간)
POST 응답을 재사용하고 싶을 때:cache_max_age (POST는 이 옵션을 적어야만 재사용합니다)

:cache_max_age로 지정할 수 있는 범위는 한도 요약을 확인하세요.

4단계. 테스트 발송으로 확인하기

Section titled “4단계. 테스트 발송으로 확인하기”
  • 발송 전에 테스트 발송으로 최종 메시지를 확인할 것을 권장합니다.
  • 테스트 발송도 실제 발송과 같습니다.
    • 고객사 API가 실제로 호출됩니다.
    • 5단계의 자동 검사도 똑같이 적용됩니다.
    • 지정한 번호 · 이메일과 연결된 유저가 없으면 {{ userId }} 같은 유저 정보가 비어 있을 수 있습니다.

테스트 발송 화면

5단계. 발송 · 예약 · 여정 저장하기

Section titled “5단계. 발송 · 예약 · 여정 저장하기”
  • 즉시 발송, 예약 저장, 반복 발송 저장, 여정 자동화 저장, 이메일 템플릿 저장 시점에 지시문이 자동으로 검사되며, 작성 규칙에 어긋나면 저장 · 발송되지 않습니다.
  • 작성 규칙은 저장이 거부되는 경우의 내용을 확인해주세요.