⚡ Automations (Flows)
Automations let the system do routine jobs for you. Each flow follows the same shape: when something happens (the trigger), if some optional conditions are met, then carry out one or more actions in order.
Open Automations from the menu, click New automation, give it a name, pick a trigger, add any conditions, then add the actions. Drag the ⠿ handle to reorder the action steps. Toggle a flow on or off from its switch on the list, and see how many times each has run.
Triggers: a member is created, an application is approved, a member is archived, a rink booking is made or cancelled, an expense is submitted, or a new season is rolled over.
Actions: send an email, send an in-app notification to the member, notify administrators, update a field on the record (for example rename a locker when it is created), or call a webhook (POST JSON to another system).
In email subjects and messages you can use tokens that are filled in when the flow runs: {{first_name}}, {{full_name}}, {{email}}, {{club_name}} and {{date}}, plus any values carried by the trigger.
Common questions
- Can a flow do more than one thing?
- Yes. Add as many actions as you like and drag them into the order you want — for example email the new member, then notify the membership secretary, then post to a webhook. They run top to bottom.
- What are conditions for?
- They let a flow run only in certain cases. For example, on “a member is created” you could add a condition that membership_type is “full” so the welcome email only goes to full members. Leave conditions empty to run every time.
- How do I test a flow without waiting for the real event?
- Turn the flow on and perform the action for real (create a test application, submit a small expense, etc.). Each run is recorded under “Recent activity” on the Automations page so you can confirm it fired.
- Nothing happened when I expected it to — why?
- Check the flow is switched on, that its trigger matches the event, and that its conditions aren’t excluding the case. The Recent activity log shows whether a flow ran and how many actions succeeded — failed runs are marked in red with the reason. You can also use the 🧪 Test button on any flow to do a dry run: pick a sample member (and, for some triggers, type an amount or date) and see exactly which conditions pass and what each action would do — without sending, saving or changing anything.
- Can I be told when an automation fails?
- Yes. On the Automations page, under “Error alerts”, choose to notify administrators in-app, email an address, or both whenever a flow hits a problem while running. Every run — success or failure — is also kept in the Recent activity log.
- My conditions are numbered — what does that mean?
- Each condition you add gets a number (1, 2, 3…). Normally all of them must be true for the flow to run. If you want to combine them differently, tick “Use custom logic between conditions” and write an expression using those numbers, AND, OR and brackets — for example
1 AND (2 OR 3)means condition 1 must be true, and either 2 or 3. The builder checks your expression as you type and won’t let you save if it mentions a condition number you don’t have. - How do I put a member’s name (or other details) into a message?
- Wherever you write a message or a value, click Insert / build. You’ll see buttons for the available fields — click one (say First name) and it drops in a
{{first_name}}placeholder that becomes the real name when the flow runs. The Preview shows how it will look, so you never have to type any codes yourself. - Can the system work things out, like the days since someone joined?
- Yes — with a formula. In the Insert / build window there are Calculation buttons; click one and a simple form walks you through it — you pick fields and type words in labelled boxes, and it builds the calculation for you, showing the result as you go. A value that starts with
=is a formula. Useful ones:datediff(a, b)(days between two dates, e.g.=datediff({{join_date}}, today())),if(test, yes, no)to choose between two values,isblank(x)to check for an empty field, anddefault(x, y)to fall back to a backup value. You can join words with&. The Preview shows the result straight away, and anything typed wrongly is explained in plain English before you can save. - What functions can I use in a formula?
today()andnow()for the current date/time;datediff(a, b)anddateadd(date, days)for date maths;if(test, yes, no),isblank(x),default(x, y);concat(…)or&to join text;upper(x),lower(x),trim(x),len(x). You can compare values with= != < > <= >=, for example=if(datediff({{join_date}}, today()) > 30, "Established", "New").- I ran a dry run and it says the flow “would fail” — how do I fix it?
- The dry run now explains every problem. If you see a red box saying the flow “would not run for this record”, it’s the conditions: each one shows a ✓ or ✕ next to the record’s actual value, and a “↳” line under any ✕ spells out exactly what it needs versus what it found (for example, needs membership_type to be “life”, but it is “full”). Fill in the test fields at the top so the sample record has the values you expect, then run again. If instead an action is flagged “would fail”, the “↳” line under it says why — e.g. a custom email recipient left blank, a webhook with no URL, or no field chosen for an “update a field” action. Anything shown with a blue “ℹ” note is not a failure — it’s just a reminder about what happens with a real record (such as which member gets emailed, or that a field is updated on the record that triggered the flow).
- Where do I see errors from automations that have actually run?
- On the Automations page, scroll down to the Run log. It opens on the Errors tab by default and lists any flow run that hit a problem — with the flow name, what triggered it, when it happened, and a plain-English reason (for example “email — no valid recipient address”, “webhook — replied HTTP 500”, or “update a field — could not set …”). Switch to the Successful or All tabs to see runs that worked too, and press Refresh for the latest. This history is always there, so you’re not relying on catching an email or notification — those optional alerts (set just below the log) are an extra, not the only record. You can control how long entries are kept with the “🧹 Auto-delete” option next to the tabs — keep everything (up to the most recent 300 runs) or automatically delete entries older than 30, 60 or 90 days. Old entries are cleared once a day.
- Can a flow react to a field changing from one value to another?
- Yes. When you add a condition, the operator list now includes change options that compare the record’s previous value with its new one: has changed (any value), previously was, has changed to, and changed from … to … (which shows two boxes — a “from” and a “to”). For your example, pick the field, choose “changed from … to …” and enter 1 and 2; the flow runs only when that field goes from 1 to 2. These conditions only work on triggers that carry a previous value — use the “A member’s details change” trigger, which fires whenever a member’s type or status is edited and passes both the old and new values. To test one, open the flow’s dry run: a dashed “previous value” box appears under each field so you can set the “before” value, and the result shows “was: X → now: Y” with a plain reason if it wouldn’t fire.
- How do I stop a flow without deleting it?
- Use the on/off switch on the left of each automation in the list. Switching it off makes it Inactive — it stays exactly as it is but won’t run until you switch it back on. You only need Delete if you want to remove it (and its history) for good.
- What happens when I edit an automation?
- Each time you save an edit, Pavilion keeps a full copy of the previous version and saves your changes as a new version, which becomes the active one. The old version is switched off and stored in the flow’s history — nothing is lost, and only the newest version runs.
- Can I go back to an earlier version?
- Yes. If a flow has more than one version you’ll see a “History” button on it. Open it to see every version with its date, then click Restore next to the one you want. That version comes back as a new active version, and the current one is kept in history in case you change your mind.
- The flow shows “v3” — what does that mean?
- It’s the version number. v1 is the original; each edit adds one. It’s just so you can tell versions apart in the history — there’s nothing you need to do with it.