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

# Workflow triggers reference

> Complete reference of every workflow trigger available in HoopAI, organized by category with filters and use cases.

Every workflow starts with a trigger — the event that kicks off the automation. Below is a complete reference of all available triggers, grouped by category.

<Note>
  Some triggers are only available on certain plans. Premium triggers are marked with a star.
</Note>

***

## Contact triggers

| Trigger                  | Fires when                                         | Available filters                  | Common use cases                        |
| ------------------------ | -------------------------------------------------- | ---------------------------------- | --------------------------------------- |
| **Contact Created**      | A new contact is added (manual, import, form, API) | Source, tags, assigned user        | Welcome sequence, lead notification     |
| **Contact Changed**      | A field value on a contact is updated              | Specific field, old/new value      | Re-engagement when status changes       |
| **Contact Tag Added**    | A tag is applied to a contact                      | Tag name                           | Segment-based nurture campaigns         |
| **Contact Tag Removed**  | A tag is removed from a contact                    | Tag name                           | Exit sequences, update status           |
| **Contact DND Updated**  | Do-Not-Disturb status changes                      | Channel (SMS, email, call), on/off | Compliance logging, channel switching   |
| **Birthday Reminder**    | Contact's birthday field matches today             | Days before                        | Birthday offers, greeting messages      |
| **Task Added**           | A task is created on a contact                     | Task type, assigned user           | Manager notifications                   |
| **Task Completed**       | A task is marked complete                          | Task type                          | Follow-up sequences                     |
| **Note Added**           | A note is added to a contact record                | User who added                     | Internal alerts                         |
| **Custom Date Reminder** | A custom date field matches a relative date        | Days before/after, field name      | Renewal reminders, anniversary outreach |

***

## Appointment triggers

| Trigger                        | Fires when                               | Available filters              | Common use cases                  |
| ------------------------------ | ---------------------------------------- | ------------------------------ | --------------------------------- |
| **Appointment Booked**         | A new appointment is scheduled           | Calendar, calendar group, user | Confirmation messages, prep tasks |
| **Appointment Rescheduled**    | An appointment time is changed           | Calendar                       | Updated reminders                 |
| **Appointment Cancelled**      | An appointment is cancelled              | Calendar, cancellation reason  | Win-back sequences                |
| **Appointment No-Show**        | Contact marked as no-show                | Calendar                       | Re-booking campaigns              |
| **Appointment Reminder**       | A set time before the appointment        | Minutes/hours before           | Reminder SMS/email                |
| **Appointment Status Changed** | Status changes (confirmed, showed, etc.) | New status                     | Status-based follow-up            |

***

## Pipeline and opportunity triggers

| Trigger                        | Fires when                                  | Available filters              | Common use cases                    |
| ------------------------------ | ------------------------------------------- | ------------------------------ | ----------------------------------- |
| **Opportunity Created**        | A new opportunity is added                  | Pipeline, stage, source        | Sales team notification             |
| **Opportunity Stage Changed**  | An opportunity moves to a different stage   | Pipeline, from stage, to stage | Stage-specific tasks, notifications |
| **Opportunity Status Changed** | Status changes (open, won, lost, abandoned) | Pipeline, new status           | Won/lost follow-up                  |
| **Opportunity Value Changed**  | The monetary value is updated               | Pipeline                       | High-value deal alerts              |
| **Opportunity Assigned**       | Assigned user changes                       | Pipeline, new user             | User-specific onboarding            |
| **Stale Opportunity**          | No activity for a set number of days        | Pipeline, days stale           | Re-engagement nudges                |

***

## Payment triggers

| Trigger                    | Fires when                        | Available filters | Common use cases                |
| -------------------------- | --------------------------------- | ----------------- | ------------------------------- |
| **Invoice Created**        | A new invoice is generated        | Amount range      | Internal logging                |
| **Invoice Sent**           | An invoice is sent to the contact | —                 | Follow-up reminders             |
| **Invoice Paid**           | Payment is received on an invoice | Amount, product   | Thank-you messages, fulfillment |
| **Invoice Overdue**        | Invoice passes its due date       | Days overdue      | Payment reminders               |
| **Payment Received**       | Any payment is processed          | Amount, source    | Receipts, onboarding            |
| **Subscription Created**   | A recurring subscription begins   | Product           | Welcome drip                    |
| **Subscription Cancelled** | A subscription is cancelled       | Product           | Win-back campaign               |
| **Order Placed**           | An order is submitted             | Product, amount   | Fulfillment workflow            |
| **Order Form Submission**  | An order form is completed        | Form name         | Upsell sequences                |

***

## Form and survey triggers

| Trigger                  | Fires when                              | Available filters      | Common use cases         |
| ------------------------ | --------------------------------------- | ---------------------- | ------------------------ |
| **Form Submitted**       | A form is filled out and submitted      | Form name              | Lead capture follow-up   |
| **Survey Submitted**     | A survey response is submitted          | Survey name            | Feedback-based routing   |
| **Quiz Completed**       | A quiz is finished                      | Quiz name, score range | Score-based segmentation |
| **Order Form Submitted** | An order form with payment is submitted | Form name              | Purchase confirmation    |

***

## Communication triggers

| Trigger                              | Fires when                          | Available filters                              | Common use cases           |
| ------------------------------------ | ----------------------------------- | ---------------------------------------------- | -------------------------- |
| **Call Status Changed**              | A call ends with a specific status  | Status (completed, busy, no-answer, voicemail) | Missed call text-back      |
| **SMS Received**                     | An inbound SMS is received          | Contains keyword, phone number                 | Keyword opt-in, auto-reply |
| **Email Opened**                     | A contact opens an email            | Email campaign                                 | Engagement scoring         |
| **Email Clicked**                    | A contact clicks a link in an email | Link URL, campaign                             | Interest-based follow-up   |
| **Email Replied**                    | A contact replies to an email       | —                                              | Sales notification         |
| **Email Bounced**                    | An email hard/soft bounces          | Bounce type                                    | List cleanup               |
| **Email Unsubscribed**               | A contact unsubscribes              | —                                              | Compliance logging         |
| **Facebook Message Received**        | A message arrives via Facebook      | Page                                           | Social lead capture        |
| **Instagram Message Received**       | A message arrives via Instagram DM  | —                                              | Social engagement          |
| **Google Business Message Received** | A GBP message is received           | —                                              | Local lead follow-up       |
| **Live Chat Message**                | A webchat message is received       | Widget                                         | Chat-to-SMS handoff        |
| **WhatsApp Message Received**        | An inbound WhatsApp message arrives | —                                              | WhatsApp nurture           |
| **Voicemail Received**               | A voicemail is left                 | Phone number                                   | Voicemail follow-up        |

***

## Membership and course triggers

| Trigger                    | Fires when                      | Available filters | Common use cases       |
| -------------------------- | ------------------------------- | ----------------- | ---------------------- |
| **Course Started**         | A student begins a course       | Course name       | Welcome message        |
| **Lesson Completed**       | A student finishes a lesson     | Course, lesson    | Progress encouragement |
| **Course Completed**       | A student finishes all lessons  | Course name       | Certificate delivery   |
| **Membership Granted**     | Access is given to a membership | Offer             | Onboarding drip        |
| **Membership Revoked**     | Access is removed               | Offer             | Win-back               |
| **Community Post Created** | A member posts in a community   | Group             | Moderation alerts      |

***

## Custom and advanced triggers

| Trigger                      | Fires when                                       | Available filters        | Common use cases            |
| ---------------------------- | ------------------------------------------------ | ------------------------ | --------------------------- |
| **Trigger Link Clicked**     | A contact clicks a trigger link                  | Link name                | Click-based branching       |
| **Manual Action Completed**  | A user completes a manual action step            | Action name              | Human-in-the-loop workflows |
| **Inbound Webhook**          | An external system sends data to the webhook URL | —                        | Third-party integrations    |
| **Customer Replied**         | A contact replies via any channel                | Channel type             | Conversation routing        |
| **Contact Engagement Score** | Score crosses a threshold                        | Above/below, score value | Hot lead alerts             |
| **Custom Field Changed**     | A specific custom field is updated               | Field name, new value    | Data-driven automation      |
| **Recurring Date**           | Fires on a schedule (daily, weekly, monthly)     | Day/time                 | Recurring tasks, reminders  |

***

## Tips for choosing triggers

<AccordionGroup>
  <Accordion title="Use specific triggers over broad ones">
    Instead of triggering on "Contact Changed" for everything, use purpose-built triggers like "Opportunity Stage Changed" or "Tag Added" — they give you better filters and fewer false fires.
  </Accordion>

  <Accordion title="Combine triggers with filters">
    Most triggers let you filter by specific values. Always set filters so your workflow only runs for the right contacts — for example, filtering "Form Submitted" to a specific form.
  </Accordion>

  <Accordion title="Watch for duplicate enrollments">
    By default, a contact can only be enrolled in a workflow once. If you need re-enrollment, enable it in the workflow's enrollment settings. See [Enrollment settings](/automation/enrollment-settings).
  </Accordion>
</AccordionGroup>
