Overview
Email marketing in Brainito is organised around four things: contacts (the people), audiences and segments (who a message goes to), templates (what it looks like) and campaigns and automations (when it sends). Everything else — senders, suppressions, reporting — exists to serve those.
If you are setting up for the first time, do it in this order. Each step depends on the one before it, and skipping the first is the most common reason a first send lands in spam.
- 1
Verify a sending domain
Without this, inbox providers cannot confirm your mail is really yours. - 2
Import your contacts
A CSV upload, a store sync, or the API. - 3
Create an audience
A list you can send to, either fixed or rule-based. - 4
Build or pick a template
Use the visual builder or start from the template library. - 5
Create a campaign and review it
The review step tells you what will really happen before you commit.
Workspaces & members
A workspace is a tenant: its own contacts, audiences, campaigns, senders and billing. Agencies have one workspace per client, plus their own.
Owners can add members with a role. An invited person receives an email with a link straight into that workspace. If someone belongs to more than one workspace — for example their own plus an agency they work with — a workspace switcher appears in the header of the Email Marketing section, next to the workspace name. People with access to only one workspace never see it.
| Role | What they can do |
|---|---|
| Owner | Everything, including billing. Exactly one per workspace. |
| Admin | Everything operational — send, import, edit, manage members. |
| Member | Day-to-day work: build and send campaigns, manage contacts. |
| Viewer | Read-only. Useful for clients who want visibility without risk. |
The active workspace lives in the URL
Senders & domains
Under Senders & Domainsyou add the address mail goes out as, and verify the domain it belongs to. A sender profile is a name and an email address — “Barestep Support” <hello@barestep.com>. The domain behind it has to be verified before a campaign can be scheduled.
What verification actually checks
You add DNS records at your domain provider and Brainito confirms they resolve. Three things matter, and the Check DNS panel shows each one:
| Record | What it does | If it is missing |
|---|---|---|
| DKIM | Cryptographically signs your mail so receivers know it is genuinely from your domain. | Gmail and Outlook cannot verify you. Much more of your mail goes to spam. |
| Return-Path (MAIL FROM) | Aligns the bounce address with your domain rather than the sending infrastructure. | Weakens DMARC alignment, which reduces inbox placement. |
| DMARC | Tells receivers what to do with mail that fails the checks above. | Receivers apply their own judgement, which is less predictable. |
Do this before your first large send
Contacts & importing
Contacts arrive four ways: a CSV import, a store connection such as Shopify, the API, or a signup form. Every contact records where it came from, and the audience view shows that alongside when it joined the list.
Importing a CSV
Upload the file, map the columns, and Brainito checks each row before anything is added. Rows are split into three groups:
| Group | Meaning | Can you override? |
|---|---|---|
| Added | The address looks fine and nobody has opted out. | — |
| Held back — deliverability | Bad syntax, a domain that does not resolve, or an address that has already failed. | Yes. You may know better than we do, so these are shown for review and can be included. |
| Held back — consent | The person unsubscribed or reported mail as spam. | No. Adding them back would not make them mailable — every send filters opt-outs regardless of which list they are on. |
A fourth category, risky, is counted but never held back: disposable providers, role addresses like info@, and likely typos. These deliver perfectly well, so excluding them would make the import disagree with the sender.
Validation status never blocks a send
unknown until something proves otherwise. That is not a warning — it simply means we have not judged the address. Only an address a receiving mail server has actually refused is marked undeliverable and excluded.Audiences
An audience is a list you send to. There are two kinds, and the difference matters:
| Type | How membership works | Use it for |
|---|---|---|
| Static | A fixed set of contacts. People stay until you remove them. | An imported list, a webinar sign-up, a one-off promotion. |
| Dynamic | Backed by a segment. Membership is recalculated from your rules, so it changes on its own. | “Engaged in the last 90 days”, “bought more than once”. Set it up once and it keeps itself current. |
Membership is not reach
This is the single most misread number in the product. A list containing 8,757 people might send to 7,587, because unsubscribes, spam complaints, suppressed addresses and confirmed-undeliverable addresses are removed at send time.
So when you pick an audience in the campaign composer, the number underneath it reads “7,587 mailable from 8,757”. The second figure is what the list holds; the first is what a send actually reaches. If more than half a list is unreachable the hint turns amber — worth noticing before you send, not after.
The contacts view
Inside an audience, contacts are listed with the most recently added first, each showing when it joined this list and how it arrived — API, CSV import, Shopify, signup form. Note that joining a list is a different date from when the contact record was first created: re-importing an existing customer gives them a fresh join date on that list.
Segments
A segment is a set of rules that selects contacts. Build one, preview the count live, then either use it directly or turn it into a dynamic audience.
Rules combine with match all (every rule must be true) or match any(at least one). Groups let you nest the two — “engaged AND (bought shoes OR bought boots)”.
Rule types
| Type | Selects on | Example |
|---|---|---|
| Metric | How often an event happened, and when | Opened an email at least once in the last 90 days |
| Commerce | Order and spend history | Lifetime spend over 5,000 |
| Consent | Whether you may email or text them | Can receive email |
| Property | A field on the contact | First name is not empty |
| Tag | A tag you applied | Tagged “vip” |
| List | Membership of an audience | Is not in “Recent buyers” |
| Date | A date field on the contact | Created in the last 30 days |
| Location | Where they are | Country is South Africa |
| Group | A nested set of rules | Used to mix “all” and “any” |
Timeframes
Anything time-based supports twelve windows, including in the last N days, at least N days ago, between two dates, more than N days ago, and anniversary matching such as day falls in the next 7 days — which is how you build a birthday flow.
A rule about data you do not have matches everyone or no-one
Templates & the builder
Start from the template library or build from scratch in the visual builder. Templates are reusable, so the ones you use often should live here rather than being rebuilt per campaign.
The builder produces email-safe HTML, which is not the same as web HTML — inbox clients are far more limited. Building visually rather than pasting HTML is what keeps a design intact in Outlook. You can still paste your own HTML if you have it.
Personalisation
Merge tags insert contact data — {{first_name}} and similar — and resolve per recipient at send time. Always set a fallback for a tag that might be empty, or some recipients will see a greeting with a blank where their name should be.
Media
Images live in the Media library, organised into folders and reusable across templates and campaigns. Upload once and reference it anywhere.
Creating a campaign
A campaign is one message to one set of people at one time. The composer has three steps: Details, Content, then Review & Send.
Step 1 — Details
| Field | What to enter |
|---|---|
| Campaign name | Internal only — recipients never see it. It also becomes the default UTM campaign name, so keep it meaningful. |
| Sender | Which verified address it comes from. |
| Audience | One or more lists. Tick as many as you need — see below. |
Sending to more than one list
The audience picker is multi-select. Choosing three lists sends to everyone across them, and each person receives the message once even if they appear on all three — the overlap is removed automatically, and the mailable count shown accounts for it.
You can also refine targeting: also include another list or segment, or excludeone. Excluding is how you send to “everyone except recent buyers” without building a new segment for it.
Step 2 — Content
| Field | Notes |
|---|---|
| Subject line | The one thing that decides whether it gets opened. |
| Preview text | The grey line after the subject in the inbox. Left empty, clients show the first words of your email instead — usually not what you want. |
| Email body | Pick a template, design it, or paste HTML. |
Step 3 — Scheduling
Leave the schedule empty to send immediately, or pick a date and time. Scheduled campaigns can still be edited — see below.
The review step
This is the most useful screen in the product and the easiest to skip. It shows a live preview of the actual email — the exact body that will be sent, with the preview text applied — beside a summary and a set of pre-send checks.
What the checks mean
| Check | What it is telling you |
|---|---|
| Sending domain | Whether DKIM, Return-Path and DMARC all resolve. If not, it names the failing records and links to the fix. |
| List health | Your measured bounce rate over recent sends. Under 2% is healthy. For a first send with no history, it reports how much of the list has never been mailed instead. |
| Cold contacts | How many were added long ago and have not heard from you since. People who have forgotten they signed up complain rather than bounce, and a complaint costs more. |
| Allowance | Whether your plan covers this send today. If the send is larger than what is left, it tells you how many go now and how many wait. |
| Schedule contention | Everything else already committed to the same day — other scheduled campaigns and an estimate of automation volume. Two campaigns that each fit alone can still break the day between them. |
Warnings do not block sending
The summary also breaks down who is excluded and why — “7,587 of 8,757 will receive this”, with counts for suppressed, unsubscribed and undeliverable. If that gap surprises you, stop and look at the list before sending.
UTM link tracking
With this enabled — it is on by default — every link in the email is tagged so clicks show up in your website analytics attributed to this campaign.
| Field | Leave blank and you get | What to put |
|---|---|---|
| Source | email | Your brand or list name. This is the field most worth filling in. |
| Medium | email | Leave as email — that is the analytics convention. |
| Campaign | your campaign name, lowercased and hyphenated | A stable name you will recognise in reports. |
So a campaign called End of Summer Sale 2 with all three left blank turns https://shop.example.com/sale into https://shop.example.com/sale?utm_source=email&utm_medium=email&utm_campaign=end-of-summer-sale-2.
What is never tagged
Unsubscribe links, mailto: and tel: links, in-page anchors, and any link you already tagged yourself — your own tags always win, which is how you override a single link. Existing query strings and #fragments are preserved.
Where to see the results
Editing a scheduled campaign
A scheduled campaign has not sent yet, so it can still be changed. From the campaign list or its detail page, choose Edit to change the name, audience, sender, template or send time. Changes apply to the queued send — you do not need to cancel and rebuild.
| Changing this | Effect |
|---|---|
| Audience | Changes who receives it. Recipients are worked out at send time, so this genuinely retargets the campaign. |
| Sender | Must be a verified domain, or the send will be refused. |
| Template | Replaces the subject and body with that template's. Leave it on “Keep current content” to change other settings without touching the email. |
| Send time | Reschedules. Clearing it entirely returns the campaign to draft. |
Once a campaign has started sending, settings are locked — retargeting something already half-delivered would change what the report means. Use Edit as a copy to branch a new draft instead.
Automations (flows)
Where a campaign is one message to everyone at once, an automation sends to one person at a time, triggered by something they did. This is usually where most of the revenue comes from, because the message arrives when it is relevant.
How a flow is built
A flow starts with a trigger, then a chain of steps:
| Step | What it does |
|---|---|
| Trigger | Starts the flow — a contact is created, or an event happens such as abandoned checkout, placed order, or order fulfilled. |
| Sends one email. | |
| Delay | Waits minutes, hours or days before the next step. |
| Condition | Splits the path on a rule — opened the last email, spent over a threshold. |
| Tag | Adds or removes a tag, useful for tracking who reached a stage. |
| Exit | Ends the flow for that contact. |
Ready-made flows
Templates exist for the common ones — abandoned checkout, post-purchase follow-up, fulfilment notice, win-back, refund follow-up, and a welcome series for new contacts. Start from one and adjust rather than building from an empty canvas.
Store-triggered flows need a store connected
Deliverability
Deliverability is whether your mail reaches the inbox rather than the spam folder. It is earned slowly and lost quickly.
Suppressions
The suppression list holds addresses that must not be mailed. Entries arrive automatically, with different consequences:
| Reason | Meaning | Permanent? |
|---|---|---|
| Unsubscribe | They asked you to stop. | Yes — and correctly so. |
| Complaint | They marked your mail as spam. The most damaging signal there is. | Yes. |
| Hard bounce | A receiving server said the mailbox does not exist. | Yes. |
| Soft bounce | A temporary failure — mailbox full, greylisted, receiver busy. | No. Held for a cooling-off period, then tried again. |
Soft bounces use an escalating cooldown — roughly a week, then a fortnight, then a month — before an address is treated as permanently gone. A temporary failure should never cost you a real customer forever.
Practical rules
| Do | Why |
|---|---|
| Verify your domain before the first send | Unauthenticated mail at volume is the fastest way to a spam reputation. |
| Warm up gradually on a new domain | Going from zero to 100,000 in a day looks exactly like a spammer. |
| Mail engaged people more, everyone else less | Engagement is the strongest inbox-placement signal you control. |
| Never buy a list | Bought lists produce complaints and spam-trap hits that damage every future send. |
| Watch the bounce rate | Under 2% is healthy. Above that, clean the list before sending again. |
Reporting
Each campaign reports delivered, opened, clicked, bounced, complained and unsubscribed, with a workspace-wide view under Metrics and Stats.
| Metric | How to read it |
|---|---|
| Delivered | Accepted by the receiving server. Not the same as reaching the inbox — spam-foldered mail still counts as delivered. |
| Open rate | Directional only. Privacy features on Apple Mail and others inflate it, so treat trends as meaningful and absolute numbers as approximate. |
| Click rate | The number to trust. A click is a real action that cannot be faked by a privacy proxy. |
| Bounce rate | Under 2% is healthy. A spike usually means a stale or bought list. |
| Complaint rate | Should be near zero. Even a small number does real damage. |
| Unsubscribe rate | Not a failure. It is people self-cleaning your list — far better than a complaint. |
Integrations & the API
Store and ad connections
Connecting a store under Connections syncs customers and their order history, and produces the events that power commerce segments and store-triggered flows — placed order, abandoned checkout, fulfilment, refunds. Ad platform connections sync audiences outward.
The onsite pixel
The Tracking section gives you a script to add to your website. It records onsite behaviour your backend never sees — which products someone viewed, which pages they visited — enabling browse-abandonment flows. It only records events for visitors it can identify, so call identify once you know who they are, or enable form capture.
API keys
For programmatic access, create a scoped key under API keys and read the Email API reference. Keys carry only the permissions you grant. A contact created through the API is not subscribed unless you say so explicitly — this is deliberate, and it protects you as much as the recipient.
Still stuck?
The help centre covers billing, plans and the rest of the platform, and the Email API reference covers everything programmatic.