Zapier connects PocketPass to thousands of other apps without writing any code. You pick something that happens (a trigger), then something that should follow (an action), and Zapier runs it for you.
If you can describe the automation in a sentence - "when someone installs a pass, post in Slack" - you can usually build it in a few minutes.
What PocketPass offers in Zapier
Triggers - things that start a Zap
| Trigger | Fires when |
|---|---|
| New Pass Created | A pass is created, however it happened - the API, the dashboard, or an issuance form |
| Pass Installed | Someone adds the pass to Apple or Google Wallet |
| Pass Updated | A pass's field values or status change |
| Pass Removed | Someone deletes the pass from their wallet |
Pass Installed is the one most people want. It's the moment a link you sent becomes a real pass holder.
Pass Removed is reliable on Apple Wallet. Google Wallet doesn't consistently report deletions, so treat it as a lower bound rather than a complete count - see Pass statuses and lifecycle.
Actions - things a Zap does
| Action | What it does |
|---|---|
| Create or Update Pass | Issues a pass from a template. Set an External ID and re-runs update that same pass instead of duplicating it. |
| Update Pass Fields | Changes field values on an existing pass. The wallet updates by itself. |
| Send Push Notification | Sends a message to one pass. |
| Deactivate Pass | Switches a pass off in the holder's wallet. Reversible - you can reactivate it from the dashboard. |
There's also a Find Pass by External ID step, which Zapier lists under Search rather than Action. Use it to build find-or-create flows.
Deactivate is not the same as voiding. It's reversible, and the pass can be brought back. Voiding a pass permanently is deliberately not available in Zapier - it can't be undone, so it stays a decision you make in the dashboard.
Connecting your account
- In Zapier, create a Zap and search for PocketPass.
- When Zapier asks to connect an account, choose Connect a new account.
- In another tab open Settings -> API keys, create a key, and name it "Zapier" so you know later what it's for.
- Copy the
pk_live_...value and paste it into Zapier.
Zapier shows your account name beside the connection once the key checks out.
The key is shown once. Copy it before you leave the page - PocketPass stores only a hash and genuinely can't show it again. If you lose it, revoke it and create another. See API keys and authentication.
Leave Base URL alone unless we've told you otherwise.
Example: Slack the team when a pass is installed
The best first Zap, because it proves the whole chain works.
- Trigger: PocketPass -> Pass Installed.
- Action: Slack -> Send Channel Message.
- Map the message to something like: New pass installed -
{{pass_id}}on{{platform}}. - Turn the Zap on, then add a pass to your own phone to fire it.
Example: create passes from a Google Sheet
- Trigger: Google Sheets -> New Spreadsheet Row.
- Action: PocketPass -> Create or Update Pass.
- Choose your pass template. The step then shows one input per field on that template - map each to a column.
- Set External ID to something stable and unique for that row, like a customer number. Re-runs then update the same pass instead of creating a second one.
That last step is the important one. See External IDs and idempotency for why.
Example: notify a customer when their order ships
- Trigger: Shopify -> New Fulfillment.
- Action: PocketPass -> Send Push Notification.
- Set Pass ID or External ID to whatever you used as the External ID when the pass was created - typically the customer or order reference.
- Write the message: "Your order is on its way."
How updates behave
Update Pass Fields merges. Fields you leave blank in the Zap step keep whatever they already had - only the ones you fill in change. So a Zap that updates a balance won't disturb the member's name.
Create or Update Pass, when it matches an existing External ID, behaves the same way as editing that pass.
Either way the change reaches the holder's phone by itself, usually within a minute or two. See Live pass updates.
Where the triggers come from
Triggers are built on webhooks. When you switch a Zap on, Zapier creates a webhook subscription in your account automatically, and removes it when you switch the Zap off.
You'll see those subscriptions listed in Settings -> Webhooks with a hooks.zapier.com address. That's expected - leave them alone. Deleting one by hand stops the Zap firing.
Troubleshooting
"Invalid or revoked API key." The key was revoked or replaced. Create a new one and reconnect PocketPass under Zapier's My Apps.
The trigger never fires. Check the thing you're waiting for actually happened - "Pass Installed" needs someone to genuinely add a pass to a wallet, not just open the install link. Then confirm the Zap is on, and that a hooks.zapier.com subscription is present in Settings -> Webhooks. If it's missing, switch the Zap off and on to re-subscribe.
Testing a trigger shows odd sample data. Zapier's "Test trigger" pulls a few recent passes to give you something to map, rather than replaying real events. Some fields, like platform, only appear on the real thing. Map them anyway and check with a live run.
No fields appear on Create or Update Pass. Pick the pass template first - the field list is built from whichever template you choose.
Nothing arrives after a burst of activity. The API allows 600 requests a minute per key. A very large batch can hit that. Give each system its own key so a bulk job can't slow anything else down. See API errors and rate limits.
When Zapier isn't enough
Everything Zapier does here runs on the same REST API and webhooks you can use directly. If your logic outgrows what a Zap can express, drop down to the API - same key, same events, no migration.