Hook v2からCraft Functionsを実行する
Hook v2は、KARTE内で発生したイベントをトリガーとして、指定したチャネルへデータを送信する機能です。
Hook v2全体の仕組みや、Webhook・Amazon EventBridgeを含むチャネルの種類については、Hook v2概要を確認してください。
このページでは、Hook v2のチャネルにKARTE Craftを指定し、イベント駆動タイプのCraft Functionsを実行する方法を説明します。

Hook v2のトリガーとチャネル
Section titled “Hook v2のトリガーとチャネル”Hook v2は、処理を開始する「トリガー」と、データの送信先となる「チャネル」を組み合わせて設定します。
- トリガー
- KARTE Talkのメッセージ送信、Datahub Jobflowの開始・終了、KARTE Craft(Craft Functions、Craft Sites、Craft Cross CMS)の操作など
- チャネル
- Webhook、Amazon EventBridge、KARTE Craft
KARTE Craftをチャネルに指定すると、トリガーの発生に応じて、指定したCraft Functionsが実行されます。
利用できるトリガー
Section titled “利用できるトリガー”Craft Functionsは、KARTE Talk、Datahub、KARTE Craftなどで発生したイベントをトリガーとして実行できます。
KARTE Talk・Datahubで利用できるトリガーについては、Hook v2概要を確認してください。
KARTE Craftの操作を起点とするトリガーについては、KARTE Craft関連トリガーを確認してください。
KARTE Craft関連トリガー
Craft Functions、Craft Sites及びCraft Cross CMSを管理画面またはAPIで操作した際に、Hook v2のトリガーを発火できます。
| トリガー | 必要なScope | type |
|---|---|---|
| ファンクションの作成時 | beta.craft.function.metadata.findById | craft/functions/function/create |
| ファンクションの更新時 | beta.craft.function.metadata.findById | craft/functions/function/update |
| ファンクションの削除時 | beta.craft.function.metadata.findById | craft/functions/function/delete |
| サイトコンテンツのアップロード時 | beta.craft.sites.content.get | craft/sites/content/upload |
| サイトコンテンツの公開状態の変更時 | beta.craft.sites.content.get | craft/sites/content/visibilityUpdated |
| サイトコンテンツの削除時 | beta.craft.sites.content.get | craft/sites/content/remove |
| サイトコンテンツのコピー時 | beta.craft.sites.content.get | craft/sites/content/copy |
| サイトコンテンツの移動時 | beta.craft.sites.content.get | craft/sites/content/move |
| サイトコンテンツのリネーム時 | beta.craft.sites.content.get | craft/sites/content/rename |
| サイトディレクトリの削除時 | beta.craft.sites.content.get | craft/sites/directory/remove |
| サイトディレクトリのコピー時 | beta.craft.sites.content.get | craft/sites/directory/copy |
| サイトディレクトリの移動時 | beta.craft.sites.content.get | craft/sites/directory/move |
| サイトディレクトリの公開状態の変更時 | beta.craft.sites.content.get | craft/sites/directory/visibilityUpdated |
| CMSコンテンツの作成時 | beta.cms.content.get | cms/content/create |
| CMSコンテンツの更新時 | beta.cms.content.get | cms/content/update |
| CMSコンテンツの公開時 | beta.cms.content.get | cms/content/publish |
| CMSコンテンツの非公開時 | beta.cms.content.get | cms/content/unpublish |
| CMSコンテンツの削除時 | beta.cms.content.get | cms/content/delete |
| CMSコンテンツの並び順変更時 | beta.cms.content.get | cms/content/updateOrder |
typeは、どの操作をトリガーとして送信されたデータかを識別するための値です。
Hook v2のチャネル・重複排除・ステータスなどの共通仕様については、Hook v2概要を確認してください。
次の手順でCraft FunctionsのHook v2トリガーを設定します。この設定により、KARTE Talkのメッセージ送信やDatahubジョブフローの開始終了といった各種トリガーからファンクションを実行できます。
- 事前にイベント駆動タイプのファンクションをデプロイしておきます。
- アプリを利用する を参考にAPI v2アプリを作成します。
- 利用するトリガーに応じて、API v2アプリへ必要なScopeを設定します。
- KARTE Talk関連トリガーは、Developer PortalのHook v2概要を確認してください。
- Datahub関連トリガーは、Developer PortalのHook v2概要を確認してください。
- KARTE Craft関連トリガーは、このページの「KARTE Craft関連トリガー」を確認してください。
- 作成したアプリの詳細画面を開きます。
- 「hook設定」タブで「編集」を選択し、トリガーと実行するFunctionを指定して「保存」を選択します。

Craft Functionsが受け取るデータ
Section titled “Craft Functionsが受け取るデータ”dataのフォーマットは イベント駆動タイプのファンクションが受け取るデータ をご確認ください。
kindは `“karte/apiv2-hook” が入ります。jsonPayloadのフォーマットはHook v2概要 の各HookのRequest Bodyをご確認ください。
Message Hook でFunctionを実行した場合の data の例です。
{ "id": "3218655a-83e5-4a2d-a298-d5f56e58c365", "kind": "karte/apiv2-hook", "jsonPayload": { "id": "0759a6b7-cd92-458c-ae04-82ac86131b52", "data": { "content": { "text": "test message", "image": null }, "sender_id": null, "account_id": null, "date": "2023-02-20T07:07:46.237Z", "user_id": "", "visitor_id": "vis-xxxxxxxxxxx", "profile_name": null }, "extra": { "access_uri": { "protocol": "https", "url": "https://example.com/", "host": "example.com", "query": "", "queryKey": {}, "anchor": "test", "path": "/" } }, "event_type": "talk/message/sendFromUser", "api_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "client_id": "xxxxxxxxxxxx" }, "timestamp": "2023-02-20T07:07:48.125Z"}