An automation is a flow that runs on its own. Something happens, like a golfer joining, visiting or topping up. The golfer then goes through the steps you've set up: waits, checks and actions. You build and manage them on the Automations page.
Start from a template
- Go to Automations and click New automation.
- Pick a template, like 5th visit reward or Win-back ladder, or Start from scratch.
- It opens in the builder switched off, so nothing is sent until you activate it.
The builder
The builder shows your flow from top to bottom. The trigger is at the top, then each step in order.
- Click + between any two steps to add a step there.
- Click a step to change its settings in the panel on the right.
- Hover over a step to duplicate it, move it up or down, or delete it.
- Changes save automatically. Undo and Redo are in the top bar, or use Ctrl/⌘+Z.
- Steps with a problem show a red mark. The to fix button in the top bar lists every problem; click one to jump to it.
Steps you can add
| Step | What it does |
|---|---|
| Send wallet message | A lock-screen message on the golfer's wallet pass. Golfers without the pass in Apple or Google Wallet skip it. |
| Give credit | Adds money to their house account, optionally expiring after a number of days. |
| Add tag / Remove tag | Marks a golfer, so you can target them in segments or trigger another automation. |
| Set golfer field | Saves a value on their profile, like membership_level. You can use it in segments and messages. |
| Add note | Leaves a note on their profile for your team. |
| Send webhook | Sends the golfer's details to another system, like your CRM. |
| Wait for… | Pauses for minutes, hours, days or weeks (up to 90 days). |
| Wait until… | Pauses until a time of day, like 9 AM on a weekday, in your club's timezone. |
| If / else | Splits the flow. Golfers who match go down Yes; everyone else goes down No. |
Triggers
| Trigger | When it fires |
|---|---|
| Golfer joins | The first time a golfer is added, from any source. |
| Pass added to wallet | When their pass is saved to Apple or Google Wallet. |
| First purchase | Their first house-account purchase. |
| Visit or purchase | Every check-in or POS sale. Narrow it to a specific visit (their 5th), every Nth visit, or a minimum spend. |
| House-account balance changes | Top-ups, purchases, adjustments and expiries. Narrow it to a balance that drops below or rises above an amount. |
| Tag added / Tag removed | When a tag is put on or taken off a golfer, by your team or another automation. |
| Enters a segment | When a golfer starts matching a saved segment. Checked every 15 minutes. |
| Birthday | The morning of their birthday, in your club's timezone. |
| Stops coming in | Once they've gone a number of days without a visit. |
| Credit about to expire | A set number of days before a house-account credit expires. |
Only events that happen after you activate an automation start it. Nothing that already happened is replayed.
Who can enter
On the trigger step, choose All golfers or a saved segment. The live count shows how many golfers match right now.
How often someone can enter
- Every time. Each event starts the automation again.
- Only once. Each golfer goes through it at most once, ever.
- Cooldown. At most once every so many days.
By default, a golfer who is already part-way through isn't entered again. That stops someone who visits every day from getting the same message every day. Tick Let a golfer enter again while they're still part-way through to change this.
If / else
An if/else can check two kinds of rule:
- About the golfer. Anything you can filter on in a segment: visits, spend, tags, customer type, purchases, golfer fields and more. Checked when the golfer reaches the step.
- About this event. The amount of this visit, the visit number, or the balance before and after. These are only offered when the trigger knows them.
You can also check whether the golfer is in a saved segment. If an if/else can't be decided (for example, its segment was deleted), the golfer stops there and it shows on the Activity tab. They are never sent down a side by guesswork.
When you delete an if/else, you choose which side to keep.
Personalising messages
Click Insert field to add a merge field such as {first_name}, {club}, {balance} or {event.amount}. Add a fallback for empty values with a bar: {first_name|there} reads "Hi there" when a golfer has no first name. Fields that the current trigger can't fill are marked in the list.
Webhooks
The Send webhook step sends a request to a URL you choose:
- Standard payload sends the golfer, the event and the automation. Custom JSON lets you shape the body with merge fields. Values are escaped automatically.
- Requests are signed with a
Golfpass-Signatureheader, the same scheme as the API webhooks. Admins can show and rotate the signing secret on the step. - Add headers like
Authorization. Mark a header Secret and its value is stored separately and never shown again. - Only public
https://addresses are allowed, and redirects aren't followed. - A failed request is tried up to 5 times over about 3 hours. Every attempt has the same
Golfpass-Deliveryid, so your system can ignore repeats. - Click Send test request to send one real request with a sample golfer and see the response.
Test before you turn it on
Click Test, pick a golfer, and adjust the event details (like the visit amount). PocketPass shows what would happen to that golfer, using what's on screen now, including unsaved changes:
- which side of each if/else they'd go down, and why
- when each wait would end
- the exact message, note or webhook body they'd get
The path lights up on the flow. Nothing is sent, posted or changed.
Settings
Click Settings for:
- Goal. Stop early, counted as a success, when the golfer visits or tops up. Ideal for win-backs: once they come back, the rest of the flow stops.
- Quiet hours. Hold wallet messages overnight. A message due in quiet hours waits until they end.
- Re-check the audience after each wait. If a golfer leaves "Who can enter" while waiting, they leave the automation.
Activating, publishing and pausing
- Activate turns a new automation on. Fix anything marked in red first.
- Editing a live automation saves your changes as a draft. They take effect when you click Publish changes. Golfers already part-way through keep the version they started, unless you choose to stop them.
- Pause stops new golfers entering. You choose whether golfers already part-way through stop too or finish.
- Delete stops anyone waiting and keeps the history. Click Undo on the message that appears to bring it back.
Team members with view-only access can see automations but not change them. Only admins can delete an automation or see a webhook signing secret.
Activity and history
Open an automation and click Activity to see:
- how many golfers entered, are in progress, completed, reached the goal or failed, over 7, 30 or 90 days
- the flow with numbers on each step: how many passed, which side of each if/else they took, and how many are waiting there now. Click a number to see those golfers.
- every golfer who went through it. Search by name, filter by status, and click one for their step-by-step timeline, including the message they got and every webhook response.
If a step failed, open the golfer and click Retry from the failed step, or use Retry all failed. You can also stop an automation for one golfer.
Good to know
- Waits are accurate to about a minute.
- Wallet messages are never retried, so a golfer never gets the same message twice. Credit, tags, fields and notes are retried up to 3 times; webhooks up to 5.
- A golfer can enter at most 3 automations in a chain, for example tag → automation → tag → automation. This stops two automations triggering each other forever. The builder also warns you if an automation would trigger itself.
- Step-by-step history is kept for 180 days. The totals are kept for good.