Email and SMS Marketing Campaigns

Build consent-aware one-time and drip campaigns, reactivate past customers, and monitor delivery from the web office.

IntermediateUpdated 2026-08-30

Email and SMS Marketing Campaigns

The web Marketing workspace brings V1's campaign and win-back workflow onto V2's tenant-scoped messaging services. It is for customer email and SMS marketing. It is separate from the door-to-door Canvassing campaign workspace.

Marketing campaigns are a web-office feature. No native mobile layout, navigation, label, or interaction changed as part of this release.

Access and permissions

Open Marketing in the signed-in web office. Signed-out requests to the Marketing workspace return to the sign-in page, including nested campaign URLs. Marketing API responses are private and use no-store caching so a browser or shared cache does not retain campaign or audience data.

A teammate with View automations can review campaigns, templates, audiences, and recorded performance. Manage automations is required to create or edit a draft, create a draft from a template, approve delivery, pause, resume, cancel, or archive a campaign.

Location-scoped teammates see and manage only campaigns and customers inside their authorized location. The application rechecks that scope on every read and change; a campaign ID from another organization or location does not grant access.

Campaigns and win-back templates

The workspace has two tabs:

  • Campaigns lists campaign name, type, channel, status, audience size, and

evidence-backed delivery results. Filter the list by status or channel.

  • Win-back templates contains four starting recipes. Selecting **Use

template** creates an editable draft. It never activates or sends the template by itself.

Campaign history is read-only for a teammate who can view but cannot manage automations.

Create a campaign

  1. Select New campaign.
  2. Under Setup, enter a name, select an authorized location, campaign type,

delivery channel, and location timezone.

  1. Under Audience, add the customer filters that must all match. Refresh

the preview to review the count, sample, and consent exclusions.

  1. Under Content, write the email, SMS, or ordered drip steps.
  2. Select Preview or Test. Both render sample content and calculate the

audience without sending email or SMS.

  1. Select Save draft.
  2. When the draft is ready, select Review & send. Confirm the audience,

channels, planned message count, timing, and exclusions before approval.

Choose the location when creating the campaign. The location stays fixed after creation so saved revisions, audience previews, consent checks, and delivery evidence remain scoped to the same authorized location. To target another location, create a new campaign.

Only a draft is editable. Approval creates an immutable campaign revision. One-time and audience-based drip approval freezes one recipient enrollment snapshot per matching customer. A triggered campaign evaluates each future durable event against the approved revision and freezes that event's eligible customer snapshot when the customer enrolls.

The approval screen is bound to the persisted draft revision and a server-prepared recipient fingerprint. If the draft or eligible audience changes after review, approval is rejected and the screen must be refreshed; the system does not silently send a different revision or recipient list.

Campaign types and channels

TypeBehaviorCommon use
One-timeSends one email, one SMS, or one of each to the approved audienceAnnouncements and seasonal offers
DripProcesses ordered email and SMS steps with delays and optional previous-message engagement conditionsWin-back and declined-estimate follow-up
TriggeredEnrolls an eligible customer when the configured durable business event occursPost-service referral or event-based reactivation

Choose Email only, SMS only, or Email + SMS. A mixed-channel drip keeps one stable customer enrollment with separate approved email and phone destinations, so changing channel between steps does not split or stall the sequence.

Build an audience

Audience filters use AND logic: a customer must satisfy every configured filter. Multi-value selections within a filter use the choice described in the editor.

FilterWhat it can target
Primary audienceAll customers, service history, last service, estimate/proposal status, or ZIP/location
ServicesCustomers who purchased any selected service, and customers who did not purchase excluded services
Service recencyMinimum days or months since the latest completed service
Lifetime spendOptional minimum and maximum customer spend
Maintenance planActive, expired, or no plan
Lead sourceOne or more recorded sources
Estimate/proposalSent, viewed, accepted, declined, or expired within a lookback window
GeographyOne or more ZIP codes inside the selected location
Property typeResidential, commercial, fleet, holiday lights, or configured types
Customer healthActive, at risk, dormant, or new
Customer tagsCustomers carrying the selected CRM tags

An estimate/proposal status lookback is enforced against the recorded date of the matching proposal status. For example, Declined within 30 days does not include an older decline merely because the customer still has a declined proposal on file.

The audience preview is a no-send calculation. It shows the matching count, a bounded customer sample, and how many contacts are already excluded by marketing consent. The server rebuilds and validates a one-time or drip audience when the campaign is approved; it does not trust a count sent by the browser. For a triggered campaign, the preview describes customers who match now, not a predetermined future send total. Each event is validated at admission.

Compose and preview messages

Email steps require a subject and body. SMS steps show character length and estimated segment count; text beyond 160 characters usually uses multiple billable segments.

Use only the merge fields offered by the editor. Preview and test replace them with sample values and never contact a provider. At delivery, values are rendered from the frozen customer enrollment and the approved campaign revision, not from arbitrary browser-supplied customer data.

Drip steps

A drip campaign contains ordered email or SMS steps. Each step has a delay from the previous step; email steps also have a subject. A later step can be conditioned on whether the previous email was opened, not opened, clicked, or not clicked.

Conditions skip or continue a linear sequence; they do not create a branching canvas. W36 does not claim V1-style multi-path automation branching.

Delivery work is durably identified by organization, campaign revision, recipient enrollment, step, and channel. Overlapping workers or retries cannot legitimately send the same approved step twice. Pausing or canceling is checked again before a due message reaches the provider.

Due work is leased for 10 minutes. Delivery is absolutely capped at three attempts per step, whether an attempt ends in a provider failure or an expired worker lease; a fourth provider dispatch does not occur. Each worker run processes at most 20 enrollments per organization and at most 10 per campaign and channel, within the caller's overall 1–200 item limit (50 by default). These bounds keep one large campaign from monopolizing a run.

Included win-back templates

TemplateStarting audience or eventIncluded timing
We Miss You!No completed service for at least 90 daysOne editable email/SMS campaign
Seasonal ReminderExisting customers due for seasonal outreach, with a 120-day recency starting pointOne editable email/SMS campaign
Declined Proposal Follow-UpRecent declined or expired estimates/proposalsEmail/SMS/email drip at days 7, 14, and 30
Referral RequestCustomer after completed serviceOutreach beginning 3 days after service

Template text and targeting are starting points. Review the audience, offer, links, timing, and company voice before approving a live campaign.

The V1 names, channels, delays, and audiences remain the baseline, with three intentional compatibility corrections. V2 converts legacy template markup to safe plain text instead of preserving a broken # call-to-action, does not invent a referral discount unless the business has configured that offer, and uses a functioning audience-driven drip where a V1 non-declined recipe was labeled "triggered" without an executable event worker. Event-triggered recipes in V2 are backed by a real durable business event.

Schedule, send, pause, and cancel

  • Send now freezes the approved revision and audience, then queues due work.
  • Schedule stores the future instant together with the selected location

timezone. A durable worker claims it when due.

  • Pause prevents new due steps from reaching a provider. Already delivered

messages cannot be recalled. Work that has exhausted its three attempts remains failed even while the campaign is paused.

  • Resume continues eligible enrollments from their recorded step. If a

non-triggered campaign has no queued, active, or waiting enrollment left, resume completes it atomically instead of leaving an empty active campaign. A triggered campaign resumes active so future durable events can enroll.

  • Cancel permanently stops remaining queued work and records the reason and

time. It does not erase prior outcomes.

  • Archive removes a draft or finished campaign from the normal working list

without deleting its evidence.

A one-time or audience-based drip campaign completes after every frozen enrollment reaches a terminal outcome, including an exhausted failure. A triggered campaign stays active after its current enrollments finish because a future qualifying durable event can enroll another customer; it remains active until the office pauses or cancels it.

Campaign email and SMS use the marketing purpose, which is separate from service messages such as estimates and appointment updates. Clean Estimate Pro checks the current recipient, marketing consent, channel preference, SMS STOP state, and provider-bound delivery eligibility at admission and again before provider dispatch.

Marketing email includes unsubscribe support. Marketing SMS includes STOP instructions. An unsubscribe, revocation, recipient replacement, pause, or cancel recorded after approval suppresses a later due message. Suppressed recipients remain in history with a reason; they are not counted as sent.

A customer reply, a new job or lead appointment, or an opt-out on either approved channel exits the customer's whole campaign enrollment before a later step. The exit check is independent of the next scheduled send time, and the provider-bound guard rechecks the enrollment while holding its row lock.

Campaign timing uses the location timezone selected in the approved revision. Never use campaigns for urgent service notices.

Performance and history

Campaign lists and detail pages load their existing enrollment and message summaries efficiently even for campaigns with many records, while the displayed counts continue to reflect recorded outcomes.

The campaign detail page reports only recorded outcomes:

  • queued, sent, delivered, opened, clicked, replied, suppressed, failed, and

exited outcomes; and

  • evidence-backed results by channel and by step.

Delivery, open, and click counts come from canonical message records populated by provider events when the provider supports that signal. An unavailable provider signal is not presented as a measured zero. W36 does not display a conversion rate because the required business-outcome projection is not yet implemented.

Rates use the relevant evidence-backed denominator. A queued message is not a delivery, and a provider acceptance is not automatically a customer open or a conversion.

Before approving a live campaign

  • Preview the exact email and SMS content.
  • Confirm every link and offer date.
  • Review the sample and consent-exclusion count.
  • Check the location and timezone.
  • Keep SMS concise and account for segment cost.
  • Use Test first; it is guaranteed not to send.
  • For one-time and audience-based drip delivery, confirm that Review & send

shows the audience, channels, timing, and planned maximum message count you expect. A triggered campaign has no predetermined future send total.

Was this article helpful?

Still need help? Contact support