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:

  1. Trigger: the event that starts the pipeline (e.g., "a booking is confirmed")
  2. 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.

Automation pipeline diagram

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:

Email

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.

Automations dashboard

[!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"
}

Create automation form

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:

  1. 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.
  2. Tag automations: Trigger the event and then check the member's profile to confirm the tag was applied.
  3. Webhook automations: Use a service like webhook.site as your URL to inspect the payload. Verify the JSON structure, headers, and X-Webhook-Secret.
  4. 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.

Testing a webhook automation

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, or skipped
  • 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 tagId no longer exists (deleted tag)
  • Missing context: an email action fired without the required email/subject/body fields

Automation execution logs

[!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.

Editing an automation

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 Email Enabled
Booking confirmation booking_confirm Email Enabled
Session results session_finalization Email Disabled
Membership approval membership_approved Email Enabled
Waitlist promotion waitlist_promotion Email 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