> ## Documentation Index
> Fetch the complete documentation index at: https://help.coachiq.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Triggers & Actions Reference

> Complete list of all automation triggers, conditions, actions, and dynamic fields

<Info>
  **Where to find this**: Tools → Automations
</Info>

This is your complete reference for building automations in CoachIQ. Use it to look up available options when you're in the automation builder.

<Note>
  **New to automations?** Start with [Build Your First Automation](/automations/build-your-first-automation) for a hands-on walkthrough.
</Note>

***

## All Triggers

Triggers determine **when** your automation runs. Each trigger has different conditions available to filter who it applies to.

<AccordionGroup>
  <Accordion title="New User">
    Fires when a new user is added to your account.

    | Condition               | Type       | Description                       |
    | ----------------------- | ---------- | --------------------------------- |
    | Email contains          | Text input | Filter by email domain or keyword |
    | Has phone number        | Boolean    | User has a phone number on file   |
    | Is missing phone number | Boolean    | User doesn't have a phone number  |
  </Accordion>

  <Accordion title="New Purchase">
    Fires when someone purchases any [product](/payments/product-overview).

    | Condition                        | Type         | Description                               |
    | -------------------------------- | ------------ | ----------------------------------------- |
    | Is a specific product            | Dropdown     | Only this product triggers the automation |
    | Is any product from list         | Multi-select | Any of the selected products              |
    | Is a subscription                | Boolean      | Product type is subscription              |
    | Is a one-time purchase           | Boolean      | Product type is one-time                  |
    | Is an access code                | Boolean      | Product type is access code               |
    | User has a specific tag          | Dropdown     | User must have this tag                   |
    | User doesn't have a specific tag | Dropdown     | User must not have this tag               |
    | User's first purchase ever       | Boolean      | This is the user's first purchase         |
  </Accordion>

  <Accordion title="New Booking">
    Fires when someone [books a session](/scheduling/overview).

    | Condition                        | Type     | Description                              |
    | -------------------------------- | -------- | ---------------------------------------- |
    | Is for a specific session        | Dropdown | Only bookings for this session/scheduler |
    | User has a specific tag          | Dropdown | User must have this tag                  |
    | User doesn't have a specific tag | Dropdown | User must not have this tag              |
    | User's first booking ever        | Boolean  | This is the user's first booking         |
  </Accordion>

  <Accordion title="New Form">
    Fires when someone submits a [form](/forms/overview).

    | Condition                        | Type     | Description                     |
    | -------------------------------- | -------- | ------------------------------- |
    | Is a specific form               | Dropdown | Only submissions from this form |
    | User has a specific tag          | Dropdown | User must have this tag         |
    | User doesn't have a specific tag | Dropdown | User must not have this tag     |
  </Accordion>

  <Accordion title="New User Tag Connection">
    Fires when a [tag](/people/tags-filters) is added to a user.

    | Condition    | Type     | Description                      |
    | ------------ | -------- | -------------------------------- |
    | Tag added is | Dropdown | Only fires for this specific tag |
  </Accordion>

  <Accordion title="User Tag Connection Removed">
    Fires when a tag is removed from a user.

    | Condition      | Type     | Description                      |
    | -------------- | -------- | -------------------------------- |
    | Tag removed is | Dropdown | Only fires for this specific tag |
  </Accordion>

  <Accordion title="New Booking Cancellation">
    Fires when someone cancels a booking.

    | Condition                        | Type     | Description                         |
    | -------------------------------- | -------- | ----------------------------------- |
    | Was for a specific session       | Dropdown | Only cancellations for this session |
    | User has a specific tag          | Dropdown | User must have this tag             |
    | User doesn't have a specific tag | Dropdown | User must not have this tag         |
  </Accordion>

  <Accordion title="Booking Completed">
    Fires when a booked session ends.

    | Condition                        | Type     | Description                             |
    | -------------------------------- | -------- | --------------------------------------- |
    | Was for a specific session       | Dropdown | Only this session/scheduler             |
    | User has a specific tag          | Dropdown | User must have this tag                 |
    | User doesn't have a specific tag | Dropdown | User must not have this tag             |
    | Attendance status                | Dropdown | Attended, No-show, or Late cancellation |

    <Tip>
      Use the attendance status condition to send different messages to no-shows vs. attendees.
    </Tip>
  </Accordion>

  <Accordion title="Subscription Cancelled">
    Fires when someone cancels their [subscription](/payments/product-overview).

    | Condition                        | Type     | Description                    |
    | -------------------------------- | -------- | ------------------------------ |
    | Was for a specific product       | Dropdown | Only this subscription product |
    | User has a specific tag          | Dropdown | User must have this tag        |
    | User doesn't have a specific tag | Dropdown | User must not have this tag    |
  </Accordion>

  <Accordion title="Booking Started">
    Fires at the exact start time of a booking.

    | Condition                        | Type     | Description                 |
    | -------------------------------- | -------- | --------------------------- |
    | Is for a specific session        | Dropdown | Only this session/scheduler |
    | User has a specific tag          | Dropdown | User must have this tag     |
    | User doesn't have a specific tag | Dropdown | User must not have this tag |

    <Note>
      This trigger executes at the booking's scheduled start time, not when someone checks in.
    </Note>
  </Accordion>

  <Accordion title="Scheduled Check">
    Runs on a schedule and finds all users matching your conditions. See [Scheduled Automations](/automations/scheduled-automations) for details.

    **Schedule Options**:

    | Schedule     | Format                                      |
    | ------------ | ------------------------------------------- |
    | Every day    | Select time (e.g., 9:00 AM)                 |
    | Once a week  | Select day + time (e.g., Monday at 9:00 AM) |
    | Once a month | Select date + time (e.g., 1st at 10:00 AM)  |

    **Available Conditions** (minimum 1 required):

    | Condition                            | Type     | Description                               |
    | ------------------------------------ | -------- | ----------------------------------------- |
    | Has a specific tag                   | Dropdown | User has this tag                         |
    | Doesn't have a specific tag          | Dropdown | User doesn't have this tag                |
    | Has active subscription              | Boolean  | User is currently subscribed              |
    | Does not have an active subscription | Boolean  | User has no active subscription           |
    | Subscription active for X days       | Number   | Subscribed for at least X days            |
    | Has available credits                | Boolean  | User has at least 1 credit                |
    | Days since last booking is > X       | Number   | User hasn't booked in X+ days             |
    | Days until credits expire \< X       | Number   | Credits expire within X days              |
    | Credit count is X                    | Number   | Less than, greater than, or equal to X    |
    | Has upcoming booking                 | Dropdown | Today, this week, or no upcoming bookings |

    <Warning>
      At least one condition is required for scheduled automations.
    </Warning>
  </Accordion>
</AccordionGroup>

***

## All Actions

Actions determine **what happens** when your automation runs. You can add multiple actions to a single automation.

<AccordionGroup>
  <Accordion title="Send an Email">
    Sends an email to a user.

    | Field          | Type          | Description                               |
    | -------------- | ------------- | ----------------------------------------- |
    | To             | Auto/Dropdown | User from trigger or select specific user |
    | Subject        | Text          | Supports dynamic fields                   |
    | Message        | Rich text     | Supports dynamic fields and formatting    |
    | Attach Product | Dropdown      | Optional - adds purchase link             |
    | Attach Session | Dropdown      | Optional - adds booking link              |
    | Attach Form    | Dropdown      | Optional - adds form link                 |
    | Attach Media   | Dropdown      | Optional - adds file from Media Hub       |
  </Accordion>

  <Accordion title="Send an SMS Message">
    Sends a text message to a user's phone.

    | Field          | Type          | Description                                   |
    | -------------- | ------------- | --------------------------------------------- |
    | To             | Auto/Dropdown | User from trigger or select specific user     |
    | Message        | Text          | Supports dynamic fields (160 character limit) |
    | Attach Product | Dropdown      | Optional - adds short purchase link           |
    | Attach Session | Dropdown      | Optional - adds short booking link            |
    | Attach Form    | Dropdown      | Optional - adds short form link               |

    <Note>
      SMS attachments are text links only—no images or files. A character counter shows remaining space.
    </Note>
  </Accordion>

  <Accordion title="Send an In-App Message">
    Sends a message to the user's [inbox](/inbox/inbox-overview) within CoachIQ.

    | Field          | Type          | Description                               |
    | -------------- | ------------- | ----------------------------------------- |
    | To             | Auto/Dropdown | User from trigger or select specific user |
    | Message        | Text          | Supports dynamic fields                   |
    | Attach Product | Dropdown      | Optional - adds purchase link             |
    | Attach Session | Dropdown      | Optional - adds booking link              |
    | Attach Form    | Dropdown      | Optional - adds form link                 |
  </Accordion>

  <Accordion title="Send an Announcement">
    Posts an [announcement](/inbox/announcements) visible to a group of users.

    | Field          | Type      | Description                               |
    | -------------- | --------- | ----------------------------------------- |
    | To             | Dropdown  | All users, specific tag, or specific role |
    | Title          | Text      | Announcement headline                     |
    | Message        | Rich text | Supports dynamic fields                   |
    | Attach Product | Dropdown  | Optional - adds purchase link             |
    | Attach Session | Dropdown  | Optional - adds booking link              |
    | Attach Form    | Dropdown  | Optional - adds form link                 |

    <Tip>
      Use announcements for broadcast messages (like weekly schedules) instead of individual messages.
    </Tip>
  </Accordion>

  <Accordion title="Add a Tag to a User">
    Adds a tag to the user for organization and targeting.

    | Field | Type          | Description                                |
    | ----- | ------------- | ------------------------------------------ |
    | User  | Auto/Dropdown | User from trigger or select specific user  |
    | Tag   | Dropdown      | Tag to add (select existing or create new) |
  </Accordion>

  <Accordion title="Remove a Tag from a User">
    Removes a tag from the user.

    | Field | Type          | Description                               |
    | ----- | ------------- | ----------------------------------------- |
    | User  | Auto/Dropdown | User from trigger or select specific user |
    | Tag   | Dropdown      | Tag to remove                             |
  </Accordion>

  <Accordion title="Add Credits to a User">
    Adds session credits to the user's account.

    | Field              | Type          | Description                                                     |
    | ------------------ | ------------- | --------------------------------------------------------------- |
    | User               | Auto/Dropdown | User from trigger or select specific user                       |
    | Number of credits  | Number        | How many credits to add (minimum 1)                             |
    | Credit Bank Target | Radio         | Master Credits (works for any session) or Specific Product Bank |

    <Note>
      If you select a specific product bank and the user doesn't own that product, credits are added to Master Credits instead.
    </Note>
  </Accordion>

  <Accordion title="Redeem Credits from a User">
    Removes session credits from the user's account.

    | Field             | Type          | Description                               |
    | ----------------- | ------------- | ----------------------------------------- |
    | User              | Auto/Dropdown | User from trigger or select specific user |
    | Number of credits | Number        | How many credits to redeem (minimum 1)    |
    | Credit source     | Dropdown      | Master Credits or specific product bank   |
  </Accordion>

  <Accordion title="Add a Product Purchase to a User">
    Grants a user access to a product without payment.

    | Field             | Type          | Description                                 |
    | ----------------- | ------------- | ------------------------------------------- |
    | User              | Auto/Dropdown | User from trigger or select specific user   |
    | Product           | Dropdown      | Product to grant                            |
    | Send confirmation | Boolean       | Whether to send purchase confirmation email |
  </Accordion>

  <Accordion title="Remove Product Purchase from a User">
    Revokes a user's access to a product.

    | Field   | Type          | Description                               |
    | ------- | ------------- | ----------------------------------------- |
    | User    | Auto/Dropdown | User from trigger or select specific user |
    | Product | Dropdown      | Product to remove                         |
    | Refund  | Boolean       | Whether to issue a refund                 |
  </Accordion>

  <Accordion title="Grant Program Access to a User">
    Gives a user access to a program.

    | Field           | Type          | Description                                   |
    | --------------- | ------------- | --------------------------------------------- |
    | User            | Auto/Dropdown | User from trigger or select specific user     |
    | Program         | Dropdown      | Program to grant access to                    |
    | Access duration | Dropdown      | Permanent, until specific date, or for X days |
  </Accordion>

  <Accordion title="Revoke Program Access from a User">
    Removes a user's access to a program.

    | Field             | Type          | Description                               |
    | ----------------- | ------------- | ----------------------------------------- |
    | User              | Auto/Dropdown | User from trigger or select specific user |
    | Program           | Dropdown      | Program to revoke                         |
    | Send notification | Boolean       | Whether to notify the user                |
  </Accordion>

  <Accordion title="Book User for Session">
    Automatically books a user into a [session](/scheduling/creating-your-first-scheduler).

    | Field     | Type             | Description                               |
    | --------- | ---------------- | ----------------------------------------- |
    | User      | Auto/Dropdown    | User from trigger or select specific user |
    | Session   | Dropdown         | Session/scheduler to book                 |
    | Date/Time | Date/time picker | When to book the session                  |
  </Accordion>

  <Accordion title="Remove User from Session/Booking">
    Cancels a user's booking.

    | Field          | Type          | Description                                     |
    | -------------- | ------------- | ----------------------------------------------- |
    | Booking        | Auto/Dropdown | Booking from trigger or select specific booking |
    | Refund credits | Boolean       | Whether to refund credits used                  |
  </Accordion>

  <Accordion title="Wait / Delay">
    Pauses the automation before continuing to the next action.

    | Field      | Type          | Description                                |
    | ---------- | ------------- | ------------------------------------------ |
    | Duration   | Number + Unit | Minutes, hours, days, or weeks             |
    | Wait until | Date/time     | Alternative: wait until specific date/time |

    **Continuation Conditions** (optional):

    | Condition                           | Description                                              |
    | ----------------------------------- | -------------------------------------------------------- |
    | Has booked a session                | Continue only if user booked since automation started    |
    | Hasn't booked a session             | Continue only if user hasn't booked                      |
    | Has made a purchase                 | Continue only if user purchased since automation started |
    | Hasn't made a purchase              | Continue only if user hasn't purchased                   |
    | Still has a specific tag            | Continue only if user still has this tag                 |
    | No longer has a specific tag        | Continue only if user no longer has this tag             |
    | User hasn't replied to last message | Continue only if no reply received                       |

    <Note>
      If a continuation condition isn't met, the automation stops for that user.
    </Note>
  </Accordion>

  <Accordion title="Send to External Webhook">
    Sends data to an external URL for integrations.

    | Field            | Type            | Description                       |
    | ---------------- | --------------- | --------------------------------- |
    | Webhook URL      | Text            | Must be HTTPS                     |
    | Method           | Dropdown        | POST or PUT                       |
    | Headers          | Key-value pairs | Optional custom headers           |
    | Body             | JSON editor     | Supports dynamic fields           |
    | Retry on failure | Boolean         | Whether to retry if request fails |

    <Note>
      The webhook payload automatically includes full trigger context (user data, event details, etc.).
    </Note>
  </Accordion>
</AccordionGroup>

***

## Dynamic Fields

Dynamic fields let you personalize messages with real data from your automations. Use the exact syntax shown below in any text field that supports dynamic fields.

<Note>
  Copy and paste these fields exactly as shown, including the double curly braces `{{` and `}}`.
</Note>

### User Fields

Available in **all automations**:

| Field                      | What It Inserts      | Example Output                              |
| -------------------------- | -------------------- | ------------------------------------------- |
| `{{field.user.email}}`     | User's email address | [john@example.com](mailto:john@example.com) |
| `{{field.user.firstName}}` | User's first name    | John                                        |
| `{{field.user.lastName}}`  | User's last name     | Smith                                       |
| `{{field.user.phone}}`     | User's phone number  | (555) 123-4567                              |

### Booking Fields

Available in **booking-related automations**:

| Field                                    | What It Inserts                   | Example Output           |
| ---------------------------------------- | --------------------------------- | ------------------------ |
| `{{field.booking.session.title}}`        | Name of the booked session        | Morning Training Session |
| `{{field.user.booking.days_since_last}}` | Days since user's last booking    | 7                        |
| `{{field.user.booking.upcoming}}`        | Whether user has upcoming booking | true or false            |

<Tip>
  Use `{{field.booking.session.title}}` in booking confirmations to remind users which session they registered for.
</Tip>

### Credit Fields

Available in **automations that check credit status**:

| Field                                  | What It Inserts                  | Example Output |
| -------------------------------------- | -------------------------------- | -------------- |
| `{{field.user.credits.has_available}}` | Whether user has any credits     | true or false  |
| `{{field.user.credits.expire_days}}`   | Days until credits expire        | 14             |
| `{{field.user.credits.count}}`         | Total number of credits user has | 5              |

<Warning>
  Credit fields are primarily available in **Scheduled Check** automations. Using them in other automation types may return empty values.
</Warning>

### Example Usage

Here's how to use dynamic fields in a message:

```
Hi {{field.user.firstName}},

You have {{field.user.credits.count}} credits remaining. 
They expire in {{field.user.credits.expire_days}} days.

Book your next session soon!
```

**This would send:**

```
Hi John,

You have 5 credits remaining.
They expire in 14 days.

Book your next session soon!
```

***

## Quick Links

<CardGroup cols={3}>
  <Card title="Build Your First Automation" icon="play" href="/automations/build-your-first-automation">
    Step-by-step beginner guide
  </Card>

  <Card title="Automation Playbook" icon="book" href="/automations/automation-playbook">
    Ready-to-copy recipes
  </Card>

  <Card title="Scheduled Automations" icon="calendar" href="/automations/scheduled-automations">
    Time-based automation guide
  </Card>
</CardGroup>

## Related articles

<CardGroup cols={2}>
  <Card title="Forms Overview" icon="file-lines" href="/forms/overview">
    Build forms that power the New Form trigger
  </Card>

  <Card title="Responses and Automations" icon="file-lines" href="/forms/responses-and-automations">
    See how form responses connect to automation triggers
  </Card>

  <Card title="Product Overview" icon="credit-card" href="/payments/product-overview">
    Set up products that power purchase and subscription triggers
  </Card>

  <Card title="Attach Products" icon="credit-card" href="/payments/attach-products">
    Attach products to emails and messages sent by automations
  </Card>

  <Card title="Scheduling Overview" icon="calendar" href="/scheduling/overview">
    Manage sessions referenced by booking triggers and actions
  </Card>

  <Card title="Creating Your First Scheduler" icon="calendar" href="/scheduling/creating-your-first-scheduler">
    Set up schedulers used in Book User for Session actions
  </Card>

  <Card title="Inbox Overview" icon="inbox" href="/inbox/inbox-overview">
    Where automated in-app messages are delivered
  </Card>

  <Card title="Announcements" icon="inbox" href="/inbox/announcements">
    Learn about the announcement action for broadcast messages
  </Card>

  <Card title="Tags and Filters" icon="users" href="/people/tags-filters">
    Manage the tags used in trigger conditions and tag actions
  </Card>

  <Card title="People Overview" icon="users" href="/people/overview">
    Manage member profiles that automations interact with
  </Card>
</CardGroup>
