ディレクティブの作成と配信
メッセージにディレクティブを記述し、テスト配信で値を確認してから保存します。
ステップ3. メッセージにディレクティブを記述する
Section titled “ステップ3. メッセージにディレクティブを記述する”ディレクティブは、APIを呼び出す行とレスポンスを使う行に分かれます。

リクエストURLを記述する
Section titled “リクエストURLを記述する”- パスとクエリ文字列には、
{{ 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 | URLだけで問題ありません | - |
| 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 で囲んでください。FlareLaneがJSONに変換して送信するため、値に引用符などの特殊文字が含まれていても崩れません。オプションが多い場合は、行を分けて書くこともできます。
名前が Kim "Flare" Lane であっても、{"uid": "…", "name": "Kim \"Flare\" Lane"} として正しく送信されます。
{% 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 “認証情報を付ける”- 利用準備のステップでコピーしておいた認証情報を、URLの後ろに付けます。
- 1つのディレクティブでBasicとTokenを一緒に使うことはできません。
| 登録した方式 | オプション |
|---|---|
| Basic | :basic_auth 認証名 |
| Token | :auth_credentials 認証名 |
レスポンスの値を取り出す
Section titled “レスポンスの値を取り出す”レスポンスがJSONかプレーンテキストかは、APIの Content-Type レスポンスヘッダーで決まります。開発チームから受け取ったレスポンス例で確認してください。2つの形式は取り出し方が異なります。
| 区分 | 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 “ディレクティブで備える”呼び出しが失敗すると、値の部分は空欄になります。次の3つのうち1つを選んで、あらかじめ書いておくことをおすすめします。
| やりたいこと | 構文 | 知っておきたいこと |
|---|---|---|
| 代わりの文言を表示する(推奨) | default: | 値が空のとき、設定しておいた文言を代わりに入れます。 |
| 値があるときだけその文を表示する | {% if %} | 文が不自然になるのを防げます。条件文でも名前ではなくフィールドで確認してください。 |
| この受信者には配信しない | abort_message | クーポンコードのように、値がなければ配信する意味がない場合に使います。配信失敗として集計され、課金されません。 |
条件文で失敗を確認する
Section titled “条件文で失敗を確認する”値があるときだけ表示したり配信しないようにしたりするには、条件文で呼び出しが失敗したかを確認します。確認方法は2つあります。
| 確認方法 | 条件 | 知っておきたいこと |
|---|---|---|
| フィールドが空かどうか | point.amount == blank | 呼び出しが失敗した場合、または成功してもそのフィールドが空の場合に真になります。 |
| HTTPステータスコード | point.__http_status_code__ != 200 | 呼び出しが失敗するとステータスコードの値が空になり、真になります。 JSONオブジェクトのレスポンスに含まれる値のため、テキストを返すAPIでは使わないでください。 |
条件文でも名前ではなくフィールドで確認してください。名前だけを書くとメッセージが保存できません。
{% if point == blank %}{% abort_message %}{% endif %}レスポンスの再利用を設定する
Section titled “レスポンスの再利用を設定する”同じURLをもう一度呼び出すときは、APIを毎回呼び出さず、先に受け取ったレスポンスを一定時間再利用します。ほとんどの場合はデフォルトの動作のままで問題なく、変更が必要なときだけオプションを書いてください。
デフォルトの動作
Section titled “デフォルトの動作”| 区分 | 動作 |
|---|---|
| GETの呼び出し | 同じURLのレスポンスを5分間再利用します。同じプロジェクトであれば、別のメッセージ・キャンペーンで呼び出したレスポンスも再利用します |
| POSTの呼び出し | :cache_max_age を書いたときだけ再利用し、bodyまで同じ場合に同じ呼び出しとみなします |
| 受信者ごとに異なる値 | URL・body・headersに userId・email・phoneNumber・dob が含まれる場合は再利用しません |
| 失敗したレスポンス | 再利用せず、次の呼び出しで改めて呼び出します |
- 例:
tags.cityだけを含む天気の呼び出しは、同じ都市どうしでレスポンスを再利用するため、受信者が多くても都市の数だけ呼び出されます。 - 同時に処理される受信者が多いと、同じURLでも複数回呼び出されることがあります。キャッシュは呼び出し回数を減らすものであり、必ず1回だけ呼び出されることを保証するものではありません。
オプションで変更する
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. 配信・予約・ジャーニーを保存する”- 即時配信、予約の保存、繰り返し配信の保存、ジャーニー自動化の保存、メールテンプレートの保存のタイミングでディレクティブが自動的に検査され、記述ルールに反している場合は保存・配信されません。
- 記述ルールは、保存が拒否されるケースの内容をご確認ください。