Email Campaigns
An email campaign is a newsletter you write once and send to an audience that belongs to one of your pages. The screen is called Email Marketing, it sits under Marketing in the left sidebar, and everything on it, campaigns, contacts and sender settings, is scoped to the single page you opened it from.
Not every page type has it
| Page type | Email Marketing screen |
|---|---|
| Promoter | Yes |
| Artist | Yes |
| Venue | Yes |
| Event | No |
| Crew | No |
Events have no email screen at all. An event borrows the email set-up of one of its promoters, which is why every presale invitation is sent from a promoter page rather than from the event. If you are looking for the mail that announces an event, start from the promoter that organises it, or follow the two-step flow in Presales.
The three page types that do have the screen share exactly the same one. The title reads Email Marketing everywhere; the breadcrumb above it names your page.
Open the screen
- Open Manage, then click the promoter, artist or venue page you want to send from.
- Click Email Marketing in the left sidebar, under Marketing.
Three tabs run across the top: Campaigns, Contacts and Settings. While the screen loads you see its outline, the tabs and grey placeholder rows, rather than a spinner.
Without permission to read email on that page, the screen shows a lock headed Access Denied, with You don't have permission to access this page. underneath, and nothing else. See Manage permissions.
If the first request fails, the screen says Email marketing did not load, reassures you that nothing is lost, and offers Try again. That is a network or server problem, not an empty page: your campaigns are still there.
Turn email on for a page
Email is off until somebody switches it on, once per page.
- Open Email Marketing. On a page that has never used it, the whole screen is one panel headed Set up Email Marketing, with the explanation Enable email marketing to start sending newsletters and campaigns directly to your audience.
- Click Enable Email Marketing. The button reads Setting up… while it works.
- An Email marketing enabled confirmation appears and the three tabs replace the panel.
Only someone allowed to send email can do this. Everyone else sees the same panel with a lock and the line Admin access required to enable this feature. instead of the button. If it fails you get Setup failed with the reason attached.
On a page still on the free plan, an Upgrade button sits at the top right of the screen with the tooltip Upgrade your plan to unlock premium features. It leads to the page's plan. The screen itself is not locked: campaigns work on every plan. What the plan changes is how many contacts the page may hold and how much mail it may send.
Write a campaign
- On the Campaigns tab, click New campaign, at the right of the row above the list. A full-screen editor opens, titled New campaign.
- Under the title, fill Subject. It is required, and it does double duty: it is the subject line recipients see and the name the campaign carries in the list afterwards.
- Fill Preview line beside it. It is the grey line the inbox shows next to the subject; left empty, the subject is simply repeated there.
- Check Audience, the third field of that row. See Choose who receives it below.
- Edit the message in the Code tab on the left, or ask the Assistant tab to write it: see Swapy writes it with you. It opens on a ready-made design carrying your page name, a headline, a button and a footer line, so you are editing rather than starting from nothing.
- Watch Preview on the right. It recompiles a moment after you stop typing, with a thin moving bar under its header while it does, and the Desktop / Phone switch above it changes the rendering width. Links are deliberately dead in the preview.
- Click Save. A Campaign created confirmation appears with Your campaign is ready to edit and send., and the campaign joins the list as a Draft.
As soon as you change anything, Unsaved changes appears under the title. The ✕ at the top left, labelled Close, leaves the editor; with unsaved changes it first asks Close without saving?, with Your changes to this campaign are not saved. Closing now throws them away., and Discard is the only way to lose them. Reloading or closing the browser tab asks too.
Save stays off while something stops it, and the editor says what. A To save: strip appears under the fields, one line per reason, Add a subject or Fix the errors in the code, each with a Fix button that puts you on the field or opens the Errors tab. On a draft you are editing, Save is also off while nothing has changed; its tooltip reads No changes to save.
Assistant opens Swapy in the left half, described below, and Help opens the reference for the markup the editor speaks. On a phone the two halves do not fit side by side: an Edit / Preview switch under the header shows one at a time.
The editor speaks MJML
The Code tab holds MJML, an email markup language, or plain HTML if you
prefer. MJML exists because email clients disagree about everything; you write
tags like <mj-section> and <mj-text> and it produces the table-based HTML that
actually survives Outlook. The starter template is a working example of all of it.
Swapy writes it with you
The Assistant button sits in the top bar, immediately left of Help, and it opens the Assistant tab beside Code. Ask in plain language ("write an announcement for Friday", "make it shorter", "add a button to the tickets") and the campaign changes. There is nothing to copy out of the conversation: the MJML in the Code tab is rewritten and the preview follows a moment later.
It can read what you already sent. Ask it ("read the last three campaigns and use that layout", "look at the one about the closing party") and it fetches the MJML of those campaigns and matches what it finds: the palette, the button, the structure, the way you write. Only campaigns from this page, only ones actually sent, three at a time. It reuses the look and never the words.
Say which event it is about. The About dropdown at the top of the tab lists your page's events, soonest first and past ones after them. Picking one hands the assistant the real ticketing link and the date, which is what stops the copy inventing either. Leave it on No specific event for a newsletter that is not about one, and expect to be asked when the request needs one.
Links arrive tagged. Every Sway address the campaign carries leaves with this
campaign's tracking parameters on it (the page that sent it, the channel, the
event or the subject line, and the preview line), so the visits land under this
campaign in Insights without anyone writing
a query string. A link to anywhere else is left exactly as you wrote it, and so
are the unsubscribe link and anything holding a {{merge_tag}}.
Undo sits beside the answer. Each change is applied the moment it is written, and Undo at the top of the tab puts the document back the way it was before the last one. Nothing is ever sent: the assistant writes drafts, and Save, Send now and Schedule stay yours.
What it will not write. Scripts, forms, embedded frames and javascript:
links are refused. An answer carrying one is dropped whole rather than half
applied, and the assistant says so. A campaign is markup that has to survive
Gmail, not a web page.
The Errors tab
Beside Assistant and Code sit Text and Errors. Errors carries a count whenever the editor has something to say, and switches itself on as soon as an issue appears. With nothing to report it reads Nothing to fix: the campaign compiles cleanly.
Two kinds of issue land there, and they do not behave the same way:
- Errors have a red mark, and they block the save. Save stays off, and the To save: strip lists them, until the last one is gone.
- Warnings have an amber mark and block nothing. The common one is a
typographic character written as a named entity, such as an ellipsis written
with
&. Those are rewritten automatically before the mail goes out, and the warning is there to tell you the substitution happened.
Each issue that knows its line number carries a Line button, such as Line 12; clicking it puts the cursor there. Below the list is a link to the MJML documentation.
One rule catches people out often enough to state on its own: a bare &
inside a link has to be written &. Web addresses that join parameters
with & are flagged with their line number.
{{unsubscribe_url}} in the body, the
automatic one is left out rather than duplicated. Pages on a white-label plan get
the unsubscribe link without the Sway branding.The editor also checks what the campaign links to, which decides where it lands far more often than what it says:
| Warning | Why it matters |
|---|---|
| Images hosted on a free, anonymous image host | Those hosts carry mostly phishing, and filters know it. Upload the image to Sway instead. |
| Images on a domain Sway does not know | Not wrong, only unverified. Prefer your own domain or upload to Sway. |
A resource loaded over plain http | Use https everywhere. |
| Links going through a URL shortener | A shortener hides the destination from every filter. Link to the real address. |
| A web font requested from another site | No mail client loads it, and it adds a third-party call. |
| Almost all image and hardly any text | Filters read that as an image-only mail. |
| No unsubscribe link in the body | Gmail and Yahoo require one from anyone sending in volume. |
None of these block the send. They are the difference between an inbox and a spam folder often enough to be worth a minute each.
The Text tab
Every campaign is sent twice over: the design you built, and a plain-text version beside it. Mail clients that refuse HTML read the second one, and so do the spam filters: a campaign carrying no text version at all is one of the oldest things they hold against a sender.
You do not have to write it. Left empty, the tab shows, in grey, the version that will be sent, written from your design at save time: the copy, the links with their destinations, the unsubscribe line. Images and layout are dropped, because there is nothing to say about them in text.
Type in the tab and your own version is sent instead, exactly as written. The tab then carries a custom badge and is no longer rewritten when you change the design. Empty the field to hand it back to the automatic one.
Choose who receives it
Audience is the third field in the row under the editor's title, after Subject and Preview line. It is a dropdown while the campaign is still editable, which in practice means drafts. A scheduled, sending or sent campaign opens read-only, with Read only: only a draft can be edited under the title, and the field shows the audience as plain text instead.
Two kinds of entry appear in it, and nothing else:
- Subscribers, always first and preselected on a new campaign. It means everyone the page holds.
- One entry per other audience that already exists on the page, shown under the
name that audience was stored with. A CRM segment appears under the segment's
own name. A batch of presale codes appears under the name you typed when you
distributed it, or Presale followed by the event's number if you left that
blank. An audience the platform builds for you, such as the people who signed
themselves up to a presale, was never given a friendly name and appears as a
short code:
presaleregfollowed by the event's number.
Your testers are not in this dropdown and cannot be put there. The screen strips the test audience out of the options before drawing them, so a campaign can never be aimed at it. Testing is a separate action, covered in Send a test to yourself first.
A list and a segment are the same thing here. Whether you built it by filter or it was created for you, it shows up as one more entry in the same dropdown and behaves identically.
Two entry points preselect the audience for you and open the editor already filled in:
- Send as campaign on a CRM segment, on a promoter page. The segment is refreshed first, then you land here with it selected and a notice reading Audience: followed by its name.
- The two presale buttons on an event, described in Presales. The one that only announces the presale leaves the picker on Subscribers, since a public sign-up link is meant for everybody. The one that distributes codes selects the audience holding the addresses you sent them to, and confirms how many people will get a unique single-use link.
Both prefill a subject line written in English, whatever language your admin is set to. Treat it as a placeholder.
People who have unsubscribed are excluded from every campaign, on every audience, with no setting to change that.
A duplicate keeps the original's audience. If that audience has been deleted since, the copy falls back to Subscribers and a notice, Audience no longer exists, tells you so. Pick another audience before sending it.
Send a test to yourself first
- Open the three-dots menu on a draft and click Send a test.
- A panel slides in from the right, titled Send a test, with the campaign's subject under the title. Recipient email already holds your own address; change it to test on someone else's inbox.
- Click Send test. Test sent to the address confirms it, in the panel and in a notification.
The panel states the important part itself: A test goes to this one address. It never reaches your audience, and the campaign stays a draft. It stays open after a send, so a second address is one field away. An address mail cannot be delivered to is refused before anything is sent, with This is not an address mail can be delivered to.
Only drafts can be tested. Once a campaign is scheduled, sending or sent, the option disappears from its menu.
Where the test list fits
The Contacts tab can hold a short bench of testers, kept apart from your subscribers. Its Test list tile shows how many testers you hold out of five, with the note Kept out of every campaign. To add some, open Import contacts and switch Import into from Subscribers to Test list; the switch carries the same count. Paste more than fits and the panel keeps only what there is room for and says how many it left out. With the list full, the panel says Test list is full. Delete a tester before adding new ones. and the import stays off.
Click the Test list tile, or pick Test recipients in the audience filter above the contact table, to read or edit who is on it.
It is kept out of everywhere a campaign is aimed. It is filtered out of the campaign audience picker and out of the list picker in the CRM segment builder, so nothing addressed to an audience can reach your testers by accident. It is also not what Send a test reads: that panel asks for one address every time. The test list is a place to keep the people you preview with, not a shortcut for sending to them.
Send it now
- Open the draft's three-dots menu and click Send now.
- The Send this campaign now? dialog opens. It names the campaign and its audience by name, and for Subscribers it counts them: "“Friday” goes to the 1,204 contacts in Subscribers as soon as you confirm. Anyone who unsubscribed is skipped." On a very large list the count can take too long to wait for, and the dialog then names the audience without the number.
- Click Send now.
Campaign sent appears with Your campaign is now being delivered., and the campaign's status becomes Sending… and then Sent.
The dialog's tinted block says Once it has left, a campaign cannot be recalled or stopped. Send yourself a test first if you have not. and means it literally. There is no recall, no pause window before it starts, and no way to stop a message once it has left. The only safety net is the test send above.
A send that would reach nobody is stopped first. When the campaign goes to Subscribers and the page holds none, Send now and Schedule open Nobody would receive this campaign instead, with It goes to Subscribers, and this page has no subscribers yet. Import contacts first, then send it. Its button, Import contacts, takes you to the Contacts tab with the import panel already open.
Schedule it instead
- Open the draft's three-dots menu and click Schedule.
- A panel titled Schedule campaign slides in from the right, with the subject under the title and Goes to followed by the audience.
- Fill in Date and Time. They default to tomorrow at midday.
- Check Timezone. It is prefilled from your browser, with the hint Filled
from your browser. The send follows this zone. Typing offers the names your
browser knows, such as
Europe/Paris. - Read the line under the fields. It spells out what the three produce, for example Goes out Friday 26 September 2026 at 12:00, Europe/Brussels time., and adds the same moment on your own clock when the zone is not yours.
- Click Schedule.
The campaign turns Scheduled and its row reads Scheduled for with the date, the time and the zone.
Schedule stays off until the three fields describe a moment still to come, and the panel says why in place of the summary: Pick a date and a time., or That moment has already passed in the chosen zone. A zone the browser does not know is marked under the field: Unknown timezone. Use a name like Europe/Paris.
Change your mind
- Open the scheduled campaign's three-dots menu and click Cancel schedule.
- Confirm in Cancel the scheduled send?, which explains that The campaign goes back to draft. You can schedule it again or send it by hand.
Schedule cancelled confirms it and the campaign is a draft again.
This is also how you edit a scheduled campaign. A campaign stops being editable the moment it leaves draft: its menu entry changes from Edit to View and the editor opens read-only, with no Save. Cancel the schedule, edit, then schedule it again.
While it is going out
A campaign in flight shows Sending… and gains a pause button on its row, beside the three-dots menu. Pausing confirms with Campaign paused, and the resume button that replaces it confirms with Campaign resumed. A campaign in the middle of sending cannot be deleted: Delete stays in its menu, greyed, with the tooltip A campaign cannot be deleted while it is going out.
Read the results
A finished campaign fills three columns of its row: Sent, Open rate and Click rate. The two rates are percentages of what was sent, and they stay empty while there is nothing to divide by. Large counts are abbreviated. On a phone the row carries the same result in one line, such as "1.2K sent · 45% opened".
One status deserves special attention. Not delivered is a red status on a campaign that finished having reached nobody, with the line Delivered to no one. Open it, check it and send it again. under its name. It is deliberately not shown as a success. The usual causes are an audience that was empty by the time the send fired, or content the mail builder refused. Open it, look at the Errors tab, fix what it names and send again.
Work through the campaign list
Campaigns are a table, newest first, ten to a page: the campaign and when it was sent, edited or scheduled, its status, its audience, then Sent, Open rate and Click rate. Click a row to open it. On a phone the table becomes a list of the name, the date line, the status and the result.
Once a page holds more than five campaigns, the row above the list gains its tools:
- Search a campaign… filters on the campaign name across the whole list, not just the page you are looking at.
- The dropdown beside it filters by status: All statuses, Drafts, Scheduled, Sending, Paused, Sent. It is tinted while it filters, and the count on the right says how many campaigns match.
- A search that matches nothing reads No campaign matches, with Clear to empty both the search and the status.
The first column holds a checkbox per row, and the one in its header ticks the whole page. As soon as one row is ticked, a bar appears above the list with the count, such as 3 selected, a Delete 3 campaigns button and Clear.
Each row's three-dots menu holds, in order: Edit or View, Duplicate, then on drafts only Send now, Schedule and Send a test, then on scheduled campaigns Cancel schedule, and finally Delete.
Duplicate is the fastest way to reuse a design. It copies the subject, the content and the audience into a brand-new draft and marks the subject as a copy; nothing is created until you press Save.
Manage contacts
The Contacts tab is the audience the campaigns draw on.
At the top, two tiles:
- Subscribers counts what the page holds against what its plan allows, for example "of 5,000 on your plan", with a bar that turns amber and then red as you approach the ceiling. Click it to open the page's plan.
- Test list counts your testers out of five. Click it to show only them.
Reach the ceiling and a block reads Contact limit reached, with the numbers and a See plans button. Import contacts into Subscribers stays off until there is room again.
Import contacts
- Click Import contacts, at the right of the row above the contact list. A panel slides in from the right.
- Under Source, choose Paste or CSV file. Paste takes one entry per line, either an address on its own or the four comma-separated fields the panel lists as email, firstName, lastName, swayUsername. CSV file takes the same columns in a file (Choose a CSV file), and the note confirms (all columns except email are optional).
- Read What will be imported as you type. It counts the contacts ready,
lists the lines it skipped because they do not start with a deliverable
address, with their line numbers, and counts the repeated addresses it left
out. The table under it shows each contact with its Email, First
name, Last name and Sway username. Lines starting with
#and a header row are skipped silently. - Click the button that counts what it is about to add, such as Import 1,204 contacts.
A notification counts what was imported. When some addresses were refused, the panel stays open with a summary, such as "1,204 imported · 0 skipped · 3 refused", and a reason per refused address; a clean import closes it. What you pasted survives closing the panel, so a stray click does not throw a list away.
Large lists are uploaded in batches on your behalf, so a long list does not have to be split by hand.
Find and fix a contact
The table lists each Contact (name and address), their Sway username and the date they were Added, twenty to a page. Page 2, with the arrows beside it, moves through the list; the dropdown beside the search narrows it to one audience, and the round Refresh button reloads from the first page.
The search box searches the page on screen, not the whole list, and says so in its own placeholder, Search the contacts shown…, and again under the table. With a large audience, pick the audience first or page to roughly where the contact should be. An empty result reads None of the contacts shown matches and does not mean the address is absent.
The pencil opens Edit contact in a panel on the right, holding Email, First name, Last name and Sway username. Empty a field and save to clear it. The bin asks Delete this contact? and warns that This cannot be undone. To mail them again, they have to be imported again. Ticking rows brings up the selection bar with a delete button that counts them, and Clear.
Sender settings and your own domain
The Settings tab governs what recipients see in the From line. It has two cards, Sender and Sending domain.
Sender name is your page name and cannot be edited here: Your page name. Recipients read it in the From line.
Sender email is locked until you have verified a domain of your own. Until then its note reads Campaigns leave from [email protected] until you verify a domain of your own. Once a domain is verified, any address on it is accepted (Any address on your domain); one that does not end with it is marked The address has to end with @ your domain, and a saved address cannot be emptied.
Changing the address brings up a bar at the bottom of the screen, Unsaved sender settings, with Discard and Save settings; saving confirms with Settings saved. Switching tab with the change unsaved asks Leave without saving? first.
The Sending domain card opens on one state, the one to act on:
| State | What it means |
|---|---|
| Campaigns leave from the shared Sway address | No domain of your own yet. |
| mail.yourdomain.com is waiting for verification | Publish the records below, then Verify DNS records. Mail still leaves from the shared address. |
| mail.yourdomain.com cannot authenticate your campaigns | Something marked in red below has to be fixed. Check again re-reads the DNS. |
| mail.yourdomain.com is verified, with records worth fixing | Nothing waits on the amber items, but each one helps. |
| mail.yourdomain.com is verified | Campaigns are signed with your domain. Pick the sender address. |
Add a custom sending domain
- Click Send from your own domain, such as mail.yourdomain.com, the dashed slot in the Sending domain card. A panel titled Add a sending domain opens.
- Type the domain in Domain. The hint recommends Use a subdomain like mail.yourdomain.com for best deliverability; something that is not a domain is marked before anything is sent.
- Click Add domain. A Domain added notice appears with Publish the DNS records listed in Settings to verify it.
- Copy every record under DNS records into your DNS provider. Each Name and Value has its own copy button.
- Come back and click Verify DNS records. Verification started. The screen checks again every minute while this tab stays open. confirms it.
The pill beside the domain reads Pending verification until it passes, then Verified, and Sender email unlocks.
Remove takes the domain away, after a Remove this domain? confirmation explaining that campaigns stop using it and leave from the shared address again, and that adding it back means publishing its records and verifying it again.
What your domain has to publish
A verified DKIM record means your campaigns are signed. It does not mean the domain is finished, so the card also reports what else it can see published and names what is missing:
| Notice | What to do |
|---|---|
| No DMARC record | Publish the TXT record shown under DNS records. Gmail and Yahoo expect a DMARC policy from anyone sending in volume. |
| DMARC is set to p=none | That policy only watches. Once your reports look clean, move to p=quarantine. |
| More than one SPF record | Receivers treat that as an error. Merge them into one. |
| SPF needs more than 10 DNS lookups | Past the limit receivers follow. Trim the include: entries. |
| No SPF record | Sway does not need one to send for you (your campaigns are signed with DKIM), but the rest of your mail does. |
| No MX record | The domain can receive neither replies nor bounces. |
A red mark is what stops a campaign authenticating; an amber one is worth fixing and nothing waits on it.
Who can do what
| Action | Who |
|---|---|
| Open the screen, read campaigns, contacts and settings | Page owner, or a role allowed to view email |
| Turn email on for the page | Page owner, or a role allowed to send email |
| Create, edit, duplicate, delete a campaign | Page owner, or a role allowed to send email |
| Ask the assistant to write or change a campaign | Page owner, or a role allowed to send email |
| Send, schedule, pause, resume, send a test | Page owner, or a role allowed to send email |
| Import, edit or delete contacts | Page owner, or a role allowed to send email |
| Change sender settings and the sending domain | Page owner, or a role allowed to send email |
Someone who can view but not send sees the whole screen and reads every campaign and every contact. Campaigns open read-only, their menus offer View alone, and the buttons that write are greyed with the tooltip You need the permission to send email on this page. Grant the sending right on the page's Permissions screen, described in Manage permissions.
Where the rest of the audience tools live
| To do this | Go to |
|---|---|
| Set up a promoter page that can send | Promoter pages |
| Set up an artist or venue page that can send | Artist and venue pages |
| Invite people to a presale, then mail them their codes | Presales |
| Let a colleague send on your behalf | Manage permissions |
Reach Your Audience
The audience screens in the Sway web app: which page types carry each one, what they reach, and what they report back.
Push Notifications
Send push notifications from the Sway web app: where the screen exists, who receives one, how to compose and schedule it, and what blocks a send.