Invoice & payment triggers
| Trigger | Fires when | Available conditions |
|---|---|---|
| Invoice sent | An invoice is delivered to the client | Client, project, min/max amount |
| Invoice overdue | An invoice passes its due date unpaid | Client, project, min/max amount, minimum days overdue (1–90+) |
| Invoice paid | An invoice is fully paid | Client, project, min/max amount, partial vs full payment |
| Payment received | Any payment is recorded | Client, project, min/max amount, partial vs full payment |
| Payment failed | An automatic payment attempt fails | Client, project, min/max amount, failure reason (declined, insufficient funds, expired card), minimum retry attempts |
| Invoice disputed | A client opens a payment dispute | Client, project, min/max amount |
| Installment due approaching | A payment plan installment is coming due | Client, project, days before due (1–30), overdue only toggle, min/max installment amount |
Lead & pipeline triggers
| Trigger | Fires when | Available conditions |
|---|---|---|
| Lead created | A new lead is added | Client, project, lead source, min/max deal value |
| Lead won | A lead is marked as won | Client, project, lead source, pipeline stage, min/max deal value |
| Lead stage changed | A lead moves between stages | Client, project, from stage, to stage, lead source, min/max deal value |
From/to stage filtering
The "Lead stage changed" trigger lets you specify both the stage the lead moved FROM and the stage it moved TO. This is how you build stage-specific automations like "when a lead moves from Qualified to Negotiation."
Proposal & contract triggers
| Trigger | Fires when | Available conditions |
|---|---|---|
| Proposal sent | A proposal is delivered to the client | Client, project, min/max amount |
| Proposal accepted | The client accepts a proposal | Client, project, min/max amount |
| Proposal declined | The client declines a proposal | Client, project, min/max amount |
| Contract sent | A contract is sent for signature | Client, project |
| Contract signed | All signers have signed the contract | Client, project |
Client & project triggers
| Trigger | Fires when | Available conditions |
|---|---|---|
| Client created | A new client record is created | None (fires for all new clients) |
| Project completed | A project is marked as completed | Client, project, project type |
| Milestone completed | A project milestone is marked complete | Client, project, milestone name pattern |
| Appointment upcoming | An appointment is approaching | Client, project, reminder lead time, booking type |
| Questionnaire completed | A client completes a questionnaire | Client, project |
Timing triggers
| Trigger | Fires when | Configuration |
|---|---|---|
| Wait a duration | After a configurable delay (hours/days) | Delay presets (1h–7d) or custom hours, before/after anchor date |
| On a schedule | At a specific time on a recurring basis | Frequency (daily/weekly/monthly), day of week/month, time of day |
Delay cannot be the first trigger
The "Wait a duration" trigger requires another trigger before it. Start with an event or manual trigger, then chain a delay after it to create time-based sequences.
Logic & flow control triggers
| Trigger | Fires when | Configuration |
|---|---|---|
| Condition check | A field condition evaluates to true | Custom field conditions with operators (equals, not equals, greater than, contains, exists) |
| Manual trigger | A user clicks a button on a record | Record type (client/project/invoice), button label |
| Webhook received | An external system sends data to a webhook URL | Each automation gets a unique URL with HMAC signature verification |
| User login | A user logs into the workspace | User role filter (admin/manager/member) |
| Inactivity detected | A record has no activity for N days | Entity type, inactivity threshold, date field to check |
Business intelligence triggers
| Trigger | Fires when | Configuration |
|---|---|---|
| Workspace idle | No team member has logged in for N days | Idle threshold in days |
| Recurring date | The anniversary of a date field arrives | Entity type, date field, days before anniversary |
| Revenue threshold | A client's billing crosses a dollar amount | Metric (total paid/outstanding/invoiced), operator (at least/at most), amount |
| Sentiment change | AI detects a shift in communication sentiment | Entity type (client/lead), direction (negative/positive/any), lookback days. 2 AI credits only when a qualifying change is detected. |
| Anomaly detected | AI detects unusual patterns in your data | Scan scope (billing/activity/pipeline), lookback days. 3 AI credits only when an anomaly is found. |
Universal conditions (all triggers)
Every event trigger supports these conditions in addition to its trigger-specific ones:
- Client ID filter — scope to one or more specific clients
- Project ID filter — scope to one or more specific projects
- Custom field conditions — unlimited rules with field/operator/value. Supported operators: equals, not equals, greater than, at least, less than, at most, contains, exists, not exists.
All conditions are AND
Every condition must match for the trigger to fire. If you set a client filter AND an amount minimum, BOTH must match. There is no OR logic — use separate automations for OR scenarios.
