Choose Who Receives Your Campaign
Make sure your message reaches exactly the right people — a saved list you re-use, a live segment that updates itself, or a one-off file you exported from somewhere else. Getting the audience right (and clean) is what decides whether the send lands or wastes your quota. This step works the same for every channel — Email, WhatsApp, SMS, and Voice Call.
Entry pointGrowth → Campaigns → New Campaign
| Article summary | Details |
|---|---|
| Step in creator | 3 of 4 · Audience |
| Where to go | Inside any campaign: Setup → Content → Audience |
| Channels it applies to | Email · WhatsApp · SMS · Voice Call |
The Three Audience Types
The Audience step shows three cards. Pick exactly one:
| Audience type | When to use | What it asks for |
|---|---|---|
| Contact List | A saved list of recipients you re-use often | A single dropdown — pick the saved list. |
| Dynamic Segment | A live segment defined by tags | Pick one or more tags; recipients refresh at send time. |
| File Upload | A one-off CSV / XLSX exported from another tool | Upload the file; Brixi parses headers and previews rows. |
The card you pick is highlighted in purple. Below the cards, the right-hand panel switches to match — Saved Contact List dropdown, tag picker, or file-upload zone.
Contact List
Use a Contact List when the same audience runs more than once (monthly newsletters, regional outreach lists, VIP segments).
- Tick the Contact List card.
- The Saved Contact List dropdown appears. Pick the list.
- The Estimated audience card refreshes to show the live contact count (e.g., Estimated audience — 4 contacts).
- Click Continue → Schedule & Review.
What a saved list contains
Each saved list is a snapshot of contacts maintained inside Brixi (under CRM → Contacts → Lists). The campaign send time uses the current list membership — adds and removes between save and send are picked up automatically.
Saved lists are the most reusable option — when the same audience is going to receive multiple campaigns (weekly, monthly), save it once as a list and pick it from this dropdown instead of re-uploading a CSV each time.
Dynamic Segment
Use a Dynamic Segment when you want recipients defined by
tags that change over time (e.g., status:hot-lead,
source:facebook, region:bangalore).
- Tick the Dynamic Segment card.
- Pick one or more tags from the picker.
- The Estimated audience card shows the live match count.
- Click Continue → Schedule & Review.
Dynamic segments re-evaluate at send time — if a contact stops matching the tag rule between save and send, they're excluded.
File Upload
Use File Upload for a one-off send from a list you already have as a spreadsheet (CSV or XLSX export from another CRM, lead form, or event registration).
- Tick the File Upload card.
- The Sample format panel and a drop zone appear.
- (Optional) Click Download sample CSV or Download sample XLSX to grab a starter file with the right headers.
- Drag your CSV / XLSX into the Upload your contact list zone, or click the zone to open the file picker.
- On upload Brixi shows a File uploaded successfully toast,
replaces the drop zone with a file preview card showing
<filename>+ size, and adds a Replace File button if you need to swap it. - The Estimated audience card and Sample contacts preview below populate.
- Tick the opt-in compliance checkbox (see next section).
- Click Continue → Schedule & Review.
Required headers
The header row depends on the channel because the join key differs:
| Channel | Required header row |
|---|---|
FirstName, LastName, Email | |
FirstName, LastName, PhoneNumber | |
| SMS | FirstName, LastName, PhoneNumber |
| Voice Call | FirstName, LastName, PhoneNumber |
Phone numbers must include the country ISD code —
+919876543210 or +14155552671, not 9876543210. The sample CSV
includes this in the instructions panel.
Extra columns become template variables
Any column beyond the required three becomes a per-recipient template variable.
Example CSV:
FirstName,LastName,PhoneNumber,source,status
Asha,Rao,+919876543210,Facebook,New
Karan,Patel,+919876543211,Website,Repeat
In a template that references {{ source }} and {{ status }},
each recipient gets their own values substituted in. A
Variables detected badge appears at the top-right of the sample
preview when Brixi spots extra columns.
Replacing or removing the file
- Replace File — pick a different file (same shape required).
- Back (bottom-left) — clears the upload and re-opens the audience cards. Switching from File Upload to Contact List or Dynamic Segment discards the uploaded file.
Opt-In Compliance Checkbox
After File Upload, Brixi shows a mandatory checkbox:
"I confirm that I have acquired these contact details through explicit opt-in and have legal permission to send them marketing communications."
You can't continue with Continue until the box is ticked. This is a legal requirement for marketing sends — keep evidence of how each list was collected.
The checkbox is per-upload, not workspace-wide — every CSV / XLSX upload requires confirmation again.
Estimated Audience & Sample Contacts
Once the audience is picked or the file is parsed, two extra cards appear below the main panel:
- Estimated audience — the count Brixi will attempt to send to. For dynamic segments and lists, this is live and refreshes at send time.
- Sample contacts — a table of the first five rows with the
columns
First Name,Last Name,Phone/Email(depending on channel),Variables, andErrors. Use this to spot-check formatting before launch.
The Variables column shows extra-column values as chips
(source Facebook, status New, etc.). The Errors column
flags rows that will be skipped — bad phone format, missing email,
unsupported chars in name.
Channel-Specific Rules
The audience step is shared, but the rules for valid recipients differ by channel:
| Channel | Skipped when | Tip |
|---|---|---|
| Email column is empty / invalid | Run a quick =ISNUMBER(FIND("@",B2))-style check in the spreadsheet before upload. | |
| Phone missing or missing country ISD code | Always +<country><number>. Numbers without + are skipped. | |
| SMS | Same as WhatsApp | Same as WhatsApp. |
| Voice Call | Phone missing or missing country ISD code | Confirm the phone is dialable from your Voice provider's region. |
Common Issues
| Issue | What to check |
|---|---|
| Audience count is lower than the CSV row count | Rows with bad email / phone are skipped. Open Sample contacts → Errors to see which rows. |
| Uploaded file has Invalid headers | The header row must contain the required columns for the channel (see Required headers). Header names are case-insensitive. |
| All phone-channel rows are skipped | Country ISD code is missing — phones must start with +<country>. Re-export from your spreadsheet with the prefix added. |
| Variables don't fill on the live send | The audience file doesn't have a column for the template's variable. Re-upload with the column. |
| Continue stays disabled | Opt-in compliance checkbox not ticked, or Estimated audience is 0. |
| Saved list dropdown is empty | No saved lists exist yet — create one under CRM → Contacts → Lists. |
| Dynamic Segment match count is 0 | Tags chosen don't match any current contacts — try one tag at a time to narrow it. |
| Replace File button doesn't appear | The first upload didn't finish (no File uploaded successfully toast) — wait, or click the drop zone again. |
Most audience problems are list problems, not product problems — empty saved-list dropdowns and zero-match segments mean the lists or tags don't exist yet in CRM → Contacts, which you or your admin can fix there.
Contact Brixi support if a CSV / XLSX with the exact required headers is still rejected as Invalid headers, or the Estimated audience count never appears after a successful upload. Attach the file (with test data, not real contacts) and a screenshot of the error.