When a system template doesn't fit your workflow — you want a follow-up 3 days after every install, an internal Slack ping when a $5k+ estimate goes out, a tag-based email drip — build a custom automation.
Create one
- Automations.
- Click + New automation in the right rail.
- The builder canvas opens with an empty Trigger node in the middle and a + below it to add your first step.
Pick a trigger

Every automation needs exactly one trigger. Click the trigger node and pick from:
- Customer — created, updated, tag assigned
- Job — scheduled, status changed, completed, tag assigned
- Appointment — scheduled, completed
- Estimate — sent, approved
- Invoice — issued, paid
- Payment — received
- Membership — created, renewed
- Inbound webhook — anything outside your Run a Call
Full details in Automation triggers catalog.
Some triggers accept a filter in the trigger config itself. Example: Tag assigned to customer lets you scope to a specific tag ("VIP") so the automation only fires for that tag. Leave the tag empty to fire on any tag.
Add steps

Below the trigger, click + to add a step. Steps fall into four groups:
- Communication — Send SMS, Send email
- Records — Read — Get customer, Get job, Get estimate
- Records — Write — Create / Update customer, job, invoice, membership; add / remove tag; add note; assign a tech
- Integrations — Send / fetch via webhook
- Logic — Filter (skip if a condition isn't met), Paths (branch), Delay (wait)
Full catalog in Automation actions catalog.
Each step accepts variables from earlier steps. Type {{ to see what's available at that point in the flow — see Variables and step outputs.
Try it out
There's no whole-flow "test with sample data" button. To try an automation end-to-end:
- Publish it (below).
- Trigger it once by doing the real action — schedule a job on a test customer you own, send an estimate to yourself, POST to your inbound-webhook URL from a tool like Postman or
curl, and so on. - Open the run in Automations → Runs to see every step, its input, its output, and any errors. See Viewing automation runs.
Because a published automation acts for real (real SMS, real emails, real records), trigger it against a test customer you own the first time — not a live customer.
Publish

Automations are Draft by default. Draft automations don't fire on real events — even though they're saved and visible.
- Flip Status → Published (top of the builder).
- The automation starts responding to the trigger event on the next occurrence.
Un-publish anytime by flipping back to Draft.
Rename, move, delete
- Rename: click the title at the top of the canvas.
- Move to folder: on /automations, drag the automation card from its current folder into another folder in the sidebar.
- Delete: from the automation menu (top-right of the canvas), Delete. Soft-delete — run history stays for 90 days.
Naming steps
Every step has an auto-generated ID (step_1, step_2). Rename each step to something readable — customer_email, pay_link_sms — because downstream {{steps.STEP_ID.output.field}} references use whatever you name it. Renaming happens in the step's config panel.
Save behaviour
The canvas autosaves every change. There's no manual Save button. The Status toggle (Draft / Published) is what controls firing, not save state.