การบูรณาการของนักพัฒนา

7Stamp Webhooks

พร้อมใช้งาน

พุชทุกกิจกรรมความภักดีจาก 7Stamp ไปยังระบบของคุณเองแบบเรียลไทม์ ไม่มีการโพลและไม่มีการเรียก API ตามกำหนดเวลา เหตุการณ์มาถึงตามคำร้องขอ HTTPS POST ภายในไม่กี่วินาทีที่เกิดขึ้น

ใช้ webhooks เพื่อให้ CRM, ERP หรือแบ็กเอนด์ที่กำหนดเองของคุณซิงค์กับสิ่งที่เกิดขึ้นในด้านความภักดี: ใครเข้าร่วม ใครได้รับตราประทับ ใครแลกบัตรกำนัล ใครเป็นผู้ส่งของขวัญวันเกิด และใครกลายเป็นผู้ที่ไม่ได้ใช้งาน จากนั้นระบบของคุณจะตัดสินใจว่าจะทำอย่างไรกับข้อมูลนั้น

อะไร คุณสามารถทำอะไรกับ webhooks

Webhooks เป็นด้านขาออกของสแต็กการรวม โดยจะสะท้อนกิจกรรมของลูกค้าและการให้รางวัลไปยังระบบที่คุณไว้วางใจอยู่แล้วในด้านการขาย การบริการ การวิเคราะห์ และการส่งข้อความ

สะท้อนประวัติความภักดีไปยัง CRM ของคุณ

ทริกเกอร์การประทับตรา บัตรกำนัล วันเกิด และการไม่มีกิจกรรมทุกรายการจะเข้าสู่บันทึกลูกค้าใน CRM ของคุณ คุณจะเห็นไทม์ไลน์สำหรับสมาชิกแบบเต็มถัดจากการขาย การโทร และตั๋วโดยไม่ต้องเข้าสู่ระบบ 7Stamp

ทริกเกอร์สแต็กข้อความของคุณเอง

เมื่อลูกค้าแลกบัตรกำนัล ให้ส่ง SMS ขอบคุณจากเกตเวย์ SMS ที่มีอยู่ของคุณ เมื่อลูกค้าบรรลุเป้าหมาย โพสต์ฉลองใน Slack เมื่อมีคนไม่มีการใช้งาน ให้กำหนดเส้นทางให้กับผู้จัดการบัญชีของคุณ

เพิ่มประสิทธิภาพการวิเคราะห์และการกระทบยอด

สตรีมเหตุการณ์ลงในเครื่องมือ BI คลังสินค้า หรือไปป์ไลน์การกระทบยอดของคุณ จับคู่การแลกบัตรกำนัลกับใบเสร็จรับเงิน POS และคำนวณความภักดี ROI ในตัวชี้วัดของคุณเอง

ประเภทเหตุการณ์การ์ด

SCAN — การ์ดได้รับการดำเนินการ 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 การนำส่ง idempotent

จัดเก็บคีย์การประมวลผลที่ทนทานหรือลายนิ้วมือของเหตุการณ์ก่อนที่จะกระตุ้นให้เกิดผลข้างเคียง หากผู้รับของคุณเห็นการจัดส่งแบบเดียวกันอีกครั้ง ไม่ควรเพิ่มบันทึก ใบสำคัญ หรือข้อความ CRM ที่ซ้ำกัน ถือว่าจุดปลาย 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 integrated layer, 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, voucher หรือผลข้างเคียงของการส่งข้อความหลังจากที่คุณมีการจัดการที่ปลอดภัยสำหรับการเล่นซ้ำและการมอนิเตอร์ความล้มเหลวเท่านั้น

อ็อพชันแบบไม่มีโค้ด: Make และ Zapier

ใน Make ให้ใช้ Webhooks → Custom webhook เพื่อสร้าง URL ที่รับ และวางลงในโปรไฟล์ 7Stamp ใน Zapier ให้ใช้ Webhooks by Zapier → Catch Hook เพื่อจุดประสงค์เดียวกัน โปรไฟล์ 7Stamp เป็นเจ้าของการสมัครสมาชิก เนื่องจาก API ปัจจุบันไม่เปิดเผยจุดปลายการลงทะเบียน webhook อัตโนมัติ

การรักษาความปลอดภัยและสัญญาการส่งมอบ

ใช้ส่วน Webhooks ของเอกสารอ้างอิง OpenAPI สาธารณะเป็นแหล่งข้อมูลสำหรับสคีมาเพย์โหลดปัจจุบัน เนื้อหาของคำขอเป็นซองข้อมูล: profile_id และ profile_name ระบุโปรไฟล์ 7Stamp ส่วน event_id ระบุเหตุการณ์ และตัวเหตุการณ์บัตรเองอยู่ใน data (สำหรับ URL ของ Make หรือ Zapier คีย์คือ card_event) การส่งแต่ละครั้งมีการลงนามในส่วนหัวเดียว คือ X-Webhook-Signature: t=…,s=… คำนวณ HMAC-SHA256 ของ t ต่อด้วยเนื้อหาคำขอดิบ โดยใช้รหัสลับของ webhook ของคุณ เข้ารหัสผลลัพธ์เป็น hex แล้วเปรียบเทียบกับ s รหัสลับอยู่ในหน้าของ webhook ใน 7Stamp Admin ใช้ X-Webhook-Event-Id เพื่อทิ้งการส่งซ้ำ: การลองใหม่จะได้รับการลงนามอีกครั้งด้วย t ใหม่ คุณยังป้องกันเอนด์พอยต์ด้วย Basic Auth ได้ด้วย กำหนดให้ใช้ HTTPS และอย่าให้ URL ของตัวรับปรากฏในบันทึกสาธารณะ

คำถามที่พบบ่อย

ฉันสามารถเลือกเฉพาะกิจกรรม webhook บางรายการได้หรือไม่

ไม่ได้ webhook ของ 7Stamp จะได้รับเหตุการณ์บัตรทุกรายการของโปรไฟล์ ให้กรองตาม data.event_type ในตัวรับของคุณ ส่วนใน Make และ Zapier เหตุการณ์จะอยู่ภายใต้ card_event ดังนั้นให้กรองตาม card_event.event_type

ฉันจะเชื่อมต่อ webhooks กับ Make หรือ Zapier ได้อย่างไร

สร้าง webhook ที่ได้รับใน Make หรือ Catch Hook ใน Zapier คัดลอก URL ที่สร้างขึ้น จากนั้นวางลงในการตั้งค่า webhook ของโปรไฟล์ 7Stamp และส่งเหตุการณ์ทดสอบ

ฉันจะจับคู่เหตุการณ์กับผู้ติดต่อ CRM ของฉันได้อย่างไร

ใช้ data.external_id และ data.external_source หากมี: ค่าเหล่านี้จะส่งกลับมาในทุก webhook สำหรับบัตรที่คุณออกผ่าน API ด้วย ID ของคุณเอง ลูกค้าที่รับบัตรด้วยตนเองจะไม่มี External ID ดังนั้นให้จับคู่ลูกค้าเหล่านั้นด้วย data.user.email ที่อยู่ “Hide My Email” ของ Apple เป็นที่อยู่สำหรับส่งต่อ ไม่ใช่ที่อยู่ใน CRM ของคุณ

จะตรวจสอบได้อย่างไรว่า webhook มาจาก 7Stamp?

แยกส่วนหัว X-Webhook-Signature ออกเป็น t และ s คำนวณ HMAC-SHA256 ของ t ต่อด้วยเนื้อหาคำขอดิบ โดยใช้รหัสลับของ webhook จาก 7Stamp Admin เข้ารหัสผลลัพธ์เป็น hex แล้วเปรียบเทียบกับ s ใช้ t ให้ตรงตามที่ส่งมาทุกประการ และใช้เนื้อหาเป็นไบต์ดิบตามที่ได้รับ ก่อนการแยกวิเคราะห์ JSON ใดๆ ทิ้งการส่งที่มี X-Webhook-Event-Id ซึ่งคุณประมวลผลไปแล้ว: การลองใหม่จะได้รับการลงนามอีกครั้งด้วย t ใหม่

ขั้นตอนถัดไป

พร้อมส่งกิจกรรมการ์ดใบแรกหรือยัง?

สร้างตัวรับ วาง HTTPS URL ลงในโปรไฟล์ รันการสแกนแบบใช้แล้วทิ้ง และตรวจสอบความถูกต้องของ External ID ที่ตรงกันก่อนที่จะเปิดใช้งานดาวน์สตรีมอัตโนมัติ