CRM Automations
Automate CRM workflows — create deals, update stages, notify owners, send emails — triggered by CRM events.
CRM Automations
The CRM module doesn't host a dedicated automations UI. CRM automations live on two shared surfaces so you can mix CRM triggers with actions from any other module in a single flow.
The old /crm/automations page has been retired. Use the Visual Builder for custom workflows, or the Quick Rules settings page for common on/off toggles.
Where to go
| Need | Surface | Path |
|---|---|---|
| Build a custom multi-step workflow (trigger on a CRM event, act anywhere) | Visual Automation Builder | /automations |
| Toggle a pre-configured CRM rule on/off | Quick Rules | /settings/automations |
| Per-project automations on tasks | Project settings → Automations | /projects/[id]/automations |
See the Automations platform guide for the full feature walkthrough.
CRM triggers available in the Visual Builder
| Trigger | Fires when |
|---|---|
| Contact Created | A new contact is added to the CRM |
| Deal Created | A new deal is created |
| Deal Stage Changes | A deal moves to a new pipeline stage |
| Deal Closed Won | A deal reaches the Closed Won stage |
Every trigger above is wired automatically — creating a contact from the UI, an import, or the API fires matching active workflows without any extra setup.
CRM actions available in the Visual Builder
| Action | What it does |
|---|---|
| Create Deal | Insert a new deal record |
| Update Deal | Update whitelisted fields on an existing deal (title, stage, status, value, currency, probability, notes) |
| Update Win Probability | Set probability on a deal (0–100) |
| Assign Owner | Reassign the owner of a deal, contact, ticket, task, issue, or project |
| Flag as Stale | Record a stale_flagged event in the audit log for follow-up reporting |
You can combine these with actions from any other module in a single workflow — for example, Deal Closed Won → Create Project + Send Template Email + Create Invoice.
Example — Welcome a new contact
| Step | Setting |
|---|---|
| Trigger | Contact Created |
| Action 1 | Send Template Email — template welcome_lead, to_field = "email" |
| Action 2 | Log Event — event = "lead_welcome_sent" |
| Error handling | Continue on error |
Save, activate. New contacts created anywhere in the app (UI, import, API) trigger the flow.
Example — Celebrate a closed-won deal
| Step | Setting |
|---|---|
| Trigger | Deal Closed Won |
| Action 1 | Send In-App Notification — user_id = <sales_manager_id>, message = "{{title}} just closed for {{value}} {{currency}}" |
| Action 2 | Create Project — name = "Onboard {{title}}", pre-populated from the deal's contact_id |
| Action 3 | Create Invoice — currency = {{currency}}, contact pre-filled |
| Error handling | Retry on error (3×) |
Troubleshooting
A workflow isn't firing?
- Check the workflow is Active at
/automations. - Check the Runs tab at
/automations/runsfor the matching trigger window — if the run appears with status failed, open it for the exact error per action. - Confirm the feature flag is on — the admin must have set
NEXT_PUBLIC_AUTOMATIONS_ENABLED=true. - Confirm the triggering action really happened in CRM (look at the audit log / recent record changes).
Next Steps
- Automations platform guide — full feature walkthrough + architecture
- CRM Settings — configure pipeline stages + price books referenced by automations
- API Reference — fire a workflow externally via webhook trigger