Campaigns and audiences: build, approve, and send safely
A campaign is a one-time send to a segment of your book — a price change notice, an event invite, a newsletter. Audiences are how you build that segment: a live, stackable filter over your PSA data, shared by campaigns and AI sequences alike. This article covers building the audience and getting a manual campaign through approval and out the door. If you want the AI to draft the message itself, see "AI sequences and campaigns" — that article covers the full filter list and AI drafting in depth.

Once the list gets long, group it with folders: click New folder, then drag campaigns in by the handle on the left, or use Move to folder in any campaign's ⋯ menu. That menu can also make a new folder and file the campaign into it in one step. Folders cover the working list — Approvals and Templates stay flat, because both are meant to show you everything at once. See "Import contacts by CSV" for the full folder rules, which are the same on Lists, Campaigns and Sequences.
Build the audience
Open the composer for a new campaign and you'll land on the audience builder. Every filter you add stacks with AND — adding more filters always narrows the list, never widens it. You can filter by relationship, company status (current vs former partner), company type, account owner, location (state and city), industry, classification, contract type, offerings (and offering coverage gaps), tags, saved lists, minimum MRR, whether the company has an open deal, your workspace's own company fields, and whether to scope to primary or active contacts only. A live count updates as you add filters, with a sample of matching contacts so you can sanity-check before you commit.
- +Company type filters on your PSA's own company type picklist — Customer, Prospect, Vendor, Partner, and whatever else your instance defines. The list of types fills itself in from your PSA: both the types your companies already carry and any type you added over there, so a new one is pickable before a single company has been moved onto it. Company type is a different question from the two filters either side of it: relationship asks whether a company holds an active contract, company status asks whether your PSA still counts it as active, and a company typed Vendor can be both.
- +Company status reaches current partners only — it filters on whether a company is still active in your PSA (Autotask, ConnectWise, or HaloPSA), so a service notice skips companies you've offboarded even if they still carry a lingering contract. Pair Active with Customers to reach current partners who also hold an active contract. A company whose status hasn't synced yet counts as active, so nobody is dropped by surprise.
- +Filters with more than fifteen options come as a search box rather than a row of chips. Type to find what you want, tick as many as you like, and what you have picked sits under the box as chips you can remove one at a time. A value you saved months ago that no longer exists in your PSA still shows up there, so a filter is never narrowing your audience out of sight.
- +Account Executives only see their own book when filtering by owner — you can't accidentally pull another AE's companies into your send.
- +Save a combination of filters as a segment so you don't rebuild it next quarter.
- +The same audience builder appears in the sequence composer and behind a dynamic list's rules, so a segment you like works for a one-time campaign, a multi-step sequence, and a list that keeps itself up to date.
Fill a static list from the same filters
A static list no longer has to be built one person at a time. Open any static list and click Add contacts: the dialog has two tabs, Pick by hand for searching and ticking people, and By filter, which opens the same audience builder you use here. Stack the filters, read the count, and click Add — everyone who matches at that moment joins the list in one go. Creating a list works the same way: choose Static, switch on Start from a filter, and the list is created already filled.
- +It is a snapshot. The list does not remember the filter and does not update itself later — that is what a dynamic list is for. Run a filter again on the same list whenever you like, and only the newcomers are added; people already on it are counted, not duplicated.
- +The same engine that previews the audience writes the members, so the builder's Primary contact only and Include inactive contacts switches and the need for an email address apply exactly as they would to a send. One difference to expect: a list keeps one person per email address, the way a send does, so when several contacts share an address the number added comes in a little under the preview count. The confirmation tells you the number that actually landed.
- +An Account Executive fills a list from their own book only, the same as everywhere else in the builder. Sales leadership can fill any list; an AE can fill the lists they created.
- +If nobody matches, nothing is added and the dialog stays open so you can widen the filter.
Open deals, and your own company fields
Two of the filters read things the rest of the builder can't reach. Open deal asks whether the company has a deal still in play — any stage before won or lost, in any pipeline — so a first-touch message can skip every account your team is already working, and a nudge can go only to the ones sitting in the pipeline. It has three settings: Any, In an open deal, and Not in an open deal, and Any is no filter at all, so an audience you built before this existed keeps its exact reach.
Company fields builds conditions over three kinds of field: the fields your workspace added to companies (EBITDA, annual revenue, % recurring, whatever your team tracks), the user-defined fields synced from your PSA, and a set of standard company fields — market segment, lead source, country, postal code, website, phone, LinkedIn, current IT provider, prospect stack, employee count, potential MRR, prospect contract end, last activity, created date, plus yes/no facts such as customer or prospect, active in your PSA, has an open deal, has an account manager, and churn risk. The picker groups them under Your fields, your PSA's fields, and Standard fields. Add a row, choose the field, choose how to compare it, and pick or type the value. Every row must hold, the same as the rest of the builder, and you can stack up to eight.
- +A dropdown field — Lost Reason, Lead Source, Partner Rating, anything with a fixed list — opens with is any of: tick as many values as you like in one row, and the condition matches a company carrying any one of them. Is none of is the mirror: it leaves out every company carrying one of the ticked values, and a company with nothing stored for the field stays in.
- +A text field gets the same two rows, offering the values already stored on your companies as checkboxes (the most common first); type a value that is not listed and press Enter to add it. Contains, is, and is not are still there for a single value. Is not needs a stored value to compare, so a company with nothing on file does not match it — is none of is the row that keeps those companies.
- +A multi-choice field matches with is any of when the company carries at least one of the ticked values, and is none of when it carries none.
- +A money, number, or percent field compares with is over, is under, equals, or is not.
- +A date field compares with is after, is before, or is on.
- +Any field can also ask for has a value or is empty, which take no value of their own.
- +Change a row's field and the comparison re-checks itself: an operator the new kind of field can't use is swapped for one it can, rather than being left to be dropped later.
Exclude
Every filter that takes a list of values — classification, company type, state, city, industry, contract type, tags, contact tags, and saved lists — can now leave people out as well as pick them. Under the filter, choose Exclude and pick the values to keep out; they appear beneath the include row as "And not". Include and exclude stack with everything else: a filter that says classification is Customer and not Vendor reaches customers who aren't also typed Vendor. A value you already included can't be picked as an exclude, so the two rows never cancel each other out. A company with nothing on file for a field is kept by an exclude, because "none of these" is true of an empty value.
Verify the audience before you send
With NeverBounce connected (Settings → Integrations, a Tenant Admin action), the campaign wizard carries a Verify button that reads the audience's state at a glance: green Verified when the list is checked and healthy, amber Verify recommended when enough of it is stale or never-checked to matter, neutral Verify otherwise. Click it and Current runs verification — and opens a pre-send report you can actually work from.
- +Every address in the audience with its verdict — valid, accepts-all, unknown, or flagged — plus NeverBounce's suggested correction where one exists (usually a typo fix).
- +Filter chips to cut the report to one verdict, and a search box to find a specific address or partner.
- +Large audiences show the first 2,000 rows, and the count at the top is the whole audience, not just what's on screen.
- +Flagged addresses are excluded from every send automatically — that's the suppression list doing its job; the report just lets you see it before the send instead of after.
The Live data block (service notices only)
A service-notice campaign — a maintenance window, a policy change, an outage update — can include a Live data block: a small snapshot of each recipient's own account, filled in per-partner at send time so everyone sees their own numbers rather than a generic paragraph. It's available on service notices only, never on marketing campaigns, and it's fully configurable.
- +Choose whether to show the partner's open projects, and how many to list (1–10) — optionally with each project's due date or % complete.
- +Optionally show their next renewal and their account manager.
- +Add an optional custom heading for the block, or leave the default.
- +It stays partner-safe by design: the Live data block never includes any financial data — no rates, budgets, margins, or money figures — exactly like the partner portal.
Pictures and PDFs
The body is a stack of blocks, and two of them carry files: Picture and PDF. Add either one wherever you want it to appear, and move it up or down like any other block.
Pictures are resized and compressed in your browser before they upload, so a six-megabyte photo straight off a phone becomes roughly 300 KB at a size that suits email. You don't have to prepare anything first. JPG, PNG and WebP are accepted, up to 10 MB before compression, and up to ten pictures in one email. Give each picture a short description — many mail clients block images until the reader clicks, and the description is what they see in the meantime.
A PDF works differently: it sends as a download button rather than an attachment, and that's deliberate. Bulk email carrying attachments is one of the more reliable ways to land in a spam folder, and when a workspace sends through a Microsoft 365 mailbox the mail server caps the entire message at a few megabytes — so a real attachment would work from one workspace and quietly fail from another. A button behaves the same everywhere. If you send on your own Resend key, you can also see who clicked it.
Files belong to the campaign you added them to. Delete the campaign and its files go with it. Add a picture, change your mind and delete the block, and the file is tidied up automatically about a week later — there is nothing to clean up by hand and no storage limit to manage.
Sequence emails can carry files too — one picture and one PDF per step, sent below your message and above your signature. See "AI sequences and campaigns" for that.
Who it's from
Every campaign chooses a sender in the composer's "Who it's from" section. Everyone can send as your brand (your workspace name, or the from name you set in Integrations → Email) or as "«you» from «brand»". Sales leadership and tenant admins get two more options for sending as someone else — a leadership-only capability, enforced at the database, not just hidden in the UI.
- +Each account manager — the email is sent per recipient from that company's own account manager. If the account manager's address is on your verified sending domain, it sends from their real address; if not, it still sends from your team's address but replies route back to them. A company with no account manager falls back to your brand.
- +Someone else — the whole campaign is signed by one chosen person. Pick a teammate to fill their name and email automatically, or type a name and reply-to address by hand. Same domain rule: their real address when it's on your verified domain, otherwise replies route to them.
- +The Review step shows a "Who each recipient hears from" breakdown before you send: one line per account manager with the recipient count, plus a fallback line for anyone with no account manager.
Draft and submit for approval
Every campaign moves through a status: draft, then pending approval, then approved, then sending, then sent. Nothing skips a step — the send button simply isn't there until the campaign is approved.
- 1Write the campaignSubject, body, and the audience you built. Save as a draft any time.
- 2Submit for approvalAccount Executives submit their draft for review. Sales leadership (a sales manager or tenant admin) can approve it — or, if the audience is small enough, you can approve your own.
- 3Small sends can self-approveIf your resolved audience is 25 recipients or fewer, you can approve and send your own campaign — no one else has to sign off. Anything larger needs a sales manager or tenant admin to approve.
- 4SendOnce approved, sending kicks off in controlled batches rather than all at once — see guardrails below.
Sending guardrails
- +Sends go out in small batches per workspace, so one large campaign can't crowd out every other tenant's mail — or blow through your own sending reputation in one burst.
- +Every send re-checks opt-outs at the moment it goes out, not just when the audience was built — someone who unsubscribed five minutes ago won't get the email.
- +Every message carries a working unsubscribe link, both in a machine-readable header (so mail clients can show a one-click unsubscribe button) and in the message body as a fallback.
- +If you have NeverBounce connected, invalid and disposable addresses are suppressed automatically before the send — and the wizard's Verify button (see above) shows you exactly which ones, before anything goes out. Full details in "NeverBounce: verify email deliverability before you send".
Reuse a campaign: duplicate and templates
A quarterly notice or a maintenance announcement rarely needs rebuilding from nothing. Open the menu on any campaign row and you get two ways to reuse it, both of which leave the original exactly as it is.
- +Duplicate — makes a fresh draft called "Copy of «name»" carrying the audience, sender, subject, and body. Edit it and send it as its own campaign.
- +Save as template — files a copy under the Templates tab on the Campaigns page. The campaign you saved from is untouched and stays where it was.
- +Use template — starts a new draft from a saved template, so the audience, layout, and copy are already in place.
- +New campaign offers "Start from a template" whenever your workspace has one, alongside starting from scratch.
A copy carries the authoring work and nothing else. It never inherits recipients, send history, open and click results, or the approval stamp — it is born a plain draft with nothing sent.
