Automations and Triggers
Automations let you wire up trigger → action pipelines so your club runs on autopilot. When something happens, a member joins, a session is finalized, a booking is confirmed, ServeLeague can automatically send an email, apply a member tag, fire a webhook to an external system, or push a notification to the member's device. No manual intervention required.
This tutorial covers every aspect of the automation engine: the available triggers and actions, how to create and configure automations, how to test them, and how to monitor execution logs to keep everything running smoothly.
[!NOTE] Automations are a feature gated behind the Communications feature flag. If you don't see Automations in your admin sidebar, go to Settings → Features and enable Communications.
How Automations Work
Every automation is a simple pipeline with two parts:
- Trigger: the event that starts the pipeline (e.g., "a booking is confirmed")
- Action: what happens in response (e.g., "send a confirmation email")
When the trigger fires, ServeLeague's automation engine finds all enabled automations that match, executes their actions in priority order, and logs the result. The entire process is fire-and-forget. Automations never block the operation that triggered them. If a webhook times out or an email bounces, the original booking or registration still succeeds.

Available Triggers
ServeLeague ships with ten trigger types that cover the core lifecycle events of your club:
| Trigger | Fires when… | Typical use |
|---|---|---|
| Event registration confirmed | A member registers for a club event | Send confirmation + calendar invite |
| Event reminder (24h) | 24 hours before an event starts | Reminder email or push notification |
| Booking confirmed | A facility booking is created | Send confirmation with time and location |
| Booking reminder (2h) | 2 hours before a booked slot starts | Last-minute reminder notification |
| Session finalized | A league session's results are finalized | Email updated ratings and standings |
| Membership approved | A new member is approved | Welcome email, apply "New Member" tag |
| Membership expiry warning | A membership is approaching expiry | Renewal reminder email |
| Waitlist promoted | A member is promoted off a waitlist | Notify them their spot is confirmed |
| Guest repeat visit | A guest visits the club more than once | Nudge them toward full membership |
| Event capacity reached | An event hits its registration cap | Notify organizers, enable waitlist |
[!TIP] You can create multiple automations for the same trigger. For example, when a membership is approved you might send a welcome email and apply a "New Member" tag and fire a webhook to your CRM. Three separate automations, all triggered by the same event.
Available Actions
Each automation performs one of four action types:
Sends a transactional email to the relevant member using ServeLeague's email pipeline. The email content is prepared by the trigger context (subject, HTML body, and plain-text body). Email actions use the same delivery infrastructure as your other club communications, so outbox queuing, bounce handling, and unsubscribe compliance are all handled automatically.
Tag
Applies a member tag automatically. Configure the tagId in the action config, and when the trigger fires, the specified tag is assigned to the member. Tags are idempotent, so if the member already has the tag, nothing happens. This is perfect for building segments like "Active Booker" or "League Participant" without manual tagging (see Member Tags and Segmentation for more on creating and managing tags).
Webhook
Sends an HTTP POST to an external URL with a JSON payload containing the club ID, trigger type, timestamp, and event-specific data. You can optionally include a shared secret (sent as X-Webhook-Secret header) to verify authenticity. Webhooks time out after 10 seconds. Use these to integrate with Slack, Zapier, your own CRM, or any system that accepts HTTP callbacks.
Notification
Pushes an in-app (and optionally push) notification to the member. Configure a title, body, notification category (e.g., "announcements", "bookings"), and an optional deep link. Notifications appear in the member's notification center and, if they have push notifications enabled, on their device.
Step 1: View the Automations Dashboard
Go to Settings → Automations in the admin sidebar. The first time you visit, ServeLeague seeds your club with five default automations based on common workflows:
- Event registration confirmation email (enabled)
- Booking confirmation email (enabled)
- Session results email (disabled by default)
- Membership approval email (enabled)
- Waitlist promotion email (enabled)
The dashboard shows all your automations in a table with their trigger type, action type, enabled status, and when they last fired. Below the table, you'll see aggregate stats: total executions, success rate, and the timestamp of the last execution.

[!TIP] If your club previously used the legacy email automation settings, ServeLeague automatically migrates those preferences. An automation that was disabled in the old system stays disabled in the new one.
Step 2: Create a Custom Automation
Click Add Automation to create a new pipeline. Fill in the configuration form:
| Field | Description |
|---|---|
| Name | A descriptive label (e.g., "Tag new members as Active") |
| Trigger type | Select from the ten available triggers |
| Action type | Choose email, tag, webhook, or notification |
| Action config | JSON configuration specific to the action type (see below) |
| Enabled | Turn on/off without deleting the automation |
| Priority | Higher-priority automations execute first (0 = default) |
Action Config Examples
Tag action: automatically tag members who register for events:
{
"tagId": "your-tag-uuid-here"
}
Webhook action: post to Slack when event capacity is reached:
{
"url": "https://hooks.slack.com/services/T00/B00/xxxx",
"secret": "my-shared-secret"
}
Notification action: push a reminder to members before their booking:
{
"title": "Booking Reminder",
"body": "Your court booking starts in 2 hours!",
"category": "bookings",
"link": "/bookings"
}

Step 3: Configure Priority and Ordering
When multiple automations share the same trigger, they execute in descending priority order. Use this to ensure critical actions (like sending a confirmation email) run before optional ones (like updating a tag or firing a webhook).
Set priority as an integer. Higher numbers run first. For example:
- Confirmation email → priority 10
- Apply member tag → priority 5
- Webhook to CRM → priority 0
If two automations have the same priority, they execute in the order they were created.
Step 4: Test Your Automations
The best way to test an automation is to trigger the real event in a controlled way:
- Email automations: Register a test member for an event, finalize a test session, or approve a test membership. Check the Email Outbox (Settings → Email) to verify the message was queued.
- Tag automations: Trigger the event and then check the member's profile to confirm the tag was applied.
- Webhook automations: Use a service like webhook.site as your URL to inspect the payload. Verify the JSON structure, headers, and
X-Webhook-Secret. - Notification automations: Trigger the event and check the member's notification center in the app.
After triggering, visit the Automation Logs (see Step 5) to confirm the execution result.
[!WARNING] Test automations in a controlled way. Triggering a session finalization email automation will email all session participants. Use a test session with only your own account as a participant.

Step 5: Monitor Automation Logs
Click View Logs on the automations dashboard to see a paginated history of every automation execution. Each log entry shows:
- Trigger type: which event fired
- Action type: what action was attempted
- Result:
success,failure, orskipped - Error message: details if the action failed (e.g., "Webhook returned 500")
- Executed at: timestamp of the execution
Use the status filter to quickly find failures. Common failure causes include:
- Webhook timeouts: the external endpoint didn't respond within 10 seconds
- Missing tag: the configured
tagIdno longer exists (deleted tag) - Missing context: an email action fired without the required email/subject/body fields

[!TIP] The dashboard shows your club's overall success rate as a percentage. Aim for 95%+. If it drops, check the logs for recurring failures and fix the underlying configuration.
Step 6: Edit or Disable Automations
To modify an existing automation, click its row in the dashboard. You can update the name, action config, enabled status, and priority. Changes take effect immediately. The next time the trigger fires, the updated configuration will be used.
To temporarily stop an automation without losing its configuration, switch Enabled off. Disabled automations are skipped during execution but remain visible in the dashboard for re-activation.
To permanently remove an automation, click Delete. This also removes it from future execution, but existing log entries are preserved for audit purposes.

Automation Templates
When your club is first set up, ServeLeague creates five default automations that cover the most common workflows. These serve as templates you can customize:
| Template | Trigger | Action | Default state |
|---|---|---|---|
| Event registration confirmation | event_registration_confirm |
Enabled | |
| Booking confirmation | booking_confirm |
Enabled | |
| Session results | session_finalization |
Disabled | |
| Membership approval | membership_approved |
Enabled | |
| Waitlist promotion | waitlist_promotion |
Enabled |
You can modify these defaults (change their priority, disable them, or update their config) and add your own custom automations alongside them. There's no limit to the number of automations you can create.
Summary
Automations transform your club from a system you manage into a system that manages itself. By combining the right triggers with the right actions, you can ensure every member gets timely communications, your data stays organized with automatic tagging, and your external systems stay in sync through webhooks, all without lifting a finger.
Key takeaways:
- 10 trigger types cover the full club lifecycle: events, bookings, sessions, memberships, and waitlists
- 4 action types give you flexibility: email, tag, webhook, and notification
- Automations are fire-and-forget and never block the triggering operation
- Monitor the execution logs to catch failures early and maintain a high success rate
What's Next
- Member Tags and Segmentation: create the tags your automations apply
- Email Communications: customize the emails your automations send
- League Settings and Access: control who can access league features