開発者統合

7Stamp Webhook

利用可能

7Stamp からのすべてのロイヤルティ イベントをリアルタイムで独自のシステムにプッシュします。ポーリングやスケジュールされた API 通話はありません。イベントは、発生後数秒以内に HTTPS POST リクエストとして到着します。

Webhook を使用して、CRM、ERP、またはカスタム バックエンドをロイヤルティ側で起こっていること (誰が参加したのか、誰がスタンプを取得したのか、誰がバウチャーを引き換えたのか、誰が誕生日プレゼントをトリガーしたのか、誰が非アクティブになったのか) と同期させます。その後、システムがそのデータをどう扱うかを決定します。

Webhook でできること

Webhook は、統合スタックのアウトバウンド側です。これらは、顧客と報酬のアクティビティを、販売、サービス、分析、メッセージングですでに信頼しているシステムに反映します。

ロイヤルティ履歴をCRM にミラーリングします

すべてのスタンプ、クーポン、誕生日、および非アクティブのトリガーは、CRM の顧客レコードに記録されます。 7Stamp にログインしなくても、販売、通話、チケットの横に完全なロイヤルティ タイムラインが表示されます。

独自のメッセージング スタックをトリガーします

顧客がクーポンを引き換えたら、既存の SMS ゲートウェイから感謝のメッセージ SMS を送信します。顧客がゴールしたら、Slack でお祝いを投稿します。誰かが非アクティブになった場合は、ケースをアカウント マネージャーにルーティングします。

分析と調整の強化

BI ツール、ウェアハウス、または調整パイプラインにイベントをストリーミングします。バウチャー引き換え額と POS 領収書を照合し、独自の指標でロイヤルティ ROI を計算します。

カード イベント タイプ

SCAN — カードがスキャン/stamp アクションを受け取りました。
REWARD_EARNED — カードで報酬を獲得しました。
VOUCHER_ISSUED — バウチャーが発行されました。
VOUCHER_REDEEMED — バウチャーが引き換えられました。
LOTTERY_WIN — 宝くじの結果、当たりました。
DELIVERY_INSERT — 配送挿入フローが記録されました。
CARD_JOINED — 顧客がカードに参加しました。
CARD_CAMPAIGN — カードキャンペーンイベントが発生しました。
BIRTHDAY_GREETING — 誕生日の挨拶イベントが発生しました。
ADMIN_VOUCHER_ISSUE — 管理者がバウチャーを発行しました。
CARD_ADDED_TO_WALLET — 顧客がカードをウォレットに追加しました。
CARD_REMOVED_FROM_WALLET — 顧客が財布からカードを取り出しました。

安全な Webhook レシーバーを構築する

耐久性のある処理後に確認する

エンドポイントは HTTPS を受け入れる必要がありますPOST、リクエストの形式を検証し、イベントを永続化またはキューに入れてから、成功した 2xx レスポンスを返します。安全にキューに入れることができる場合は、確認応答の前に低速の CRM またはメッセージング コールを行わないでください。

External ID

関連するすべてのイベントには、カードの作成またはスキャン時に使用した External ID およびオプションの External Source が含まれます。このペアを使用すると、名前やメールアドレスから推測することなく、自分の CRM、POS、または注文記録を更新できます。

Make 配信べき等

副作用を引き起こす前に、耐久性のある処理キーまたはイベント フィンガープリントを保存します。受信者が同じ配信を再度見た場合、重複したメモ、伝票、またはメッセージを追加しないでください。エンドポイント URL をシークレットとして扱います。

イベント ペイロードの形状の例

これを自動化ステップにコピーします json
{
  "entity": "card_event",
  "action": "created",
  "entity_id": 707,
  "event_id": "8f05e58decec48e09d328f0edebbacf6",
  "profile_id": 2,
  "profile_name": "Your Business",
  "profile_lang": "en",
  "data": {
    "event_type": "SCAN",
    "scanned_at": "2026-10-01T09:19:24.179424",
    "user_card_id": 10,
    "card_template_id": 14,
    "card_template_name": "Collect your stamps!",
    "stamps_added": 3,
    "stamps_before": 1,
    "stamps_after": 4,
    "amount": null,
    "external_order_id": "ORDER-1001",
    "workplace": { "id": 4, "name": "Bar Counter" },
    "device_type": null,
    "external_id": "odoo_contact_8821",
    "external_source": "odoo",
    "issued_vouchers": [
      {
        "id": 174,
        "unique_code": "100425813507",
        "stamp_number": 4,
        "issued_at": "2026-10-01T09:19:24.191836",
        "expires_at": "2027-01-01T23:59:59",
        "status": "ACTIVE",
        "voucher_template_id": 58,
        "voucher_description": "Free coffee",
        "voucher_image_url": "https://..."
      }
    ],
    "achieved_goals": [],
    "user": {
      "id": 2,
      "name": "Anna",
      "full_name": "Anna Smith",
      "email": "anna@example.com",
      "telegram_chat_id": null,
      "telegram_username": null,
      "whatsapp_phone": null,
      "birth_date": null
    }
  }
}

Webhook の構成とテスト

01

バックエンドに HTTPS エンドポイント、CRM 統合レイヤー、Make Webhook、または Zapier を作成しますCatch Hook。 Make URL をコピーする前に、必ず宛先を制御してください。

02

7Stamp Admin で、Stamp Cards → API & Integrations → Webhooks を開きます。

03

エンドポイントの URL を追加します。Webhook はプロファイルのすべてのカードイベントを受信するため、受信側で data.event_type によってフィルタリングしてください。

04

プロファイル設定を保存し、使い捨てテスト スキャンまたはカード アクションをトリガーしてイベントを生成します。

05

受信したペイロードを検査します。 External ID と External Source を予期されるレコードと照合し、受信者が成功した応答を返すことを確認します。

06

CRM、バウチャー、またはメッセージングの副作用は、リプレイセーフな処理と障害の監視が行われた後にのみ有効にしてください。

コードなしオプション: Make および Zapier

Make では、Webhooks → Custom webhook を使用して受信 URL を生成し、7Stamp プロファイルに貼り付けます。 Zapier では、同じ目的で Webhooks by Zapier → Catch Hook を使用します。現在の API は自動 Webhook 登録エンドポイントを公開しないため、7Stamp プロファイルはサブスクリプションを所有します。

セキュリティおよび配信契約

現在のペイロードスキーマについては、公開 OpenAPI リファレンスの Webhooks セクションを参照してください。本文はエンベロープ形式です。profile_id と profile_name は 7Stamp プロファイルを示し、event_id はイベントを識別し、カードイベント自体は data に入っています(Make または Zapier の URL の場合、キーは card_event です)。各配信は 1 つのヘッダー X-Webhook-Signature: t=…,s=… で署名されます。Webhook シークレットを使って、t に生のリクエスト本文を加えたものに対して HMAC-SHA256 を計算し、hex エンコードして s と比較してください。シークレットは 7Stamp Admin の Webhook ページにあります。X-Webhook-Event-Id を使って重複した配信を破棄してください。再試行は新しい t で再署名されます。Basic Auth でエンドポイントを保護することもできます。HTTPS を必須とし、受信側の URL を公開ログに残さないでください。

よくある質問

特定の Webhook イベントのみを選択できますか?

いいえ。7Stamp の Webhook は、プロファイルのすべてのカードイベントを受信します。受信側で data.event_type によってフィルタリングしてください。Make と Zapier ではイベントが card_event の下に届くため、card_event.event_type でフィルタリングしてください。

Webhook を Make または Zapier に接続するにはどうすればよいですか?

Make で受信 Webhook を作成するか、Zapier で Catch Hook を作成し、生成された URL をコピーして、7Stamp プロファイルの Webhook 設定に貼り付けて、テスト イベントを送信します。

イベントをCRM 連絡先に一致させるにはどうすればよいですか?

data.external_id と、存在する場合は data.external_source を使用してください。これらは、独自の ID を付けて API 経由で発行したカードのすべての Webhook で返されます。お客様が自分でカードを取得した場合は External ID がないため、data.user.email で照合してください。Apple の「Hide My Email」のアドレスはリレーアドレスであり、CRM にあるアドレスではありません。

Webhook が 7Stamp から送信されたことは、どう確認すればよいですか?

X-Webhook-Signature ヘッダーを t と s に分割し、7Stamp Admin の Webhook シークレットを使って、t に生のリクエスト本文を加えたものに対して HMAC-SHA256 を計算し、hex エンコードして s と比較してください。t は送信されたとおりに、本文は JSON を解析する前に受信した生のバイト列として扱います。X-Webhook-Event-Id がすでに処理済みの配信は破棄してください。再試行は新しい t で再署名されます。

次のステップ

最初のカードイベントを送信する準備はできましたか?

受信機を作成し、その HTTPS URL をプロファイルに貼り付け、使い捨てスキャンを実行し、ダウンストリーム自動化を有効にする前に一致する External ID を検証します。