Integrasi pengembang

7Stamp Webhook

Tersedia

Dorong setiap acara loyalitas dari 7Stamp ke sistem Anda sendiri secara real-time. Tidak ada polling dan tidak ada panggilan API terjadwal. Acara tiba sesuai permintaan HTTPS POST dalam beberapa detik setelah kejadian.

Gunakan webhook untuk menjaga CRM, ERP, atau backend khusus Anda tetap sinkron dengan apa yang terjadi di sisi loyalitas: siapa yang bergabung, siapa yang mendapat stempel, siapa yang menukarkan voucher, siapa yang memicu hadiah ulang tahun, dan siapa yang menjadi tidak aktif. Kemudian sistem Anda memutuskan apa yang harus dilakukan dengan data tersebut.

Apa yang dapat Anda lakukan dengan webhook

Webhook adalah sisi keluar dari tumpukan integrasi. Mereka mencerminkan aktivitas pelanggan dan penghargaan ke dalam sistem yang Anda percayai untuk penjualan, layanan, analitik, dan pengiriman pesan.

Cerminkan riwayat loyalitas ke CRM Anda

Setiap pemicu prangko, voucher, ulang tahun, dan ketidakaktifan masuk ke catatan pelanggan di CRM Anda. Anda melihat garis waktu loyalitas lengkap di samping penjualan, panggilan, dan tiket tanpa masuk ke 7Stamp.

Picu tumpukan pesan Anda sendiri

Saat pelanggan menukarkan voucher, kirimkan ucapan terima kasih SMS dari gerbang SMS Anda yang ada. Saat pelanggan mencapai sasaran, posting perayaan di Slack. Jika seseorang menjadi tidak aktif, sampaikan kasus tersebut ke manajer akun Anda.

Analisis dan rekonsiliasi kekuatan

Alirkan peristiwa ke dalam alat BI, gudang, atau jalur rekonsiliasi Anda. Cocokkan penukaran voucher dengan POS tanda terima dan hitung loyalitas ROI dalam metrik Anda sendiri.

Jenis peristiwa kartu

SCAN — Kartu menerima tindakan pemindaian/stamp.
REWARD_EARNED — Hadiah diperoleh pada kartu.
VOUCHER_ISSUED — Voucher telah diterbitkan.
VOUCHER_REDEEMED — Voucher telah ditukarkan.
LOTTERY_WIN — Lotere menghasilkan kemenangan.
DELIVERY_INSERT — Aliran penyisipan pengiriman dicatat.
CARD_JOINED — Seorang pelanggan bergabung dengan sebuah kartu.
CARD_CAMPAIGN — Terjadi peristiwa kampanye kartu.
BIRTHDAY_GREETING — Acara ucapan ulang tahun terjadi.
ADMIN_VOUCHER_ISSUE — Administrator mengeluarkan voucher.
CARD_ADDED_TO_WALLET — Pelanggan menambahkan kartu ke dompet mereka.
CARD_REMOVED_FROM_WALLET — Seorang pelanggan mengeluarkan kartu dari dompetnya.

Bangun penerima webhook yang aman

Akui setelah penanganan yang lama

Titik akhir Anda harus menerima HTTPS POST, validasi bentuk permintaan, pertahankan atau antri acara, lalu kembalikan respons 2xx yang berhasil. Jangan melakukan panggilan lambat CRM atau pengiriman pesan sebelum pemberitahuan jika dapat diantri dengan aman.

Berkorelasi dengan External ID

Setiap peristiwa terkait dapat membawa External ID dan External Source opsional yang Anda gunakan saat membuat atau memindai kartu. Gunakan pasangan ini untuk memperbarui CRM, POS, atau catatan pesanan Anda tanpa menebak nama atau email.

Make pengiriman idempoten

Simpan kunci pemrosesan yang tahan lama atau sidik jari kejadian sebelum memicu efek samping. Jika penerima Anda melihat kiriman yang sama lagi, ia tidak boleh menambahkan duplikat catatan, voucher, atau pesan CRM. Perlakukan titik akhir URL sebagai rahasia.

Contoh bentuk muatan peristiwa

Salin ini ke langkah otomatisasi Anda 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
    }
  }
}

Konfigurasikan dan uji webhook

01

Buat titik akhir HTTPS di backend Anda, CRM lapisan integrasi, Make webhook, atau Zapier Catch Hook. Make pastikan Anda mengontrol tujuannya sebelum menyalin URL-nya.

02

Di 7Stamp Admin, buka Stamp Cards → API & Integrations → Webhooks.

03

Tambahkan URL endpoint. Webhook menerima setiap peristiwa kartu di profil, jadi filter berdasarkan data.event_type di penerima Anda.

04

Simpan pengaturan profil, lalu picu pemindaian tes sekali pakai atau tindakan kartu untuk menghasilkan suatu peristiwa.

05

Periksa muatan yang diterima. Cocokkan External ID dan External Source dengan catatan yang diharapkan dan konfirmasikan bahwa penerima mengembalikan respons yang berhasil.

06

Aktifkan CRM, voucher, atau efek samping perpesanan hanya setelah Anda memiliki penanganan yang aman untuk diputar ulang dan memantau kegagalan.

Opsi tanpa kode: Make dan Zapier

Di Make, gunakan Webhooks → Custom webhook untuk menghasilkan URL penerima dan tempelkan ke profil 7Stamp. Di Zapier, gunakan Webhooks by Zapier → Catch Hook untuk tujuan yang sama. Profil 7Stamp memiliki langganan karena API saat ini tidak mengekspos titik akhir pendaftaran webhook otomatis.

Kontrak keamanan dan pengiriman

Gunakan bagian Webhooks di referensi publik OpenAPI sebagai sumber skema payload terkini. Body berupa amplop: profile_id dan profile_name menyebutkan profil 7Stamp, event_id mengidentifikasi peristiwa, dan peristiwa kartu itu sendiri ada di data (untuk URL Make atau Zapier, kuncinya adalah card_event). Setiap pengiriman ditandatangani dalam satu header, X-Webhook-Signature: t=…,s=…. Hitung HMAC-SHA256 dengan secret webhook Anda atas t ditambah body permintaan mentah, enkode hasilnya dalam hex, lalu bandingkan dengan s; secret tersebut ada di halaman webhook di 7Stamp Admin. Gunakan X-Webhook-Event-Id untuk membuang pengiriman berulang: percobaan ulang ditandatangani lagi dengan t yang baru. Anda juga dapat melindungi endpoint dengan Basic Auth. Wajibkan HTTPS dan jauhkan URL penerima dari log publik.

Pertanyaan yang sering diajukan

Bisakah saya memilih peristiwa webhook tertentu saja?

Tidak. Webhook 7Stamp menerima setiap peristiwa kartu di profil. Filter berdasarkan data.event_type di penerima Anda; di Make dan Zapier, peristiwa berada di bawah card_event, jadi filter berdasarkan card_event.event_type.

Bagaimana cara menghubungkan webhook ke Make atau Zapier?

Buat webhook penerima di Make atau Catch Hook di Zapier, salin URL yang dihasilkan, lalu tempelkan ke pengaturan webhook profil 7Stamp dan kirim acara pengujian.

Bagaimana cara mencocokkan acara dengan kontak CRM saya?

Gunakan data.external_id dan, jika ada, data.external_source: keduanya ikut dikirim di setiap webhook untuk kartu yang Anda terbitkan melalui API dengan ID Anda sendiri. Pelanggan yang mengambil kartu sendiri tidak memiliki External ID, jadi cocokkan mereka berdasarkan data.user.email. Alamat “Hide My Email” dari Apple adalah alamat relay, bukan alamat yang ada di CRM Anda.

Bagaimana cara memastikan webhook benar-benar berasal dari 7Stamp?

Pisahkan header X-Webhook-Signature menjadi t dan s, hitung HMAC-SHA256 dengan secret webhook dari 7Stamp Admin atas t ditambah body permintaan mentah, enkode hasilnya dalam hex, lalu bandingkan dengan s. Ambil t persis seperti yang dikirim dan body sebagai byte mentah yang diterima, sebelum parsing JSON apa pun. Buang pengiriman yang X-Webhook-Event-Id-nya sudah Anda proses: percobaan ulang ditandatangani lagi dengan t yang baru.

Langkah selanjutnya

Siap mengirim acara kartu pertama?

Buat receiver, tempelkan HTTPS URL ke dalam profil, jalankan pemindaian sekali pakai, dan validasi External ID yang cocok sebelum mengaktifkan otomatisasi hilir.