コンテンツにスキップ

KARTE の接客から処理を実行する

このユースケースでできること

Section titled “このユースケースでできること”

KARTEの接客で設定した配信条件を満たしたタイミングでイベント駆動タイプのCraft Functionが起動し、外部サービスのAPIへHTTPリクエストを送信できます。接客と外部連携をコードでつなぐ典型的なパターンです。

  • 接客の配信条件をきっかけに外部へ通知する
    • 特定のページ閲覧やボタンクリックをトリガーに、CRMやSlackへWebhookを送る
  • ユーザー行動に応じたリアルタイム連携
    • 接客で表示したコンテンツやユーザー情報を、外部APIへその場で転送する
  • KARTEの施策と外部システムをつなぐ
    • 接客アクションからファンクションを起動し、メール送信・データ更新などをコードで実行する

定期実行でデータを同期する場合は スケジュール実行する を、リクエストをきっかけに外部APIを呼び出す場合は 外部 API と連携する を参照してください。

イベント駆動タイプのファンクションとしてデプロイします。WEBHOOK_URL は実際の送信先に書き換えてください。

const WEBHOOK_URL = "https://example.com/api";
export default async function (data, { MODULES }) {
const { initLogger } = MODULES;
const logger = initLogger({ logLevel: "INFO" });
const { user_id, campaign_id } = data.jsonPayload.data;
const response = await fetch(WEBHOOK_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ user_id, campaign_id }),
});
if (!response.ok) {
logger.error("Webhook failed", { status: response.status });
throw new Error(`Webhook failed: ${response.status}`);
}
logger.info("Webhook sent", { user_id });
}

接客アクションからファンクションへ渡す data にユーザー情報変数を埋め込みます。

{
"user_id": "#{user_id}",
"campaign_id": "#{campaign_id}"
}

ファンクション側では data.jsonPayload.data から値を取り出し、外部APIへ転送します。接客の作成・公開手順は KARTE Craft を使った外部サービスへの Webhook 連携(サポート記事) も参照してください。

接客の配信条件を満たすユーザー行動を発生させ、外部サービス側でリクエストを受信できているか確認します。エラー時は ログの見方 でファンクションの実行ログを確認してください。