Actions are what an automation does at each step. Every step is either a communication step, a records step, an integration step, or a logic step.

Pick actions freely — you can chain any of them in any order. The one exception is control-flow steps (Filter, Paths, Delay), which affect what runs downstream. Those live in Filters, paths, and delays.
Communication
| Action | What it does | Dependencies |
|---|---|---|
| Send SMS | Sends a text to the customer. | Messaging addon + A2P approval |
| Send email | Sends an email to the customer, tech, or a fixed address. | None |
Both accept {{variable}} interpolation in subject and body. See Variables and step outputs.
Records — Read
Read steps re-fetch a record inside the run — useful when an earlier step updated it and you need the fresh version, or to check a field before branching.
| Action | Reads |
|---|---|
| Get customer | Latest customer name, contact info, tags, address. |
| Get job | Latest job status, tech assignment, scheduled/actual times, description. |
| Get estimate | Latest estimate status, total, line items. |
Output fields are available downstream as {{steps.STEP_ID.output.field}}.
Records — Write
Write steps modify Run a Call data.
| Action | What it does |
|---|---|
| Create customer | Create a new customer (name, phone, email, address, company). Useful with an inbound webhook. |
| Update customer | Modify an existing customer's name, contact, address, company. |
| Add tag to customer | Attach a tag. Creates the tag if it doesn't exist. |
| Remove tag from customer | Detach a tag. No-op if the tag isn't attached. |
| Create job | Schedule a new job for a customer. |
| Update job | Modify job title, customer, description, location. |
| Update job status | Move a job to a new status (Scheduled, En route, In progress, Completed, Cancelled, etc.). |
| Create invoice from job | Auto-generate an invoice from a job's line items. |
| Create membership | Enroll a customer in a plan. |
| Update membership | Modify status, plan, or pricing. |
| Add note | Attach a note to a customer record. Note is visible in the customer's Notes tab. |
Operations
| Action | What it does |
|---|---|
| Assign technician to job | Creates a new appointment and assigns the given tech. Useful for auto-dispatch flows. |
Integrations
| Action | What it does |
|---|---|
| Send / fetch via webhook | POST or GET to any external URL. Response body is parsed as JSON and made available downstream as {{steps.STEP_ID.output.field}}. |
Use this to fan-out to Slack, push to a Google Sheet via Zapier, hit a Google Maps distance API, or call your own tool.
Logic
| Action | What it does |
|---|---|
| Filter | Continue only if a condition is true; otherwise, stop the flow silently. |
| Paths | Split into multiple branches. Each branch has its own condition and its own downstream steps. |
| Delay | Wait a fixed amount of time (seconds, minutes, hours, days) before the next step. |
Full guide: Filters, paths, and delays.
What's not a step today
- Update invoice — no direct action. You can
Create invoice from joband cancel the old one manually, but you can't rewrite an existing invoice from an automation. - Send push notification — no in-app push step; use Send SMS.
- Create a task / to-do for a team member — not exposed as an action yet.
- Read a webhook on an event (i.e., outbound webhook) — you can call
Send / fetch via webhookfrom an automation, which is a workaround; a dedicated outbound-event webhook feature isn't part of Automations today (see Integrations & API for org-wide webhook subscriptions). - Wait until a condition is true — no polling action. Use Delay + a Get step + a Filter as a workaround.
Rate limits and safety
- Each automation is capped at 100 steps per run to protect against runaway loops. Reaching the cap stops the run and shows an error in the timeline.
- Message steps count against your Messaging plan's SMS bucket and Voice bucket the same way manual sends do.
- Webhook fetch steps have a per-run timeout; long-running third-party calls will error.