2分で読めます
Zapier catch-hook
Zenovay イベントを Zapier がサポートする 5,000 以上のアプリ(Notion、Airtable、HubSpot、Linear、Trello、Gmail など)に接続します。
このレシピは Zapier の Webhooks by Zapier → Catch Hook トリガーを使用します。
アウトバウンド webhook は Zenovay の Pro+ 機能です。Zapier の Catch Hook トリガーは Zapier Free プラン以上で利用できます。Zapier Premium の webhook(Catch Raw Hook)は Zapier Starter プラン以上が必要です。
1. Catch Hook トリガーで Zap を作成する
- Zapier で Create Zap をクリックします。
- トリガーとして Webhooks by Zapier → Catch Hook を選択します。
- 「Pick off a Child Key」の入力画面はスキップします(空欄のままにします。イベントペイロード全体が必要です)。
- Zapier が Custom Webhook URL を表示します(例:
https://hooks.zapier.com/hooks/catch/12345678/abcdef/)。コピーしてください。
2. Zenovay に webhook を追加する
app.zenovay.comで Settings → Webhooks に移動します。- この Zap にイベントを送信するウェブサイトを選択します。
- Add webhook をクリックします。
- 以下を入力します。
- Name:
Zapier — <Zap の内容>(例:Zapier — Notion に追加) - URL:ステップ 1 の Zapier Catch Hook URL を貼り付けます
- Events:Zap が反応すべきイベントを選択します
- Name:
- Create webhook をクリックします。
- テストイベントを送信(紙飛行機アイコン)をクリックします。
3. Zapier でトリガーをテストする
- Zapier に戻り、Test trigger をクリックします。Zapier に Zenovay のテストイベントペイロードが表示されるはずです。
- Continue with selected record をクリックします。
- Zenovay ペイロードのフィールドを使って Zap の残りの部分(アクションステップ)を構築します。よく使われるフィールド:
event_type(例:traffic_spike、goal_completed)website_iddata.*(イベント固有のペイロード)timestamp
4. よくある Zap のレシピ
| この Zenovay イベントが発生したとき… | …Zapier でこのアクションを実行する |
|---|---|
goal_completed | Airtable に行を追加 / HubSpot CRM コンタクトを更新する |
traffic_spike | オンコール担当者に Slack DM を送る |
website_down | 緊急の Linear issue を作成 / Twilio で誰かに連絡する |
error_spike | Sentry アラートを開く(または PagerDuty でエスカレーションする) |
5. Zenovay の署名を検証する(高度な設定)
Zapier の Catch Hook はネイティブで HMAC 署名を検証しません。署名検証が必要な本番環境の Zap(例:コンプライアンス要件)では、検証・転送を行う Cloudflare Worker を Zap の前に置きます。
import { createHmac } from 'crypto';
export default {
async fetch(req) {
const rawBody = await req.text();
const signature = req.headers.get('x-zenovay-signature') || '';
const provided = signature.replace(/^sha256=/, '');
const expected = createHmac('sha256', YOUR_WEBHOOK_SECRET)
.update(rawBody)
.digest('hex');
if (provided !== expected) return new Response('invalid signature', { status: 401 });
// Forward to Zapier
await fetch(ZAPIER_CATCH_HOOK_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: rawBody,
});
return new Response('ok');
},
};
webhook シークレットは Settings → Webhooks → webhook カードの目のアイコンをクリックすると確認できます。
トラブルシューティング
- Zapier で「We didn't find a request」と表示される:Zapier で Test trigger をクリックした後に Zenovay でテストイベントを送信をクリックしてください。Zapier は約 10 分間リッスンします。
- 同じデータで Zap が繰り返しトリガーされる:Zapier の Catch Hook は重複排除を行いません。べき等性が必要な場合は、Zenovay がペイロードで送信する
idempotency_keyでフィルタリングするか、アクションステップで既存レコードを確認するFilter by Zapierステップを追加してください。 - 長いフィールドが切り詰められる:Zapier はエディタ内のレスポンスサンプルを切り詰めますが、実行時にはフルペイロードが配信されます。
関連記事
このページは役に立ちましたか?