API リファレンス:スキーマ
リクエスト・応答・Webhook の本文の型です。各操作からはここへリンクしています。
AI・コーディングエージェント向けにこのページの Markdown 版とllms.txtがあります。
CampaignDetailOut
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
site_id | string(uuid) | 必須 | — |
key | string | 必須 | — |
name | string | 必須 | — |
product_name | string(null 可) | 必須 | — |
status | string | 必須 | 値:active・paused・archived(今後増えることがある) |
abandon_wait_minutes | integer | 必須 | — |
created_at | string(date-time) | 必須 | — |
updated_at | string(date-time) | 必須 | — |
site | object(項目は未掲載) | 必須 | — |
url_rules | UrlRuleOut の配列 | 必須 | — |
form_profile | FormProfileOut(null 可) | 必須 | — |
warnings | TakeoverWarningOut の配列 | — | 保存で稼働中キャンペーンのページを別キャンペーンが奪った時の警告。保存は成立している |
CampaignDuplicateIn
複製の指定。省略=識別子は <元>-copy(空いている番号)・名前は「〇〇のコピー」。
| 項目 | 型 | 必須 | 説明 |
key | string(null 可) | — | — |
name | string(null 可) | — | — |
CampaignIn
| 項目 | 型 | 必須 | 説明 |
site_id | string(uuid) | 必須 | — |
key | string | 必須 | — |
name | string | 必須 | — |
product_name | string(null 可) | — | — |
status | string(null 可) | — | 省略時はセッション=active・APIキー=paused。APIキーは paused のみ指定可 値:active・paused・archived(今後増えることがある) |
abandon_wait_minutes | integer(null 可) | — | — |
CampaignListItemOut
一覧の1行。「稼働中だが有効なシナリオが無く送られない」を一覧で見分けられる。
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
site_id | string(uuid) | 必須 | — |
key | string | 必須 | — |
name | string | 必須 | — |
product_name | string(null 可) | 必須 | — |
status | string | 必須 | 値:active・paused・archived(今後増えることがある) |
abandon_wait_minutes | integer | 必須 | — |
created_at | string(date-time) | 必須 | — |
updated_at | string(date-time) | 必須 | — |
scenario_count | integer | 必須 | 未削除のシナリオ数 |
active_scenario_count | integer | 必須 | 有効(active)なシナリオ数(0 か 1)。0 なら稼働中でも送られない |
CampaignListOut
キャンペーンの一覧(cursor 方式)。URL ルール・フォーム項目は詳細だけに載る。
CampaignPatch
未送信=現状維持。key と site_id は受け付けない(送られても黙って無視する)。
| 項目 | 型 | 必須 | 説明 |
name | string(null 可) | — | — |
product_name | string(null 可) | — | — |
status | string(null 可) | — | 値:active・paused・archived(今後増えることがある) |
abandon_wait_minutes | integer(null 可) | — | — |
CampaignRefOut
| 項目 | 型 | 必須 | 説明 |
id | string(uuid)(null 可) | 必須 | — |
key | string | 必須 | — |
name | string(null 可) | 必須 | — |
CaptureCountsOut
| 項目 | 型 | 必須 | 説明 |
captured | integer(null 可) | 必須 | — |
abandoned | integer(null 可) | 必須 | — |
ConsentSettingsOut
| 項目 | 型 | 必須 | 説明 |
consent_checkbox_enabled | boolean | 必須 | — |
consent_default_checked | boolean | 必須 | — |
consent_template_key | string(null 可) | 必須 | 値:concise・formal・standard(今後増えることがある) |
template | ConsentTemplateOut | 必須 | — |
templates | ConsentTemplateOut の配列 | 必須 | — |
consent_optout_link_enabled | boolean | 必須 | — |
consent_mode | string | 必須 | 値:none・notice_optout・explicit(今後増えることがある) |
optout_text | OptoutTextOut | 必須 | — |
publish_failed | string の配列 | — | 既定値 [] |
ConsentTemplateOut
| 項目 | 型 | 必須 | 説明 |
key | string | 必須 | 値:concise・formal・standard(今後増えることがある) |
main | string | 必須 | — |
note | string | 必須 | — |
ConversionCountsOut
| 項目 | 型 | 必須 | 説明 |
abandoned | integer(null 可) | 必須 | — |
converted | integer(null 可) | 必須 | — |
ConversionDetectedData
| 項目 | 型 | 必須 | 説明 |
lead_id | string(uuid) | 必須 | リードの ID(連絡先は GET /leads/{lead_id} で取得する) |
campaign_id | string(uuid) | 必須 | キャンペーンの ID |
site_id | string(uuid) | 必須 | サイトの ID |
conversion_source | string | 必須 | CV の検知のしかた。成果の指標に数えるのは tag(サンクスページのタグ)だけ。tag_visitor=同じ訪問者の別のキャンペーンの CV から止めた・hash_match=同じ連絡先の CV から止めた 値:tag・tag_visitor・hash_match・cart_api・manual(今後増えることがある) |
converted_at | string(date-time) | 必須 | CV の時刻 |
DailyCountsOut
面ごと・段ごとの件数。集計がまだの日・シナリオで絞った時の配信以外の面は null。
DailyDayOut
1日分(JST)。
| 項目 | 型 | 必須 | 説明 |
date | string | 必須 | 日付(YYYY-MM-DD・JST) |
computed | boolean | 必須 | 集計済みか。false の日の件数は null |
counts | DailyCountsOut | 必須 | — |
delivery_by_channel | DeliveryByChannelOut | 必須 | — |
converted_spillover | integer(null 可) | 必須 | — |
converted_hash_match | integer(null 可) | 必須 | — |
DailyNotesOut
数字の読み方の注記(画面と同じ文言)。
| 項目 | 型 | 必須 | 説明 |
recovered_cv | string | 必須 | — |
traffic_unit | string | 必須 | — |
delivery | string | 必須 | — |
DailyRangeOut
| 項目 | 型 | 必須 | 説明 |
from | string | 必須 | 期間の始まりの日付(含む) |
to | string | 必須 | 期間の終わりの日付(含まない) |
timezone | string | 必須 | — |
site_id | string(null 可) | 必須 | — |
campaign_id | string(null 可) | 必須 | — |
scenario_id | string(null 可) | 必須 | — |
DailyReportOut
日次推移(期間は JST の日付の半開区間)。
DailyStepGroupOut
シナリオのステップ別の実績(group_by=step)。期間内に送信の無いステップは行が無い。
| 項目 | 型 | 必須 | 説明 |
step_id | string | 必須 | — |
step_no | integer(null 可) | 必須 | ステップ番号。削除済みで番号が引けない時は null |
channel | string | 必須 | 値:sms・email(今後増えることがある) |
step_deleted | boolean | 必須 | — |
counts | DeliveryCountsOut | 必須 | — |
metrics | ReportMetricOut の配列 | 必須 | — |
DeliveryByChannelOut
DeliveryCountsOut
配信の段ごとの件数。SMS には開封が無い(opened は null)。集計がまだの日は null。
| 項目 | 型 | 必須 | 説明 |
sent | integer(null 可) | 必須 | — |
delivered | integer(null 可) | 必須 | — |
opened | integer(null 可) | 必須 | — |
clicked | integer(null 可) | 必須 | — |
converted | integer(null 可) | 必須 | — |
DeliveryEventData
| 項目 | 型 | 必須 | 説明 |
delivery_id | string(uuid) | 必須 | 配信の ID(GET /deliveries/{delivery_id}) |
lead_id | string(uuid) | 必須 | リードの ID(連絡先は GET /leads/{lead_id} で取得する) |
campaign_id | string(uuid) | 必須 | キャンペーンの ID |
channel | string | 必須 | チャネル 値:sms・email(今後増えることがある) |
step | integer(null 可) | 必須 | シナリオのステップ番号(1始まり) |
status | string | 必須 | 結果(イベント名の後半と同じ) 値:sent・failed(今後増えることがある) |
error_code | string | — | 失敗の理由のコード(delivery.failed の時だけ)。固定の語彙ではない(送信事業者が返すエラー名がそのまま入ることがある)=値で分岐せず、表示とログに使う |
DeliveryListOut
配信の一覧(cursor 方式)。行は GET /deliveries/{delivery_id} と同じ形。
| 項目 | 型 | 必須 | 説明 |
data | DeliveryOut の配列 | 必須 | — |
date_field | string | 必須 | 期間の絞り込みに使った日時の項目(クエリ date_field) 値:created_at・scheduled_at・sent_at(今後増えることがある) |
next_cursor | string(null 可) | 必須 | — |
has_more | boolean | 必須 | — |
DeliveryOut
配信1件。宛先はマスク済みの to_masked だけを返す。
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
lead_id | string(uuid) | 必須 | — |
status | string | 必須 | 値:scheduled・sending・sent・delivered・failed・cancelled・suppressed(今後増えることがある) |
channel | string | 必須 | 値:sms・email(今後増えることがある) |
to_masked | string(null 可) | 必須 | — |
pii_state | string | 必須 | 値:present・absent・error(今後増えることがある) |
campaign | object(項目は未掲載)(null 可) | 必須 | — |
scenario | object(項目は未掲載)(null 可) | 必須 | — |
step | object(項目は未掲載)(null 可) | 必須 | — |
scheduled_at | string(date-time) | 必須 | — |
sent_at | string(date-time)(null 可) | 必須 | — |
created_at | string(date-time) | 必須 | — |
cancel_reason | string(null 可) | 必須 | 値:converted・suppressed・opted_out・cap_exceeded・invalid_contact・step_removed(今後増えることがある) |
error_code | string(null 可) | 必須 | 失敗の理由のコード。固定の語彙ではない(送信事業者が返すエラー名がそのまま入ることがある)=値で分岐せず、表示とログに使う |
DeliveryStatusOut
| 項目 | 型 | 必須 | 説明 |
enabled | boolean | 必須 | — |
enabled_at | string(date-time)(null 可) | 必須 | — |
mode | string | 必須 | 値:off・test_only・live(今後増えることがある) |
Error
| 項目 | 型 | 必須 | 説明 |
tel_selectors | string の配列(null 可) | — | — |
email_selectors | string の配列(null 可) | — | — |
consent_selector | string(null 可) | — | — |
tel_split_selectors | string の配列(null 可) | — | — |
| 項目 | 型 | 必須 | 説明 |
tel_selectors | string の配列 | 必須 | — |
email_selectors | string の配列 | 必須 | — |
consent_selector | string(null 可) | 必須 | — |
tel_split_selectors | string の配列(null 可) | 必須 | — |
detected_by | string | 必須 | 値:manual・preset・auto(今後増えることがある) |
detected_at | string(date-time)(null 可) | 必須 | — |
FromPresetIn
| 項目 | 型 | 必須 | 説明 |
preset_key | string | 必須 | — |
name | string(null 可) | — | — |
FunnelCampaignGroupOut
キャンペーン別の行(group_by=campaign)。列ごとに数える基準の日時が違う。
| 項目 | 型 | 必須 | 説明 |
campaign_id | string(null 可) | 必須 | null はどのキャンペーンにも当たらなかった分 |
campaign_key | string(null 可) | 必須 | — |
campaign_name | string | 必須 | — |
page_view | integer | 必須 | — |
form_start | integer | 必須 | — |
capture | integer | 必須 | — |
conversion | integer | 必須 | — |
abandoned | integer | 必須 | — |
converted | integer | 必須 | — |
converted_spillover | integer | 必須 | — |
converted_hash_match | integer | 必須 | — |
FunnelRangeOut
| 項目 | 型 | 必須 | 説明 |
from | string | 必須 | 期間の始まり(含む) |
to | string | 必須 | 期間の終わり(含まない) |
site_id | string(null 可) | 必須 | — |
campaign_id | string(null 可) | 必須 | — |
FunnelReportOut
ファネルと指標(期間は半開区間)。
| 項目 | 型 | 必須 | 説明 |
range | FunnelRangeOut | 必須 | — |
unit | string | 必須 | トラフィックを数える単位の説明 |
faces | ReportFaceOut の配列 | 必須 | — |
metrics | ReportMetricOut の配列 | 必須 | — |
volumes | object(項目は未掲載) | 必須 | イベントの種類ごとの件数 |
conversion_events | integer | 必須 | — |
converted_spillover | integer | 必須 | 別のキャンペーンの CV から止めたリード数 |
converted_hash_match | integer | 必須 | 同じ連絡先の CV から止めたリード数 |
delivered_inferred | integer | 必須 | 到達の通知は無いが開封・クリックから到達に数えた配信数 |
excluded_no_session | integer | 必須 | 訪問を特定できず集計から外したイベント数 |
imputed_by_visitor | integer | 必須 | 訪問者の ID で訪問を代用したイベント数 |
unassigned_share | number(null 可) | 必須 | どのキャンペーンにも当たらなかった PV の割合 |
groups | FunnelCampaignGroupOut の配列(null 可) | — | group_by=campaign の時だけ載る |
LeadAbandonedData
| 項目 | 型 | 必須 | 説明 |
lead_id | string(uuid) | 必須 | リードの ID(連絡先は GET /leads/{lead_id} で取得する) |
campaign_id | string(uuid) | 必須 | キャンペーンの ID |
abandoned_at | string(date-time) | 必須 | 離脱が確定した時刻 |
LeadCapturedData
| 項目 | 型 | 必須 | 説明 |
lead_id | string(uuid) | 必須 | リードの ID(連絡先は GET /leads/{lead_id} で取得する) |
campaign_id | string(uuid) | 必須 | キャンペーンの ID |
site_id | string(uuid) | 必須 | サイトの ID |
channels | string の配列 | 必須 | 取得した連絡先で届けられるチャネル(SMS は受信できる番号の時だけ) 値:sms・email(今後増えることがある) |
LeadDetailOut
詳細だけが返すもの。
流入元(landing_url / referrer / utm / lp_key)は一覧に出さず詳細だけで返す。referrer には外部サイトの値がそのまま入る。タイムラインも詳細だけで返す。
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
site | object(項目は未掲載)(null 可) | 必須 | — |
campaign | object(項目は未掲載)(null 可) | 必須 | — |
status | string | 必須 | 値:started・captured・abandoned・queued・sent・converted・suppressed(今後増えることがある) |
consent_state | string | 必須 | 値:none・notice_optout・explicit(今後増えることがある) |
email_masked | string(null 可) | 必須 | — |
tel_masked | string(null 可) | 必須 | — |
pii_state | string | 必須 | 値:present・absent・error(今後増えることがある) |
tel_kind | string(null 可) | 必須 | 値:mobile・ip・landline(今後増えることがある) |
sms_capable | boolean | 必須 | — |
created_at | string(date-time) | 必須 | — |
captured_at | string(date-time)(null 可) | 必須 | — |
abandoned_at | string(date-time)(null 可) | 必須 | — |
converted_at | string(date-time)(null 可) | 必須 | — |
conversion_source | string(null 可) | 必須 | 値:tag・tag_visitor・hash_match・cart_api・manual(今後増えることがある) |
suppress_reason | string(null 可) | 必須 | 値:check_error・not_found・delivery_disabled・campaign_inactive・campaign_paused・scenario_inactive・scenario_paused・before_activation・stale・converted・lead_ineligible・no_contact・not_test_recipient・opted_out・suppressed・invalid_contact・sender_unverified・free_quota_exhausted・subscription_inactive・balance_exhausted・cap_exceeded(今後増えることがある) |
landing_url | string(null 可) | 必須 | — |
referrer | string(null 可) | 必須 | — |
utm | object(項目は未掲載) | 必須 | 流入時の UTM パラメータ。画面表示用。形は契約外(予告なく変わる)=この中の項目に依存した処理を組まない |
lp_key | string(null 可) | 必須 | — |
timeline | object(項目は未掲載) の配列 | 必須 | リードの出来事の時系列。画面表示用。形は契約外(予告なく変わる)=この中の項目に依存した処理を組まない |
LeadListOut
リードの一覧(cursor 方式)。
| 項目 | 型 | 必須 | 説明 |
data | LeadOut の配列 | 必須 | — |
date_field | string | 必須 | 期間の絞り込みに使った日時の項目(クエリ date_field) 値:created_at・captured_at・abandoned_at・converted_at(今後増えることがある) |
next_cursor | string(null 可) | 必須 | — |
has_more | boolean | 必須 | — |
LeadOut
リード1件。連絡先はマスク済みの文字列だけを返す。
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
site | object(項目は未掲載)(null 可) | 必須 | — |
campaign | object(項目は未掲載)(null 可) | 必須 | — |
status | string | 必須 | 値:started・captured・abandoned・queued・sent・converted・suppressed(今後増えることがある) |
consent_state | string | 必須 | 値:none・notice_optout・explicit(今後増えることがある) |
email_masked | string(null 可) | 必須 | — |
tel_masked | string(null 可) | 必須 | — |
pii_state | string | 必須 | 値:present・absent・error(今後増えることがある) |
tel_kind | string(null 可) | 必須 | 値:mobile・ip・landline(今後増えることがある) |
sms_capable | boolean | 必須 | — |
created_at | string(date-time) | 必須 | — |
captured_at | string(date-time)(null 可) | 必須 | — |
abandoned_at | string(date-time)(null 可) | 必須 | — |
converted_at | string(date-time)(null 可) | 必須 | — |
conversion_source | string(null 可) | 必須 | 値:tag・tag_visitor・hash_match・cart_api・manual(今後増えることがある) |
suppress_reason | string(null 可) | 必須 | 値:check_error・not_found・delivery_disabled・campaign_inactive・campaign_paused・scenario_inactive・scenario_paused・before_activation・stale・converted・lead_ineligible・no_contact・not_test_recipient・opted_out・suppressed・invalid_contact・sender_unverified・free_quota_exhausted・subscription_inactive・balance_exhausted・cap_exceeded(今後増えることがある) |
MatchLocationOut
テストした URL を判定に使う3つの部分に分けたもの。
| 項目 | 型 | 必須 | 説明 |
hostname | string | 必須 | — |
pathname | string | 必須 | — |
search | string | 必須 | — |
MatchRuleOut
配信中のタグ設定に載っている URL ルール1件。
| 項目 | 型 | 必須 | 説明 |
campaign | string | 必須 | キャンペーンの key |
role | string | 必須 | 値:landing・form・thanks(今後増えることがある) |
match_type | string | 必須 | 値:prefix・glob・regex・query・host(今後増えることがある) |
pattern | string | 必須 | — |
priority | integer(null 可) | 必須 | 小さいほど先に評価する。null は最後 |
MatchTestIn
MatchTestOut
URL のマッチテストの結果。判定はタグに配る設定と同じルール・同じ順序で行う。
| 項目 | 型 | 必須 | 説明 |
url | string | 必須 | — |
location | MatchLocationOut | 必須 | — |
assigned | boolean | 必須 | どれかのルールに当たったか |
campaign | string(null 可) | 必須 | 当たったキャンペーンの key。当たらなければ null |
role | string(null 可) | 必須 | 当たったルールの役割。当たらなければ null 値:landing・form・thanks(今後増えることがある) |
matched | MatchRuleOut(null 可) | 必須 | 最初に当たったルール。当たらなければ null |
evaluated | MatchRuleOut の配列 | 必須 | 評価したルール(評価順) |
MessageExampleListOut
メッセージの例文の一覧(全件・ページングなし)。
MessageExampleOut
例文1件。選んだら POST /messages の body(SMS)/subject+blocks(メール)へ。
| 項目 | 型 | 必須 | 説明 |
key | string | 必須 | 例文の識別子(sms_1 等) |
channel | string | 必須 | 値:sms・email(今後増えることがある) |
position | integer | 必須 | 何通目向けか(推奨シナリオでの順番・チャネルごと) |
delay_minutes | integer | 必須 | 推奨シナリオでの送るタイミング(シナリオに入ってから・分) |
label | string | 必須 | 表示名(例: 1通目(離脱直後)) |
body | string(null 可) | 必須 | SMS の本文。メールは null |
subject | string(null 可) | 必須 | メールの件名。SMS は null |
blocks | object(項目は未掲載) の配列(null 可) | 必須 | メールのブロック。SMS は null |
MessageIn
| 項目 | 型 | 必須 | 説明 |
channel | string | 必須 | 値:sms・email(今後増えることがある) |
subject | string(null 可) | — | — |
body | string(null 可) | — | — |
body_html | string(null 可) | — | — |
header_image_url | string(null 可) | — | — |
link_url | string(null 可) | — | — |
link_params | object(項目は未掲載) | — | 既定値 {} |
blocks | 任意の値 の配列(null 可) | — | — |
MessageListOut
文面の一覧(cursor 方式)。
| 項目 | 型 | 必須 | 説明 |
data | MessageOut の配列 | 必須 | — |
next_cursor | string(null 可) | 必須 | — |
has_more | boolean | 必須 | — |
MessageOut
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
channel | string | 必須 | 値:sms・email(今後増えることがある) |
subject | string(null 可) | 必須 | — |
body | string | 必須 | — |
body_html | string(null 可) | 必須 | — |
header_image_url | string(null 可) | 必須 | — |
link_url | string | 必須 | — |
link_params | object(項目は未掲載) | 必須 | — |
blocks | 任意の値 の配列(null 可) | 必須 | — |
sms_segments | integer(null 可) | 必須 | SMS の通数の目安(保存時点)。URL は展開後・商品名は字面({{product_name}})で数えたワーストケース(docomo 66文字刻み)。実際の通数はキャンペーンの商品名とキャリアで変わる(実績は配信の記録)。メールは null |
created_at | string(date-time) | 必須 | — |
updated_at | string(date-time) | 必須 | — |
MessagePatch
未送信=現状維持。subject / body_html / header_image_url / blocks は null でクリア
header_image_url は null 以外を送ると 422
| 項目 | 型 | 必須 | 説明 |
channel | string(null 可) | — | 値:sms・email(今後増えることがある) |
subject | string(null 可) | — | — |
body | string(null 可) | — | — |
body_html | string(null 可) | — | — |
header_image_url | string(null 可) | — | — |
link_url | string(null 可) | — | — |
link_params | object(項目は未掲載)(null 可) | — | — |
blocks | 任意の値 の配列(null 可) | — | — |
MessagePreviewIn
| 項目 | 型 | 必須 | 説明 |
campaign_id | string(uuid) | 必須 | — |
subject | string(null 可) | — | — |
blocks | 任意の値 の配列 | 必須 | — |
MessagePreviewOut
MessagePreviewProblem
| 項目 | 型 | 必須 | 説明 |
code | string | 必須 | 値:not_found・sender_info_missing・no_link_url・unknown_variable・missing_value・body_too_long・token_exhausted(今後増えることがある) |
message | string | 必須 | — |
MessageVariableOut
| 項目 | 型 | 必須 | 説明 |
name | string | 必須 | — |
label | string | 必須 | — |
sample | string(null 可) | 必須 | — |
MessageVariablesOut
OptoutTextOut
| 項目 | 型 | 必須 | 説明 |
link | string | 必須 | — |
done | string | 必須 | — |
PpCheckListOut
プライバシーポリシーのチェック結果の一覧(cursor 方式)。
| 項目 | 型 | 必須 | 説明 |
data | PpCheckOut の配列 | 必須 | — |
next_cursor | string(null 可) | 必須 | — |
has_more | boolean | 必須 | — |
PpCheckOut
プライバシーポリシーのチェック1回の結果。elements={R1: {state, source, quote}, …}。
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
site_id | string(uuid) | 必須 | — |
trigger | string | 必須 | 値:manual・sweep・recheck・operator(今後増えることがある) |
status | string | 必須 | 値:queued・running・passed・failed・error(今後増えることがある) |
pp_url | string | 必須 | — |
external_url | string(null 可) | 必須 | — |
rule_version | string | 必須 | — |
channels | string の配列 | 必須 | 値:email・sms(今後増えることがある) |
elements | object(項目は未掲載) | 必須 | — |
links | object(項目は未掲載) | 必須 | — |
pages | object(項目は未掲載) の配列 | 必須 | — |
created_at | string(date-time) | 必須 | — |
finished_at | string(date-time)(null 可) | 必須 | — |
ReportFaceOut
集計面。面ごとに数える基準の日時が違う(比率は同じ面の中でだけ出す)。
| 項目 | 型 | 必須 | 説明 |
key | string | 必須 | — |
label | string | 必須 | — |
basis | string | 必須 | 数える基準の日時 |
available | boolean | 必須 | — |
steps | ReportStepOut の配列 | 必須 | — |
ReportMetricOut
指標(同じ面の2つの段の比率)。
| 項目 | 型 | 必須 | 説明 |
key | string | 必須 | — |
label | string | 必須 | — |
face | string | 必須 | 分子・分母の段が属する面の key |
basis | string | 必須 | — |
available | boolean | 必須 | — |
numerator | string | 必須 | 分子の段の key |
denominator | string | 必須 | 分母の段の key |
numerator_count | integer(null 可) | 必須 | — |
denominator_count | integer(null 可) | 必須 | — |
rate | number(null 可) | 必須 | 比率(1=100%)。分母が0・集計がまだなら null |
ReportStepOut
面の中の段の1つ。
| 項目 | 型 | 必須 | 説明 |
key | string | 必須 | — |
label | string | 必須 | — |
count | integer(null 可) | 必須 | 件数。集計がまだの時は null |
rate_from_prev | number(null 可) | 必須 | 親の段(rate_base)からの比率(0〜1)。親が無い・分母が0なら null |
rate_base | string(null 可) | 必須 | 比率の分母にした段の key。先頭の段は null |
ScenarioDuplicateIn
複製の指定。campaign_id 省略=元と同じキャンペーン。name 省略=「〇〇のコピー」。
| 項目 | 型 | 必須 | 説明 |
campaign_id | string(uuid)(null 可) | — | — |
name | string(null 可) | — | — |
ScenarioIn
| 項目 | 型 | 必須 | 説明 |
name | string | 必須 | — |
status | string(null 可) | — | 作成時は常に draft。APIキーは draft 以外を指定すると 422 値:draft・active・paused(今後増えることがある) |
abandon_wait_minutes | integer(null 可) | — | — |
ScenarioListOut
キャンペーンのシナリオの一覧(全件・ページングなし)。
ScenarioOut
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
campaign_id | string(uuid) | 必須 | — |
name | string | 必須 | — |
status | string | 必須 | 値:draft・active・paused(今後増えることがある) |
abandon_wait_minutes | integer(null 可) | 必須 | — |
effective_abandon_wait_minutes | integer | 必須 | — |
steps | StepOut の配列 | 必須 | — |
shop_name_max_chars | integer(null 可) | 必須 | — |
created_at | string(date-time) | 必須 | — |
updated_at | string(date-time) | 必須 | — |
ScenarioPatch
未送信=現状維持。abandon_wait_minutes の null はキャンペーンの値に戻す。
| 項目 | 型 | 必須 | 説明 |
name | string(null 可) | — | — |
status | string(null 可) | — | 値:draft・active・paused(今後増えることがある) |
abandon_wait_minutes | integer(null 可) | — | — |
ScenarioPresetListOut
シナリオのテンプレートの一覧(全件・ページングなし)。
ScenarioPresetOut
シナリオのテンプレート1件。作成は POST /campaigns/{campaign_id}/scenarios/from_preset。
| 項目 | 型 | 必須 | 説明 |
key | string | 必須 | テンプレートの識別子(作成時の preset_key) |
name | string | 必須 | — |
step_count | integer | 必須 | — |
steps | ScenarioPresetStepOut の配列 | 必須 | — |
available | boolean | 必須 | 今のプランで使えるか(ステップ数の上限で決まる) |
unavailable_reason | string(null 可) | 必須 | 使えない時の理由。使える時は null |
required_plan | string(null 可) | 必須 | 使えない時に、使えるようになる今より上で一番安いプラン。使える時・プランを変えても使えない時は null 値:free・starter・growth・pro(今後増えることがある) |
shop_name_max_chars | integer(null 可) | 必須 | このテンプレートの SMS が全部1通に収まる店名の最大字数。SMS が無ければ null |
ScenarioPresetStepOut
| 項目 | 型 | 必須 | 説明 |
channel | string | 必須 | 値:sms・email(今後増えることがある) |
delay_minutes | integer | 必須 | シナリオに入ってから送るまでの時間(分) |
SiteDetailOut
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
name | string | 必須 | — |
site_key | string | 必須 | — |
domains | string の配列 | 必須 | — |
cart_preset | string | 必須 | 値:ecforce・futureshop・samurai・tamago・cf7・generic(今後増えることがある) |
is_active | boolean | 必須 | — |
config_version | integer | 必須 | — |
config_published_at | string(date-time)(null 可) | 必須 | — |
config_publish_error | string(null 可) | 必須 | — |
publish_state | string | 必須 | 値:never・published・failed(今後増えることがある) |
privacy_policy_url | string(null 可) | 必須 | — |
external_transmission_url | string(null 可) | 必須 | — |
pp_url_changed_at | string(date-time)(null 可) | 必須 | — |
pp_check | object(項目は未掲載) | 必須 | — |
created_at | string(date-time) | 必須 | — |
updated_at | string(date-time) | 必須 | — |
snippets | object(項目は未掲載) | 必須 | 貼り付け用の設置コード一式。画面表示用。形は契約外(予告なく変わる)=この中の項目に依存した処理を組まない。CSP 用の形はクエリ nonce=true |
stop_page_url | string | 必須 | プライバシーポリシーに貼る配信停止ページの URL。訪問者が電話番号・メールアドレスを入力すると、そのテナントへの配信を停止する(登録の有無に関わらず同じ応答) |
SiteListOut
サイトの一覧(cursor 方式)。設置コード(snippets)は詳細だけに載る。
| 項目 | 型 | 必須 | 説明 |
data | SiteOut の配列 | 必須 | — |
next_cursor | string(null 可) | 必須 | — |
has_more | boolean | 必須 | — |
SiteOut
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
name | string | 必須 | — |
site_key | string | 必須 | — |
domains | string の配列 | 必須 | — |
cart_preset | string | 必須 | 値:ecforce・futureshop・samurai・tamago・cf7・generic(今後増えることがある) |
is_active | boolean | 必須 | — |
config_version | integer | 必須 | — |
config_published_at | string(date-time)(null 可) | 必須 | — |
config_publish_error | string(null 可) | 必須 | — |
publish_state | string | 必須 | 値:never・published・failed(今後増えることがある) |
privacy_policy_url | string(null 可) | 必須 | — |
external_transmission_url | string(null 可) | 必須 | — |
pp_url_changed_at | string(date-time)(null 可) | 必須 | — |
pp_check | object(項目は未掲載) | 必須 | — |
created_at | string(date-time) | 必須 | — |
updated_at | string(date-time) | 必須 | — |
SmsEstimateIn
| 項目 | 型 | 必須 | 説明 |
body | string | 必須 | 1文字以上 |
SmsEstimateOut
| 項目 | 型 | 必須 | 説明 |
chars | integer | 必須 | 課金通数の判定に使う文字数。URL の差し込み変数({{short_url}} / {{unsubscribe_url}})は送信時と同じ長さに展開した後で数える。UTF-16 のコードユニット数(絵文字は2)で、改行は1つにつき2 |
segments | integer | 必須 | 課金通数の目安。キャリア未確定のワーストケース(docomo=70文字超は66文字刻み) |
max_segments | integer | 必須 | 1本の SMS の通数の上限(本文上限で数えた値) |
StepIn
| 項目 | 型 | 必須 | 説明 |
id | string(uuid)(null 可) | — | — |
channel | string | 必須 | 値:sms・email(今後増えることがある) |
delay_kind | string | 必須 | 値:after_previous・after_entry・at_clock_time(今後増えることがある) |
delay_minutes | integer(null 可) | — | — |
send_at_time | string(null 可) | — | — |
message_id | string(uuid) | 必須 | — |
StepOut
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
step_no | integer | 必須 | — |
channel | string | 必須 | 値:sms・email(今後増えることがある) |
delay_kind | string | 必須 | 値:after_previous・after_entry・at_clock_time(今後増えることがある) |
delay_minutes | integer(null 可) | 必須 | — |
send_at_time | string(null 可) | 必須 | — |
message_id | string(uuid) | 必須 | — |
StepsIn
一括置換。並び順がそのまま step_no になる(画面の上下順)。
SuppressionCreatedOut
登録した除外1件と、その登録で取り消した配信予約の件数。
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
scope | string | 必須 | 値:tenant・campaign(今後増えることがある) |
campaign | object(項目は未掲載)(null 可) | 必須 | — |
kind | string | 必須 | 値:email・tel(今後増えることがある) |
value_masked | string(null 可) | 必須 | — |
pii_state | string | 必須 | 値:present・absent・error(今後増えることがある) |
reason | string | 必須 | 値:opt_out・manual・bounce・complaint・undeliverable(今後増えることがある) |
memo | string(null 可) | 必須 | — |
expires_at | string(date-time)(null 可) | 必須 | — |
active | boolean | 必須 | — |
deletable | boolean | 必須 | — |
created_at | string(date-time) | 必須 | — |
cancelled_deliveries | integer | 必須 | この登録で取り消した同じ宛先の配信予約の件数 |
SuppressionIn
| 項目 | 型 | 必須 | 説明 |
scope | string | — | 値:tenant・campaign(今後増えることがある) 既定値 "tenant" |
campaign_id | string(uuid)(null 可) | — | — |
expires_at | string(date-time)(null 可) | — | — |
memo | string(null 可) | — | — |
value | string(null 可) | — | — |
SuppressionListOut
除外リストの一覧(cursor 方式)。宛先はマスクした文字列だけ。
| 項目 | 型 | 必須 | 説明 |
data | SuppressionOut の配列 | 必須 | — |
next_cursor | string(null 可) | 必須 | — |
has_more | boolean | 必須 | — |
SuppressionOut
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
scope | string | 必須 | 値:tenant・campaign(今後増えることがある) |
campaign | object(項目は未掲載)(null 可) | 必須 | — |
kind | string | 必須 | 値:email・tel(今後増えることがある) |
value_masked | string(null 可) | 必須 | — |
pii_state | string | 必須 | 値:present・absent・error(今後増えることがある) |
reason | string | 必須 | 値:opt_out・manual・bounce・complaint・undeliverable(今後増えることがある) |
memo | string(null 可) | 必須 | — |
expires_at | string(date-time)(null 可) | 必須 | — |
active | boolean | 必須 | — |
deletable | boolean | 必須 | — |
created_at | string(date-time) | 必須 | — |
TakeoverRuleOut
| 項目 | 型 | 必須 | 説明 |
match_type | string | 必須 | 値:prefix・glob・regex・query・host(今後増えることがある) |
pattern | string | 必須 | — |
priority | integer(null 可) | 必須 | — |
TakeoverWarningOut
横取りの警告。稼働中の from_campaign が担当していた実URLをto_campaign の URL ルールが奪った。保存は成立している(止めない)。
TrafficCountsOut
| 項目 | 型 | 必須 | 説明 |
page_view | integer(null 可) | 必須 | — |
form_view | integer(null 可) | 必須 | — |
form_start | integer(null 可) | 必須 | — |
capture | integer(null 可) | 必須 | — |
UrlRuleIn
| 項目 | 型 | 必須 | 説明 |
role | string | 必須 | 値:landing・form・thanks(今後増えることがある) |
match_type | string | 必須 | 値:prefix・glob・regex・query・host(今後増えることがある) |
pattern | string | 必須 | — |
UrlRuleOut
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
role | string | 必須 | 値:landing・form・thanks(今後増えることがある) |
match_type | string | 必須 | 値:prefix・glob・regex・query・host(今後増えることがある) |
pattern | string | 必須 | — |
priority | integer | 必須 | — |
UrlRulesIn
一括置換。並び順がそのまま優先順位になる(画面のドラッグ順)。
UsageThresholdReachedData
| 項目 | 型 | 必須 | 説明 |
resource | string | 必須 | 枠の種類(SMS は通数・メールは件数) 値:sms_segments・emails(今後増えることがある) |
threshold | integer | 必須 | 到達した割合(%) 値:80・100(今後増えることがある) |
used | integer | 必須 | 使った量 |
limit | integer | 必須 | 枠の上限 |
period | object(null 可) | 必須 | 枠の期間(月額プランの請求期間)。Free の総量枠は期間が無く null |
WebhookDeliveryListOut
WebhookDeliveryOut
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
endpoint_id | string(uuid) | 必須 | — |
event | string | 必須 | 値:lead.captured・lead.abandoned・delivery.sent・delivery.failed・conversion.detected・usage.threshold_reached(今後増えることがある) |
status | string | 必須 | 値:pending・succeeded・failed(今後増えることがある) |
attempts | integer | 必須 | — |
next_attempt_at | string(date-time)(null 可) | 必須 | — |
response_code | integer(null 可) | 必須 | — |
response_body | string(null 可) | 必須 | — |
payload | WebhookEvent | 必須 | 送った本文(再送でも同じ) |
created_at | string(date-time) | 必須 | — |
delivered_at | string(date-time)(null 可) | 必須 | — |
WebhookEndpointCreatedOut
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
url | string | 必須 | — |
events | string の配列 | 必須 | 値:lead.captured・lead.abandoned・delivery.sent・delivery.failed・conversion.detected・usage.threshold_reached(今後増えることがある) |
status | string | 必須 | 値:active・disabled(今後増えることがある) |
consecutive_failures | integer | 必須 | — |
disabled_reason | string(null 可) | 必須 | 値:consecutive_failures(今後増えることがある) |
created_at | string(date-time) | 必須 | — |
updated_at | string(date-time) | 必須 | — |
secret | string | 必須 | — |
WebhookEndpointIn
| 項目 | 型 | 必須 | 説明 |
url | string(null 可) | — | — |
events | string の配列 | — | 値:lead.captured・lead.abandoned・delivery.sent・delivery.failed・conversion.detected・usage.threshold_reached(今後増えることがある) 既定値 [] |
WebhookEndpointListOut
WebhookEndpointOut
送信先(一覧・取得の形)。署名鍵 secret は含まない(作成の応答にだけ載る)。
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | — |
url | string | 必須 | — |
events | string の配列 | 必須 | 値:lead.captured・lead.abandoned・delivery.sent・delivery.failed・conversion.detected・usage.threshold_reached(今後増えることがある) |
status | string | 必須 | 値:active・disabled(今後増えることがある) |
consecutive_failures | integer | 必須 | — |
disabled_reason | string(null 可) | 必須 | 値:consecutive_failures(今後増えることがある) |
created_at | string(date-time) | 必須 | — |
updated_at | string(date-time) | 必須 | — |
WebhookEvent
Outbound Webhook で送信先へ送る本文(POST・Content-Type: application/json・User-Agent: OKAERI-Webhook/1)。type ごとに data の形が決まる。連絡先(電話・メール)は含まない(必要なら lead_id で取得する)。
受け方
- 2xx を返すと成功。それ以外の応答・接続できない時は再試行する(初回+再試行5回=最大6回・間隔は 1分 → 5分 → 30分 → 2時間 → 6時間)。リダイレクトは追わない。連続して失敗し続けた送信先は自動で停止する(
disabled_reason) - 少なくとも1回届ける=同じイベントが2回以上届くことがある。
id で重複を除く(再試行・再送でもid は同じ) - ヘッダ
X-OKAERI-Event=type と同じ値。X-OKAERI-Delivery=送信ごとの ID(再送で変わる)
署名の検証(ヘッダ X-OKAERI-Signature: t=<UNIX 秒>,v1=<16進>)
- ヘッダを
, で分け、t と v1 を取り出す <t>.<受け取った本文のバイト列> を、送信先の作成時に1回だけ受け取った secret(whsec_…)を鍵にして HMAC-SHA256 で計算し、16進(小文字)にする。本文は JSON として読み直したものでなく、受け取ったバイト列そのままを使う- 計算した値と
v1 を定数時間で比較する。一致しなければ破棄する t と受信時刻の差が許容範囲(推奨 5分)を超えたら破棄する(盗んだ本文の再送の対策)。t は送るたびにその時刻で付け直す(再試行・再送でも古くならない)
次のいずれか(type で分かれる):WebhookEventLeadCaptured・WebhookEventLeadAbandoned・WebhookEventDeliverySent・WebhookEventDeliveryFailed・WebhookEventConversionDetected・WebhookEventUsageThresholdReached
WebhookEventConversionDetected
conversion.detected の本文
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | イベントの ID=受け手の重複除去のキー(再試行・再送でも同じ) |
type | "conversion.detected" | 必須 | — |
created_at | string(date-time) | 必須 | イベントの発生時刻 |
tenant_id | string(uuid) | 必須 | テナントの ID |
data | ConversionDetectedData | 必須 | — |
{
"id": "00000000-0000-7000-8000-000000000001",
"type": "conversion.detected",
"created_at": "2026-01-01T00:00:00Z",
"tenant_id": "00000000-0000-7000-8000-000000000002",
"data": {
"lead_id": "00000000-0000-7000-8000-000000000003",
"campaign_id": "00000000-0000-7000-8000-000000000004",
"site_id": "00000000-0000-7000-8000-000000000005",
"conversion_source": "tag",
"converted_at": "2026-01-01T00:00:00Z"
}
}
WebhookEventDeliveryFailed
delivery.failed の本文
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | イベントの ID=受け手の重複除去のキー(再試行・再送でも同じ) |
type | "delivery.failed" | 必須 | — |
created_at | string(date-time) | 必須 | イベントの発生時刻 |
tenant_id | string(uuid) | 必須 | テナントの ID |
data | DeliveryEventData | 必須 | — |
{
"id": "00000000-0000-7000-8000-000000000001",
"type": "delivery.failed",
"created_at": "2026-01-01T00:00:00Z",
"tenant_id": "00000000-0000-7000-8000-000000000002",
"data": {
"delivery_id": "00000000-0000-7000-8000-000000000006",
"lead_id": "00000000-0000-7000-8000-000000000003",
"campaign_id": "00000000-0000-7000-8000-000000000004",
"channel": "sms",
"step": 1,
"status": "failed",
"error_code": "invalid_number"
}
}
WebhookEventDeliverySent
delivery.sent の本文
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | イベントの ID=受け手の重複除去のキー(再試行・再送でも同じ) |
type | "delivery.sent" | 必須 | — |
created_at | string(date-time) | 必須 | イベントの発生時刻 |
tenant_id | string(uuid) | 必須 | テナントの ID |
data | DeliveryEventData | 必須 | — |
{
"id": "00000000-0000-7000-8000-000000000001",
"type": "delivery.sent",
"created_at": "2026-01-01T00:00:00Z",
"tenant_id": "00000000-0000-7000-8000-000000000002",
"data": {
"delivery_id": "00000000-0000-7000-8000-000000000006",
"lead_id": "00000000-0000-7000-8000-000000000003",
"campaign_id": "00000000-0000-7000-8000-000000000004",
"channel": "sms",
"step": 1,
"status": "sent"
}
}
WebhookEventLeadAbandoned
lead.abandoned の本文
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | イベントの ID=受け手の重複除去のキー(再試行・再送でも同じ) |
type | "lead.abandoned" | 必須 | — |
created_at | string(date-time) | 必須 | イベントの発生時刻 |
tenant_id | string(uuid) | 必須 | テナントの ID |
data | LeadAbandonedData | 必須 | — |
{
"id": "00000000-0000-7000-8000-000000000001",
"type": "lead.abandoned",
"created_at": "2026-01-01T00:00:00Z",
"tenant_id": "00000000-0000-7000-8000-000000000002",
"data": {
"lead_id": "00000000-0000-7000-8000-000000000003",
"campaign_id": "00000000-0000-7000-8000-000000000004",
"abandoned_at": "2026-01-01T00:00:00Z"
}
}
WebhookEventLeadCaptured
lead.captured の本文
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | イベントの ID=受け手の重複除去のキー(再試行・再送でも同じ) |
type | "lead.captured" | 必須 | — |
created_at | string(date-time) | 必須 | イベントの発生時刻 |
tenant_id | string(uuid) | 必須 | テナントの ID |
data | LeadCapturedData | 必須 | — |
{
"id": "00000000-0000-7000-8000-000000000001",
"type": "lead.captured",
"created_at": "2026-01-01T00:00:00Z",
"tenant_id": "00000000-0000-7000-8000-000000000002",
"data": {
"lead_id": "00000000-0000-7000-8000-000000000003",
"campaign_id": "00000000-0000-7000-8000-000000000004",
"site_id": "00000000-0000-7000-8000-000000000005",
"channels": [
"email",
"sms"
]
}
}
WebhookEventUsageThresholdReached
usage.threshold_reached の本文
| 項目 | 型 | 必須 | 説明 |
id | string(uuid) | 必須 | イベントの ID=受け手の重複除去のキー(再試行・再送でも同じ) |
type | "usage.threshold_reached" | 必須 | — |
created_at | string(date-time) | 必須 | イベントの発生時刻 |
tenant_id | string(uuid) | 必須 | テナントの ID |
data | UsageThresholdReachedData | 必須 | — |
{
"id": "00000000-0000-7000-8000-000000000001",
"type": "usage.threshold_reached",
"created_at": "2026-01-01T00:00:00Z",
"tenant_id": "00000000-0000-7000-8000-000000000002",
"data": {
"resource": "sms_segments",
"threshold": 80,
"used": 800,
"limit": 1000,
"period": {
"start": "2026-01-01T00:00:00Z",
"end": "2026-02-01T00:00:00Z"
}
}
}