Communication Automations
How sequences, triggers, and events work — and how Automations differ from Sales Campaigns.
On this page
Overview
An automation holds one or more Sequences. Each sequence has:
- One or more Triggers — the events that start a client on the sequence.
- Optional Trigger Conditions — narrow which occurrences of a trigger count.
- Optional Stop Conditions — end the sequence early for a given client.
- An ordered list of Events — what actually happens, in order, once a client enrolls.
This is Landscapt's own internal automations engine — distinct from Equipt CMMS's meter-threshold and PM-schedule automations, and distinct from Zapier (see the Zapier guide).
Triggers
Every sequence starts from one or more triggers, grouped by the record type they fire on. Some triggers add an inline filter — for example "Visit completed" can be scoped to a specific service, "Job created" to a specific job type, or "Estimate expiring" to a specific number of days out.
| Category | Triggers |
|---|---|
| Client / Lead | Client created, Client cancelled, Client reactivated, Client source updated, Lead created, Lead cancelled, Lead converted to client, Client referred a new lead/client, Credit card charge failed, Credit card about to expire, Credit card updated, Has opted in for emails, Has opted in for texts, Payment method updated |
| Contract | Contract created, Contract signed, Contract about to expire |
| Damage Case | Damage case created |
| Estimate | Estimate created, Estimate sent, Estimate won, Estimate lost, Estimate expiring, No response from client |
| Form | Form submitted |
| Invoice | Invoice created, Invoice sent, Invoice past due, Invoice paid |
| Job / Visit | Job created, Job cancelled, Package created, Package renewed, Visit completed, Visit completed for a specific service, Visit cancelled, Visit dispatched, Visit skipped, Visit date changed, Visit moved to waiting list |
| Tag | Tag added, Tag removed |
| Ticket | Ticket created (from the New Ticket dialog, the client portal, a texted-in message, a web form, a crew upsell suggestion or Zapier — not from an automation's own Create Ticket step), Ticket closed, Ticket past due, Ticket reopened |
Form submissions route into automations through the Form submitted trigger — see the dedicated Forms guide for how forms are built and published; this page doesn't re-cover that. The trigger can be limited to specific forms ("All forms" by default), so a Snow Quote follow-up runs only for the Snow Quote form. Tags a form adds on submit fire Tag added, and the first step of a form or new-lead sequence goes out right away instead of waiting for the next 15-minute run.
Customer decisions count. Estimate was won fires when the customer accepts through the proposal link or the client portal, and when an open estimate is converted to a job; Estimate was lost fires when they decline in the portal. Lead cancelled fires both when a lead is cancelled from the Clients list and when it is closed as lost from the Leads page.
Bulk edits fire triggers too. Adding or removing a tag on many clients at once fires Tag added or Tag removed for each client that actually changed (a client that already had the tag isn't counted as newly tagged), and a bulk edit of a client's source or email opt-in fires the same triggers as editing one client.
Trigger Conditions vs. Stop Conditions
Both are easy to mix up because they look identical to build — a list of field/operator/value rows — but they apply at different points and combine differently.
| Name | Lives on | Behavior |
|---|---|---|
| Trigger Conditions | Attached to the trigger itself | Extra AND-joined checks that must all be true for the trigger to fire in the first place. With none set, the sequence fires on every occurrence of the trigger event. |
| Stop Conditions | Attached to the sequence | OR-joined checks evaluated before each event runs. If any one is met, the sequence stops before that next event — the client simply exits the sequence. With none set, the sequence always runs to completion. |
Estimate, Invoice and Ticket conditions need a matching trigger. Those conditions read the estimate, invoice or ticket that fired the trigger, so they are only offered when the sequence's trigger is an estimate, invoice or ticket event. On any other trigger (a visit or tag event, say) there is no such record, so the condition could never be met — a start condition would never enroll anyone and a stop condition would never stop. The builder hides them with a hint, and an old rule that already uses one is still shown (and logged as not applicable when it is checked).
Custom field conditions. The "Custom field" condition (available in trigger conditions, stop conditions and If Branches) lets you pick one of your client custom fields, then compare it. Text fields offer equals, not equals, contains, does not contain, is set and is not set; number fields offer equals, not equals, greater/less than (or equal to), is set and is not set. It reads the client's saved value when the trigger fires and again each time a stop condition or If Branch is checked. A client with no value matches "is not set", "not equals" and "does not contain" (an empty field isn't equal to or containing anything, so "Map code does not equal X" passes for a client with no map code); every other comparison is not met. If the field is deleted, the condition is never met and the editor shows "Field deleted" so you can pick another. If you change a field's type, the stored value is read as the new type, and a value that does not fit counts as empty.
Restrict Entry To (in the sequence's Rules dialog) limits who can enroll at all: All clients and open leads, Active clients only, Residential clients only, Commercial clients only, Leads only, or Former clients only (inactive or cancelled). It is checked on every way a client can enter — a trigger firing, a service visit, or an estimate or meeting date trigger — so a "Residential only" sequence never emails a commercial client. A client who doesn't qualify is simply not enrolled.
Copying an automation
The copy button on an automation's row in the list duplicates it as "<name> (Copy)" — all its sequences, steps (including If Branch blocks), start triggers with their conditions, stop conditions and entry/re-entry settings. The copy is created disabled, so nothing enrolls or sends until you review it and switch it on. Requires the Create / modify automations permission.
When you switch an automation on — from the list or inside the builder — it's checked first for setups that would silently do nothing: no sequences, a sequence with no start trigger or no active steps, a sequence that is only Wait steps, or an Email / Text Message step with nothing written in it. These show as a Turn on with warnings? prompt; choose Turn on anyway to go ahead.
Events
Events run top-to-bottom in the order you arrange them on the sequence canvas.
| Event | What it does |
|---|---|
| Wait | Pauses the sequence for a set number of days, hours, and minutes before the next event runs. Two optional settings refine when it resumes, both read on your company clock: Then wait until a time of day (e.g. wait 1 day, then continue at 9:00 AM — if that time has already passed today it rolls to tomorrow), and Weekdays only (a Saturday or Sunday result moves to Monday at the same time). |
| Sends an email from a chosen sender to the client's primary email, billing email, and/or all contacts marked ok-to-email. Subject and body support merge tags and can pull from a saved document template. Beyond the client tags, email and text steps can use invoice tags — [invoicenumber], [invoicetotal], [invoicebalance], [invoiceduedate], [invoiceterms], [viewinvoiceonline], [paymentlink] — which fill in for automations started by an invoice trigger (and are blank otherwise), and service tags — [servicename], [servicedate] for the client's last completed service, [nextservicename], [nextservicedate] for their next scheduled one, plus [chemicalnotice], the compact Notice of Treatment for that last completed visit (blank when it logged no chemicals). The Email Category decides who is suppressed: Marketing, General and Follow-up emails are not sent to clients marked Do Not Market (and carry an unsubscribe link), while Transactional and Reminder emails still reach those clients. A hard-bounced address or a client marked not OK to email blocks every category. | |
| Text Message | Sends an SMS to the client's primary phone, their billing phone (a number typed Billing in the client's phone list), and/or every contact's phone, per the Send To boxes. Texting is gated by the client's SMS opt-in (contacts have no separate consent setting, so every number is texted under the client's opt-in). Can require manual approval before sending, same as email. |
| Alert | Posts an in-app alert to one or more chosen users — for internal heads-up, not client-facing. The severity (Info, Warning, Urgent) shows in the alert's title in the notification bell ("Warning: Automation Alert", "Urgent: Automation Alert"). The message supports merge tags such as [clientfirstname]. |
| Ticket | Creates a support ticket with a title, description, priority (Low, Normal, High, Urgent), and an assignee. The title and description support merge tags such as [clientfirstname]. |
| If / Branch | Checks one or more conditions against the client/job/estimate record. The steps inside the branch only run when every condition is met — everyone else skips the whole block and continues with whatever comes after it. See If Branch blocks below. |
| Note | A builder-only annotation for whoever edits the sequence. It does nothing when the sequence runs: nothing is added to the client's activity timeline, and the sequence just moves on to the next step. |
| Update a field | Writes a value onto the client record: sales person, client source, billing term (Due on Receipt, Net 10/15/30/45/60/90), or a custom field. Billing term sets the client's Invoice terms, so new invoices for that client use it. A Billing term condition checks the same field. |
| Tags | Adds and/or removes one or more tags on the client. |
If Branch blocks
An If Branch guards a block of steps. Every step inside the block runs only when all of the branch's conditions are met; for everyone else the whole block is skipped and the client carries on with the first step after it.
- Adding steps to a block. Add an If Branch from the Events list, then use Add step inside on its card and choose the step type. Steps inside a branch show indented under an orange line. You can put any step in a block, including a Wait or another If Branch (a nested block is skipped along with the block around it).
- Steps are added at the end. A new step goes to the end of the sequence, or to the end of the block when you use Add step inside. There's no drag-to-reorder or move-into-block yet — to change what sits inside a branch, delete the step and add it again inside.
- Deleting a branch deletes its block. Removing an If Branch also removes every step inside it, so a guarded step can never end up running for everyone by accident.
- Turning a branch off. A deactivated If Branch isn't checked at all, so the steps inside it run for every client. Deactivate the individual steps instead if you want them to stop.
- If Branches that existed before blocks. Earlier If Branches guarded only the one step directly after them. Those steps were moved inside their branch automatically, so running sequences behave exactly as before. Add more steps inside the branch if you meant it to guard several.
- In the execution log, a branch is recorded as branch true (the block ran) or branch false (the block was skipped).
Worked example: New Lead sequence
A common pattern — greet a new lead, then follow up differently depending on whether they've received an estimate yet:
- Trigger: Lead was created.
- Wait — 1 day.
- Email — a welcome email from the assigned sales rep, sent to the client's primary email, restricted to weekday send hours.
- If / Branch — condition: no estimate has been sent yet. Inside the branch (added with Add step inside):
- Wait 2 more days, then Text Message — a short nudge asking if they'd like an estimate.
- A lead who already has an estimate doesn't meet the condition, so they skip both steps and fall through to whatever comes after the branch.
- Tags — add the tag "Lead Nurture Sent" so reporting and other automations can see this lead already went through the sequence.
A Stop Condition of "Lead cancelled" on the sequence means that if the lead is marked cancelled at any point — say, right after the welcome email but before the branch — the text-message nudge never fires.
Email send windows & approval
Every Email event has three settings beyond the subject/body/recipients:
- Send Mon–Fri only — skips weekends; if the event would otherwise fire on a Saturday or Sunday, it goes out on Monday when its Send Between window opens (8:00 AM by default). This applies to approved emails too.
- Send Between — a start and end time window (defaults to 8:00 AM–6:00 PM); the email only goes out inside that window, judged on your organization's clock. A step that comes due outside it (a visit completed at 11 PM, a wait that ended overnight) is held and goes out when the window next opens. A window whose start is later than its end, such as 10:00 PM to 6:00 AM, runs overnight.
- Require approval before sending — holds the email in a pending state for a person to review and release, instead of sending automatically. Text-message steps work the same way, with one addition: texts only go out between 8:00 AM and 9:00 PM in your organization's time zone, so approving a text at night shows "Approved — will send tomorrow at 8:00 AM" and it is sent then (opt-out, do-not-text and bounce checks run again at the moment it actually sends). An email approved outside its Send Between window, or on a weekend with Send Mon–Fri only on, is held the same way and goes out when the window opens.
- Who is told. When a step is parked for approval, every admin and manager in your organization gets an in-app notification ("Automation step needs approval"); only admins and managers can approve or reject.
Automations vs. Sales Campaigns
These two features look related but serve different jobs — don't reach for one when you mean the other.
| Automations (Sequences) | Sales Campaigns | |
|---|---|---|
| Trigger | An event on an individual client/job/estimate/ticket record | You send it manually to a segment, once (or scheduled) |
| Audience | One client at a time, as they hit the trigger | A segment: All Clients (active and inactive clients), Active Clients, Leads, Past Clients, or a custom list |
| Channel | Email, text, alerts, tickets, notes, field updates, tags | Email, SMS, or postcard blast |
| Status / tracking | Ongoing, evaluated continuously as records change | Draft, Scheduled, Sending, Active, Paused, Completed, Cancelled — tracks delivered, opened, clicked, unsubscribed |
Use an automation for "when X happens to this client, do Y." Use a Sales Campaign for "send this blast to everyone in this list right now."
FAQ
Why did a step inside an If Branch run for a client who didn't meet the condition? Check that the step is actually inside the branch — steps inside show indented under the branch card, and a step after it at the normal level always runs. Also check the branch itself is active; a deactivated branch is never checked, so its steps run for everyone. The execution log shows branch false when a client skipped a block.
What happens when a client clicks Unsubscribe in a marketing email? The link opens a confirmation page showing your company name; nothing changes until they press the Unsubscribe button on it (this stops mail scanners that pre-open links from unsubscribing people by accident). Once confirmed, the client is marked Do Not Market, a note is added to their Activity timeline, and the campaign's unsubscribed count goes up. Marketing emails also carry the one-click unsubscribe header that Gmail and Apple Mail show as their own Unsubscribe button.
Do automation emails include an unsubscribe link? Yes. Emails sent by an automation get the same footer and one-click header as campaigns, and a client who is marked Do Not Market stops receiving them. Text-message steps never send before 8 AM or from 9 PM in your company time zone — a step that comes due overnight waits and goes out at 8 AM.
What if someone marks one of our emails as spam? The client is automatically marked Do Not Market and a note is added to their Activity timeline, so campaigns and marketing automations stop reaching them. Invoices, estimates and other service emails still send — only a bounced (dead) address blocks those, and only that address: the client's other addresses keep getting email.
I approved an automation email and it was refused. Why? The client's status is re-checked at the moment you approve. If they unsubscribed while the step was waiting, the approval is blocked — reject the step instead. A recipient address that bounced in the meantime is dropped and the email goes to the others; if every recipient bounced, the approval is blocked.
I approved a queued step and was told the automation was stopped. Turning an automation off, or deleting it, stops its enrollments but leaves their approval requests waiting. Approving one is refused ("reject this step instead") so the email or text you meant to halt doesn't go out. Empty email steps: an email step with no subject and no visible body text is skipped rather than sent as "(no subject)", so fill in at least one of them.
Can an automation email send itself before anyone reviews it? Only if "Require approval before sending" is off for that email event. Turn it on to hold the email for manual approval before it sends — useful when you're not fully confident in a new automation yet.
What happens if a step can't run? A step that can't finish never stalls the sequence silently. If it's misconfigured (an alert with no recipients, an unsupported field update) it is logged and skipped, and the sequence moves on. If it hits a temporary problem (a database or email-provider error) it retries after 15 minutes, then 30 minutes, 1 hour and 2 hours. After 5 attempts the client is dropped from the sequence so they can be enrolled again. Each attempt shows in the execution log.
Good to know
- Text steps need SMS set up. If your company hasn't finished SMS registration, text-message steps show “SMS setup not complete — this step is skipped” in the builder and the step's dialog, and when one is skipped your admins get one notification (at most once a month). The rest of the sequence still runs.
- Short meeting reminders. “Meeting is coming up” triggers are checked every 5 minutes, so a 5- or 10-minute lead time fires on time.
- Cancelled or moved meetings. If a meeting is cancelled, deleted or rescheduled, the reminders still waiting for it stop (shown as “Stopped (meeting changed)” in the activity log). A rescheduled meeting gets fresh reminders for its new time.
- Deleted clients. Deleting a client stops every sequence they are in, including ticket, alert, field-update and tag steps (“Stopped (client deleted)”), and a deleted client is never enrolled again.
- Client-status triggers check the client. Client cancelled, Lead cancelled, Lead converted, Client reactivated and the opt-in triggers only fire when the client is actually in that state, so a cancellation email can't be sent to an active customer.
- Alert and ticket steps stay in your company. An alert only reaches active users in your organization, and a ticket step's assignee must be one of your employees (otherwise the ticket is created unassigned and your New Ticket recipients are told). A text step with an empty message is skipped instead of retried.
- Web-form leads. A lead created by a public web form fires Lead created as well as Form submitted, so lead automations pick it up.
- Scheduling a campaign. Saving a campaign with a Schedule Send date keeps it as a draft. Use Mark Scheduled on the campaign row to arm it; scheduled campaigns go out at the top of the hour. Scheduling or sending needs Send/Launch Campaign. Send Now follows the same rules as a scheduled send: it is refused for a company whose subscription is canceled or whose trial has ended, and for demo companies.
- Approvals. Held messages can be approved or rejected by admins, managers, and anyone with Create/Modify Automation.
- Demo companies. Demo or sandbox companies never send automated emails or texts (sequences, campaigns, reminders, expiry notices, scheduled reports). Visits and invoices still generate so demos look real.
- Expired trials. A company whose trial has ended stops sending automations until it subscribes; its pending steps wait and resume after.
- Activity stats. The Email and SMS activity pages show figures for the most recent 500 messages and say so once that limit is reached.