Zapier Integration
Connect Loyalite to 6,000+ apps with Zapier. Loyalite works in both directions:
| Direction | What it means | How |
|---|---|---|
| Trigger | Loyalite fires an event → Zapier runs a Zap | Outbound webhooks (this page) |
| Action | Something happens elsewhere → Zapier calls Loyalite | Webhooks by Zapier action (this page) |
Part 1 — Loyalite as a Trigger
Use this when you want to react to loyalty events — a customer enrolls, earns stamps, or redeems a coupon — and do something in another app.
Examples:
- Add new loyalty customers to Mailchimp, HubSpot, or Notion
- Send a Slack message when a customer reaches a stamp milestone
- Log every stamp earned to a Google Sheet
- Trigger an email campaign when a coupon is redeemed
Setup guide
Create a new Zap
Go to zapier.com (opens in a new tab) → + Create → Zaps.
Add the trigger: Webhooks by Zapier
- In the trigger step, search for "Webhooks by Zapier".
- Select Catch Hook as the event.
- Click Continue.
Copy your Zapier webhook URL
Zapier will show you a unique URL like:
https://hooks.zapier.com/hooks/catch/123456/abcdef/Copy this URL.
Add the webhook to Loyalite
- Open the merchant app.
- Go to Account → Settings → Integrations → Webhooks.
- Tap Add Webhook.
- Paste the Zapier URL as the Endpoint URL.
- Optionally, add a description like "Zapier — new customer alerts".
- Select the event types you want to receive (or leave as All Events).
- Tap Save.
- Copy the signing secret shown — you won't need it in Zapier for basic use, but store it safely if you want to verify signatures later.
The signing secret is shown only once at creation. Store it in a secure place (e.g. a password manager or secrets vault). If you lose it, you can rotate it from the endpoint settings, but existing integrations that rely on signature verification must be updated.
Send a test event
In the merchant app webhook screen, tap the endpoint → Test → choose an event type (e.g. customer.enrolled).
Back in Zapier, click Test trigger — Zapier should detect the payload.
If Zapier doesn't detect the test, make sure the Loyalite test delivery succeeded (check the Delivery Log in the merchant app). Zapier only detects payloads sent while it's actively listening.
Build your Zap actions
With the trigger detected, Zapier shows you the payload fields. Use them to build your action steps:
Example: Add to Mailchimp
- Action: Mailchimp → Add/Update Subscriber
- Email field: map
data__masked_email(note: this is the masked form — full email is never available) - Tags: "Loyalite Customer"
Example: Google Sheets row
- Action: Google Sheets → Create Spreadsheet Row
- Map
data__customer_code,data__stamps_added,data__stamp_balance,occurred_at
Turn on your Zap
Click Publish to activate. Your Zap will now run every time Loyalite fires the selected events.
Filtering by event type in Zapier
To handle multiple event types differently in a single Zap, use Zapier's Filter step after the trigger:
- Add a Filter step after the Webhooks trigger.
- Set:
event→(Text) Exactly matches→stamp.earned
Or use Zapier's Paths feature to branch by event type.
Notes on masked email
Loyalite never exposes full customer emails in webhook payloads. The masked_email field (e.g. j***@gmail.com) is suitable for display only — it cannot be used to send emails (e.g. as a Mailchimp subscriber address). If you need to contact customers, use a tool that lets customers opt in independently (e.g. an in-app form in your own system).
Do not map data__masked_email to the email address field in Mailchimp or any other email platform. The masked form is not a valid deliverable email address.
Part 2 — Loyalite as an Action
Use this when something happens in another app and you want Loyalite to record a transaction or enroll a customer.
Examples:
- Shopify order placed → earn points for the customer
- Typeform / Tally form submitted → enroll the customer in Loyalite
- WooCommerce order completed → earn stamps
- Customer fills in a manual redemption form → redeem points via Loyalite
All actions use Webhooks by Zapier (action step) to POST to the Loyalite POS API.
Authentication
You need your Loyalite API key for every action step. Find it in Merchant App → Settings → Integrations.
Every Webhooks by Zapier action step must include this header:
| Header | Value |
|---|---|
X-Api-Key | Your Loyalite secret key |
Content-Type | application/json |
Action: Enroll a customer
Trigger example: Customer submits a sign-up form (Typeform, Google Forms, Tally…)
Add a Webhooks by Zapier action step
In your Zap, add an action → search "Webhooks by Zapier" → select POST.
Configure the request
- URL:
https://{your-slug}.loyalite.app/webhook/customer - Payload Type:
json - Data:
email → (map from your form trigger) consent_terms → true consent_privacy → true - Headers:
X-Api-Key → your secret key Content-Type → application/json
Use the response in later steps
Zapier makes the response fields available for mapping. Key fields:
| Field | Description |
|---|---|
data__customer_code | The customer's 6-digit code |
data__is_new | true if just enrolled, false if already existed |
data__point_balance | Current point balance |
data__stamp_count | Current stamp count |
Action: Earn points or stamps
Trigger example: New order in Shopify / WooCommerce
Add a Webhooks by Zapier action step
Action → Webhooks by Zapier → POST.
Configure the request
- URL:
https://{your-slug}.loyalite.app/webhook/pos - Payload Type:
json - Data:
customer_code → (map from a previous enroll step or your own DB) amount → (map order total from trigger) card_type → point (or stamp) external_id → (map order ID — ensures idempotency on retries) - Headers:
X-Api-Key+Content-Type
Always map external_id to a unique order or transaction ID. If Zapier retries the step, the duplicate will be detected and ignored automatically — no double points.
Full Shopify → Loyalite example
- Trigger: Shopify → New Order
- Action 1: Webhooks by Zapier → POST
/webhook/customeremail→ Shopifycustomer.emailconsent_terms→true(ensure your Shopify checkout has Loyalite consent)consent_privacy→true
- Action 2: Webhooks by Zapier → POST
/webhook/poscustomer_code→ from step 2 responsedata__customer_codeamount→ Shopifytotal_pricecard_type→pointexternal_id→ Shopifyid(order ID)
Action: Redeem points or stamps
Trigger example: Customer submits a redemption request form
Add a Webhooks by Zapier action step
Action → Webhooks by Zapier → POST.
Configure the request
- URL:
https://{your-slug}.loyalite.app/webhook/redeem - Payload Type:
json - Data:
customer_code → (from lookup or form input) value → (number of points/stamps to deduct) card_type → point (or stamp) external_id → (unique ID for this redemption) - Headers:
X-Api-Key+Content-Type
Handle insufficient balance
If the customer doesn't have enough balance, Loyalite returns HTTP 422. In Zapier, add a Filter step before this action to check that the customer's balance (from a prior lookup step) covers the redemption amount.
Action: Look up a customer's balance
Trigger example: Before showing a reward option, check the customer's current balance.
Add a Webhooks by Zapier action step
Action → Webhooks by Zapier → GET.
Configure the request
- URL:
https://{your-slug}.loyalite.app/webhook/customer?code=(customer_code)(replace(customer_code)with the Zapier field containing the customer code — e.g. from a previous enroll step) - Headers:
X-Api-Key
Use the response
The response includes data__stamp_count and data__point_balance. Use these in a Filter step to only proceed if the balance meets a threshold.