クイックスタート(イベント駆動タイプ)
このページでは、イベント駆動タイプ のCraft Functionsを作成し、トリガーを設定してログを確認するまでの最短の流れを説明します。
次の2つのハンズオンから、目的に合った方を選んでください。
- 接客をきっかけに実行する — KARTEのユーザー行動をトリガーにFunctionを起動する(サーバーサイドアクション)
- スケジュールで定期実行する — cron式で定期的にFunctionを起動する(スケジュール)
- KARTEアカウントにログインできること
- Craft 設定の編集 権限があること
接客をきっかけにCraft Functionsを実行する
Section titled “接客をきっかけにCraft Functionsを実行する”このハンズオンでは、KARTEの接客からイベント駆動タイプのCraft Functionsを起動します。
接客から渡されたデータをFunctionで受け取り、実行ログに出力できれば完了です。
このハンズオンでは、処理結果を確認しやすくするためログへ出力します。実運用では、同じ場所に外部サービスへの通知、データの加工、条件分岐などの独自ロジックを実装できます。
1. Functionを作成する
Section titled “1. Functionを作成する”[すべてのプロダクト]→[Craft]→[ファンクション]を開き、[新規作成]→[コードを書いて作成]を選択します。
以下を設定します。
- ファンクション名:
quickstart-event - ファンクションタイプ:イベント駆動
2. コードを書く
Section titled “2. コードを書く”[コード]タブに、次のコードを貼り付けます。
export default async function (data, { MODULES }) { const { initLogger } = MODULES; const logger = initLogger({ logLevel: "INFO" });
const input = data.jsonPayload.data;
logger.info("Craft Functionsがイベントを受け取りました", { receivedAt: new Date().toISOString(), input, });}[デプロイ]し、完了するまで待ちます。
3. 接客を設定する
Section titled “3. 接客を設定する”接客画面で[新規作成]から接客を作成し、[アクションを追加]で「Craft Functions連携」テンプレートからアクションを作成します。
次のように設定します。
- ファンクション名:
quickstart-event - name:
quickstart - data:
{ "user_id": "quickstart-user", "action": "view_pricing"}data には 静的変数・ユーザー情報変数(例: #{user_id})も埋め込めます。動作確認では固定値を使うと、ログの見比べがしやすくなります。
接客の配信トリガー(対象ユーザー・対象イベントなど)を設定し、保存・公開します。配信条件の詳細は 接客から実行する(サーバーサイドアクション) を参照してください。
4. 実行結果を確認する
Section titled “4. 実行結果を確認する”設定した接客を発火させたあと、Functionの[ログ]タブを開きます。
次のようなログが確認できれば成功です。
{ "message": "Craft Functionsがイベントを受け取りました", "receivedAt": "2026-08-12T00:00:00.000Z", "input": { "user_id": "quickstart-user", "action": "view_pricing" }}このハンズオンで確認できたこと
Section titled “このハンズオンで確認できたこと”- KARTEのユーザー行動をきっかけにFunctionを起動できる
- 接客から任意のデータをFunctionへ渡せる
- Function内でJavaScriptによる独自処理を実行できる
今回は受け取ったデータをログへ出力しました。実際の施策では、ログ出力部分を外部通知やデータ加工などの処理に置き換えることで、KARTEの標準機能を拡張できます。Webhook連携の応用例は KARTE の接客から処理を実行する も参照してください。
スケジュールで定期実行する
Section titled “スケジュールで定期実行する”このハンズオンでは、スケジュール トリガーでFunctionを定期実行します。スケジュール実行のたびに外部APIからデータを取得し、結果をログに出力する最小構成です。
1. 管理画面を開く
Section titled “1. 管理画面を開く”- KARTE管理画面にログインする
- [すべてのプロダクト]>[Craft]>[ファンクション]を選択する
2. ファンクションを作成する
Section titled “2. ファンクションを作成する”- [新規作成]>[コードを書いて作成]を選択する
- ファンクション名を任意で設定する(例:
scheduled-api-fetch) - [設定]タブで、ファンクションのタイプをイベント駆動タイプに設定する
- [コード]タブに次を貼り付ける
const API_URL = "https://api.github.com/zen";
export default async function (data, { MODULES }) { const { initLogger } = MODULES; const logger = initLogger({ logLevel: "INFO" });
const startedAt = new Date().toISOString(); logger.info("Scheduled job started", { startedAt });
const response = await fetch(API_URL); if (!response.ok) { logger.error("API request failed", { status: response.status }); throw new Error(`API request failed: ${response.status}`); }
const quote = await response.text();
logger.info("Scheduled job completed", { startedAt, quote, finishedAt: new Date().toISOString(), });}- [デプロイ]し、完了するまで待つ。
3. スケジュールトリガーを設定する
Section titled “3. スケジュールトリガーを設定する”スケジュールはイベント駆動タイプのファンクションでのみ利用できます。
- デプロイしたファンクションの詳細画面で[設定]タブを開く
- [スケジュール]セクションの[作成]を選択する
- cron式に
* * * * *を入力して[保存]を選択する(1分ごとに実行)
動作確認用の設定です。確認後は不要なスケジュールを削除するか、cron式を変更してください。設定例は 定期的に実行する(スケジュール) を参照してください。
4. 動作確認する
Section titled “4. 動作確認する”- ファンクション詳細画面の[ログ]タブを開く
- スケジュールの次の実行時刻まで待つ(最大1分程度)
- 実行履歴に
Scheduled job completedと、GitHub APIから取得した文言(quote)が出力されていれば成功です
ログが表示されない場合は、ファンクションの状態が SUCCESS であること、スケジュールが有効であることを確認してください。詳細は ログの見方 を参照してください。
次のステップ
Section titled “次のステップ”- イベント駆動タイプの記法を学ぶ → イベント駆動タイプのファンクションを作成する
- 接客トリガーの詳細 → 接客から実行する(サーバーサイドアクション)
- 利用できるトリガーを確認する → ファンクション実行トリガー一覧
- 実装レシピを探す → ユースケース
- 定期実行の応用例 → スケジュール実行する
- HTTPタイプの手順 → クイックスタート(HTTPタイプ)