Triggers & Actions
Available triggers and actions for journey automation
This page provides a complete reference of the trigger events that start journeys, the step types that make up workflows, and the exit conditions that end enrollments early.
Trigger events
Triggers are domain events that automatically enroll clients into a journey. Each trigger type corresponds to a specific business event.
| Trigger | Event | Entity enrolled |
|---|---|---|
| JOB_COMPLETED | A job is marked as completed | Client |
| JOB_SCHEDULED | An appointment is created for a job | Client |
| NEW_LEAD | A new client is created | Client |
| PROPOSAL_SENT | A quote or estimate is sent to a client | Client |
| INVOICE_SENT | An invoice is sent to a client | Client |
| PAYMENT_SCHEDULE_CREATED | A payment plan is created for a client | Client |
| PAYMENT_SCHEDULE_ACTIVATED | A payment plan begins processing | Client |
| PAYMENT_SCHEDULE_ITEM_OVERDUE | A scheduled payment becomes overdue | Client |
Trigger conditions
Triggers support optional conditions that filter which events qualify for enrollment:
| Condition | Description | Applicable triggers |
|---|---|---|
| source | Match events from a specific source | All |
| proposalKind | Match only QUOTE or ESTIMATE proposals | PROPOSAL_SENT |
| tags | Match clients with any of the specified tags | All |
| minAmount | Match only when the event amount exceeds a threshold | INVOICE_SENT, PROPOSAL_SENT |
Step types
Steps are the building blocks of a journey workflow. Each step type serves a different purpose.
Send a personalised email to the enrolled client. Requires a subject and body. Supports template variables such as {{clientFirstName}}, {{companyName}}, {{serviceName}}, {{appointmentDate}}, {{invoiceNumber}}, and {{invoiceTotal}}.
Emails are sent via the platform email system and respect client unsubscribe preferences. If the client has unsubscribed, the email is suppressed and the journey continues.
Delay
Pause the journey for a fixed duration before proceeding. Configure with a number and a time unit.
| Unit | Example |
|---|---|
| hours | Wait 2 hours |
| days | Wait 3 days |
| weeks | Wait 1 week |
| months | Wait 1 month |
Scheduled Delay
Pause the journey until a calculated time relative to a date field on a related entity. Useful for "send 24 hours before the appointment" scenarios.
| Parameter | Description |
|---|---|
| relativeTo | Entity field path (e.g., appointment.scheduledStart) |
| offset | Number of time units. Negative = before, positive = after. |
| offsetUnit | One of hours, days, or weeks. |
If the calculated target time is in the past, the journey proceeds immediately without waiting.
Wait for Reply
Pause the journey until the client replies to the previous email or a timeout is reached. When the timeout fires, one of three actions can occur:
| Timeout action | Behaviour |
|---|---|
| continue | Move to the next step in the sequence. |
| exit | Exit the enrollment entirely. |
| branch | Follow a specific branch (condition path). |
Condition
Evaluate a condition and branch the workflow accordingly. Condition steps have two outgoing connections: a "Yes/True" branch and a "No/False" branch.
| Condition type | What it checks |
|---|---|
| field | Compare an entity field using equals, contains, greater_than, or less_than. |
| email_opened | Whether the previous email was opened. |
| replied | Whether the client replied to the previous email. |
Action
Perform an automated operation during the journey. Available action types:
| Action type | Description |
|---|---|
| add_tag | Add a tag to the enrolled client. |
| remove_tag | Remove a tag from the enrolled client. |
| update_field | Update a field on the enrolled entity. |
| webhook | Call an external URL with a GET or POST request containing the enrollment context. |
Notification
Send an in-app notification to team members. You can configure who receives the notification:
| Target | Description |
|---|---|
| Specific users | Notify specific team members by ID. |
| Assigned users | Notify the user assigned to the enrolled entity (e.g., job owner). |
| By role | Notify all users with a specific role (e.g., admin, manager). |
If no recipients are specified, notifications are sent to account administrators by default.
Exit conditions
Exit conditions automatically remove a client from a journey when a specific event occurs. This prevents sending irrelevant messages (for example, payment reminders after an invoice is paid).
| Exit event | Use case |
|---|---|
| JOB_COMPLETED | Stop follow-ups when the work is done. |
| UNSUBSCRIBED | Respect the client's opt-out across all journeys. |
| invoice_paid | Stop payment reminders when the invoice is settled. |
| proposal_accepted | Stop proposal follow-ups when the client approves. |
| appointment_cancelled | Stop appointment reminders when the visit is cancelled. |
| PAYMENT_SCHEDULE_COMPLETED | Stop payment plan reminders when all installments are paid. |
When a client exits a journey, the enrollment status changes to Exited with the triggering event recorded as the exit reason. If the journey has re-enrollment enabled, the client can be enrolled again when the trigger fires next.
What's Next
- Automation overview -- understand the journey system and common use cases.
- Creating journeys -- step-by-step guide to building your first journey.