How to Use Zapier Triggers with PassNinja
Updated June 25, 2026
TL;DR: PassNinja's five real-time triggers fire the moment a pass event happens.
- 1. Choose a PassNinja trigger: Created, Installed, Updated, Uninstalled, or Deleted.
- 2. Connect your PassNinja account and turn on the Zap.
- 3. PassNinja registers a webhook — no configuration required.
- 4. When the event fires, Zapier receives the payload instantly and runs your actions.
- 5. Use the passTemplate, serialNumber, passUrl, and pass fields to drive downstream automation.
PassNinja triggers work as REST Hooks — a real-time push mechanism. The moment a pass is created, installed on a device, updated, removed from a wallet, or deleted, PassNinja pushes the event to Zapier and your Zap runs. There is no polling delay. Payloads typically arrive in under a second.
This guide covers all five triggers, what data they carry, and how to use them to build loyalty flows, event check-in automation, re-engagement campaigns, and audit trails.
How triggers work
When you turn on a Zap with a PassNinja trigger:
- Zapier registers a webhook subscription with PassNinja for your account.
- When the event occurs — on any pass in your account, from any source (Zap, dashboard, or API) — PassNinja posts the payload to Zapier immediately.
- Zapier runs your Zap actions with that payload.
When you turn the Zap off, Zapier automatically removes the subscription. You never manage webhooks manually.
The five triggers
Pass Created
Fires when a new pass is issued, regardless of whether it was created by a Zap, the PassNinja dashboard, or the API.
Use it to:
- Send a welcome email or SMS with the install link
- Log the new pass to a CRM or spreadsheet
- Start an onboarding sequence in an email marketing tool
- Notify your team in Slack
Example Zap:
PassNinja → Pass Created
→ Gmail → Send Email
Subject: Your membership pass is ready
Body: Add it to your wallet: {{passUrl}}
Pass Installed
Fires when the recipient taps Add to Wallet and installs the pass on their iPhone or Android device.
Use it to:
- Record the install date in your CRM — this is the moment the customer is actively engaged
- Send a "welcome to the program" message
- Update a loyalty record to mark the customer as active
- Notify your team that a VIP or event guest has their pass ready
- Trigger an event check-in flow for tap-to-enter scenarios
Example Zap:
PassNinja → Pass Installed
→ HubSpot → Update Contact
Set "Pass Installed At" to {{eventDate}}
Set "Has Active Pass" to true
Note: A pass can be installed more than once if the holder removes and re-adds it. Each install fires a separate event.
Pass Updated
Fires when any field on a pass changes — whether from a Zap, the dashboard, or the API.
Use it to:
- Maintain an audit trail of every change in a spreadsheet
- Notify the pass holder that their points balance was updated
- Sync the latest field values back to your CRM or loyalty database
- Trigger a flow when a specific field changes — for example, when
statuschanges tochecked_in
Example Zap:
PassNinja → Pass Updated
Filter: Only continue if pass.status exactly matches "checked_in"
→ Google Sheets → Add Row (log: guest name, serial, timestamp)
→ Twilio → Send SMS: "You're checked in! Enjoy the event."
Pass Uninstalled
Fires when a pass is removed from a device wallet.
Use it to:
- Mark the customer as lapsed in your CRM
- Trigger a re-engagement email or SMS
- Update a loyalty record to reflect the removal
Example Zap:
PassNinja → Pass Uninstalled
→ Delay: 24 hours
→ Gmail → Send Email: "We noticed you removed your pass — here's how to get it back."
Note: Uninstall events come from Apple and Google device callbacks. There can be a delay of minutes to hours depending on when the device syncs in the background.
Pass Deleted
Fires when a pass is permanently deleted from PassNinja — the pass is gone and cannot be restored.
Use it to:
- Remove the customer from an active loyalty segment
- Archive the pass record in a data warehouse or spreadsheet
- Send a "your membership has ended" message
Example Zap:
PassNinja → Pass Deleted
→ HubSpot → Update Contact
Set "Pass Status" to "deleted"
Set "Has Active Pass" to false
Trigger payload reference
All five triggers return the same payload shape:
| Field | Type | Description |
|---|---|---|
id | string | Unique event ID (same as serialNumber — used by Zapier for deduplication) |
passTemplate | string | Template ID (ptk_0x...) |
serialNumber | string | Unique pass identifier — use this to update or delete the pass |
event | string | Event type: pass.created, pass.installed, etc. |
eventDate | string | ISO 8601 timestamp of when the event occurred |
passUrl | string | Install URL — works on both Apple Wallet and Google Pay |
pass | object | All current field values on the pass (e.g., pass.email, pass.firstName, pass.points) |
Field names under pass.* depend on your template definition.
Setting up a trigger Zap
Step 1 — Add a PassNinja trigger
- In Zapier, click + Create → Zaps.
- In the trigger search, type PassNinja.
- Select the event you want to listen for.
- Connect your PassNinja account — see How to Connect PassNinja to Zapier.
Step 2 — Test the trigger
Click Test trigger. Zapier calls PassNinja for a sample payload so you can see the data shape and map fields in subsequent actions.
If no sample data loads, create or update a pass in PassNinja first, then click Test trigger again.
Step 3 — Filter by pass template (optional)
If you have multiple templates and only want the trigger to fire for one type:
- Add a Filter by Zapier step after the trigger.
- Condition:
passTemplate→Exactly matches→ptk_0x1a4b(your template ID).
This prevents the Zap from running for passes from other templates.
Step 4 — Map payload fields to your actions
Common mappings:
| What you want | Field to use |
|---|---|
| Personalize an email | pass.firstName, pass.email |
| Reference this pass later | serialNumber |
| Link to the pass | passUrl |
| Timestamp the event | eventDate |
| Filter by pass type | passTemplate |
| Check a specific field | pass.status, pass.points, etc. |
Common trigger patterns
Welcome flow on install
PassNinja → Pass Installed
→ Delay: 1 hour
→ Gmail → Send Email ("Welcome! Here's how to earn points…")
Real-time check-in log
PassNinja → Pass Installed
→ Google Sheets → Add Row
Columns: Timestamp, Guest Name, Email, Serial, Pass URL
Re-engagement on uninstall
PassNinja → Pass Uninstalled
→ Delay: 24 hours
→ Twilio → Send SMS ("We miss you. Reinstall your pass and get 2x points this week.")
Full audit trail (five separate Zaps, all write to one sheet)
PassNinja → Pass Created → Sheets → Add Row (event: "created")
PassNinja → Pass Installed → Sheets → Add Row (event: "installed")
PassNinja → Pass Updated → Sheets → Add Row (event: "updated")
PassNinja → Pass Uninstalled → Sheets → Add Row (event: "uninstalled")
PassNinja → Pass Deleted → Sheets → Add Row (event: "deleted")
Tap-to-check-in with pass update
PassNinja → Pass Installed
Filter: passTemplate exactly matches ptk_0x... (your event ticket template)
→ Google Sheets → Add Row (log check-in with timestamp)
→ PassNinja → Update Pass (set status field to "CHECKED IN")
Troubleshooting
"Waiting for webhook" in Zapier task history The Zap is active and listening, but no event has fired yet. Create or update a pass in PassNinja to generate a test event, then check Task History.
Trigger stops firing after a few days Your OAuth token may have expired. Go to zapier.com/app/connections, reconnect your PassNinja account, and unpause the affected Zap.
Duplicate events for the same pass
Zapier deduplicates trigger events using the id field — it won't reprocess the same event ID within a 4-hour window. If you're seeing duplicates, they are likely separate events (e.g., a pass installed, removed, and installed again). Use a Filter step if you only want to process the first install.
Trigger Zap runs but fields are missing from pass.*
The pass was created without values for those fields. Check the original pass creation — required fields should always be provided at creation time.
More articles focused on Zapier
PassNinja connects to Zapier using OAuth 2.0 — the same secure login flow used by Google, Shopify...
How to Create a Pass with ZapierPassNinja's Zapier integration includes a native **Create Pass** action — no Webhooks by Zapier, ...
How to Create and Send NFC Passes Using ZapierZapier is one of the most popular automation platforms, connecting thousands of apps without requ...
How to Use Zapier Actions with PassNinjaPassNinja exposes four Zapier actions that cover the full pass lifecycle — issuing a new pass, pu...