지시문 작성과 발송
메시지에 지시문을 쓰고, 테스트 발송으로 값을 확인한 뒤 저장합니다.
3단계. 메시지에 지시문 작성하기
Section titled “3단계. 메시지에 지시문 작성하기”지시문은 API를 호출하는 줄과 응답을 사용하는 줄로 나뉩니다.

호출 주소 작성하기
Section titled “호출 주소 작성하기”- 경로와 쿼리스트링에
{{ userId }},{{ tags.* }}같은 개인화 변수를 쓸 수 있습니다. 도메인 자리에는 쓸 수 없습니다. - 이메일처럼
@·+·&가 들어갈 수 있는 값은url_encode로 감싸주세요. 감싸지 않으면 값이 깨져 전달될 수 있습니다.
{% connected_content https://api.example.com/coupon?uid={{ userId }} %}{% connected_content https://api.example.com/member?email={{ email | url_encode }} :save member %}도메인에 변수를 넣으면 저장되지 않습니다.
{% connected_content https://{{ tags.domain }}/coupon %}요청 방식 정하기
Section titled “요청 방식 정하기”| 요청 방식 | 적을 것 | 주의 사항 |
|---|---|---|
| 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 작성하기
Section titled “JSON body 작성하기”JSON으로 보낼 때도 body는 키=값 형식으로 적고 값을 url_encode로 감싸주세요. 플레어레인이 JSON으로 바꿔 보내며, 값에 따옴표 같은 특수문자가 있어도 깨지지 않습니다. 옵션이 많으면 줄을 나눠 적을 수 있습니다.
이름이 김 "플레어" 레인이어도 {"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 %}JSON을 직접 쓰면, 값에 따옴표가 들어간 수신자는 body가 깨져 API가 400 오류를 돌려주고 빈칸으로 발송됩니다.
{% connected_content https://api.example.com/recommend :method post :content_type application/json :body {"name": "{{ name }}"} :save rec %}인증 정보 붙이기
Section titled “인증 정보 붙이기”- 사용 준비 단계에서 복사해둔 인증 정보를 주소 뒤에 붙입니다.
- 지시문 하나에 Basic과 Token을 함께 쓸 수 없습니다.
| 등록한 방식 | 옵션 |
|---|---|
| Basic | :basic_auth 인증이름 |
| Token | :auth_credentials 인증이름 |
응답 값 꺼내기
Section titled “응답 값 꺼내기”응답이 JSON인지 일반 텍스트인지는 API의 Content-Type 응답 헤더로 정해집니다. 개발팀에 받은 응답 예시로 확인하세요. 두 형식은 꺼내 쓰는 방법이 다릅니다.
| 구분 | JSON 응답 | 일반 텍스트 응답 |
|---|---|---|
| 값이 들어가는 곳 | {{ 이름.필드 }}를 쓴 자리 | 지시문을 쓴 자리 (응답 전체) |
:save | 이름을 붙입니다. 생략하면 connected | 붙여도 지시문 자리에 출력됩니다 |
| 여러 곳에 쓰기 | 가능 | 불가. 필요하면 개발팀에 JSON 응답({"code": "SAVE20-8F3K"})을 요청하세요 |
| HTTP 상태코드 | {{ 이름.__http_status_code__ }} | 쓸 수 없음 |
JSON 응답
Section titled “JSON 응답”: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일까지 사용하실 수 있어요. |
일반 텍스트 응답
Section titled “일반 텍스트 응답”값이 들어갈 위치에 지시문을 바로 적어주세요. 아래는 공개 날씨 서비스로 유저 도시의 현재 기온을 넣는 예시입니다.
오늘 {{ tags.city }} 기온은 {% connected_content https://wttr.in/{{ tags.city }}?format=%t %} 이에요. 외출 전에 옷차림 챙기세요!| 유저 속성 | 응답 | 발송되는 메시지 |
|---|---|---|
tags.city = Seoul | +17°C | 오늘 Seoul 기온은 +17°C 이에요. 외출 전에 옷차림 챙기세요! |
호출 실패에 대비하기
Section titled “호출 실패에 대비하기”지시문에서 대비하기
Section titled “지시문에서 대비하기”호출이 실패하면 값 자리는 빈칸이 됩니다. 셋 중 하나를 골라 미리 적어둘 것을 권장드립니다.
| 하고 싶은 것 | 문법 | 알아둘 점 |
|---|---|---|
| 대체 문구 보여주기(권장) | default: | 값이 비면 정해둔 문구를 대신 넣습니다. |
| 값이 있을 때만 그 문장을 보여주기 | {% if %} | 문장이 어색해지는 것을 막을 수 있습니다. 조건문도 이름이 아닌 필드로 확인해주세요. |
| 이 수신자에게는 보내지 않기 | abort_message | 쿠폰 코드처럼 값이 없으면 보낼 의미가 없을 때 씁니다. 발송 실패로 집계되고 과금되지 않습니다. |
조건문으로 실패 확인하기
Section titled “조건문으로 실패 확인하기”값이 있을 때만 보여주거나 발송하지 않으려면, 조건문으로 호출이 실패했는지 확인합니다. 확인 방법은 두 가지입니다.
| 확인 방법 | 조건 | 알아둘 점 |
|---|---|---|
| 필드가 비었는지 | point.amount == blank | 호출이 실패했거나, 성공했어도 그 필드가 비어 있으면 참이 됩니다. |
| HTTP 상태코드 | point.__http_status_code__ != 200 | 호출이 실패하면 상태코드 값이 비어 참이 됩니다. JSON 객체 응답 안에 담기는 값이라 텍스트 응답 API에는 쓰지 마세요. |
조건문에서도 이름이 아닌 필드로 확인해주세요. 이름만 쓰면 메시지가 저장되지 않습니다.
{% if point == blank %}{% abort_message %}{% endif %}응답 재사용 설정하기
Section titled “응답 재사용 설정하기”같은 주소를 다시 부를 때는 API를 매번 호출하지 않고, 앞서 받은 응답을 일정 시간 재사용합니다. 대부분은 기본 동작 그대로 두면 되고, 바꿔야 할 때만 옵션을 적어주세요.
| 구분 | 동작 |
|---|---|
| GET 호출 | 같은 주소의 응답을 5분 동안 재사용합니다. 같은 프로젝트라면 다른 메시지 · 캠페인에서 부른 응답도 재사용합니다 |
| POST 호출 | :cache_max_age를 적었을 때만 재사용하고, body까지 같아야 같은 호출로 봅니다 |
| 수신자마다 다른 값 | 주소 · body · headers에 userId · email · phoneNumber · dob가 들어가면 재사용하지 않습니다 |
| 실패한 응답 | 재사용하지 않고, 다음 호출에서 다시 부릅니다 |
- 예:
tags.city만 들어간 날씨 호출은 같은 도시끼리 응답을 재사용해서, 수신자가 많아도 도시 수만큼만 호출됩니다. - 동시에 처리되는 수신자가 많으면 같은 주소라도 여러 번 호출될 수 있습니다. 캐시는 호출 수를 줄여줄 뿐, 정확히 한 번만 호출된다는 보장은 아닙니다.
옵션으로 바꾸기
Section titled “옵션으로 바꾸기”| 이럴 때 | 적을 것 |
|---|---|
| 재고처럼 항상 최신 값이어야 할 때 | :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단계. 발송 · 예약 · 여정 저장하기”- 즉시 발송, 예약 저장, 반복 발송 저장, 여정 자동화 저장, 이메일 템플릿 저장 시점에 지시문이 자동으로 검사되며, 작성 규칙에 어긋나면 저장 · 발송되지 않습니다.
- 작성 규칙은 저장이 거부되는 경우의 내용을 확인해주세요.