Overview
Email Campaigns sends newsletters, offers and automated email series to your customers and prospects from this PC.
It keeps your lists and subscribers, builds the emails, sends them at a pace your mail server accepts, and records who
opened, clicked, unsubscribed or bounced. Sign-up forms, landing pages, a preference page, A/B tests, automations,
reports, deliverability checks, an API and webhooks are all built in. Open it from Home › Utilities › Email Campaigns;
the Help button in its title bar brings you back to this page.
Where it runs — everything is stored and sent from this PC
(campaigns.json in the suite’s data folder, included in backups). Campaigns and automations only send while the
ImposeIQ desktop suite is open; a campaign interrupted by closing the suite carries on from where it stopped next time.
Unlicensed copies — without a licence for Email Campaigns, each campaign goes to its first 10 recipients only
and every email carries a “demo” line in its footer. Everything else works, so you can set it up and test it fully first.
Quick start: your first campaign
Fill in Settings. Open Settings in the Campaigns window. Enter a From name and From email on a domain you own,
your Organisation and Postal address, and choose a mail server (the suite’s own, from the suite’s
Settings › Email, or a separate one). Press Test connection, then Save settings.
Give recipients a way out. Either set a
Public link address and switch on the link server (best — it gives
one-click unsubscribe, open and click tracking; see
Public link address), or at the very least an
Unsubscribe mailbox. A campaign will not send without one of them.
Add people. Go to Subscribers and use Import CSV… or Import from CRM…, or Add them one at a time.
They go on the Newsletter list unless you choose another.
Write it. Campaigns › New campaign (or Examples… to start from a ready-made one). Give it a subject, tick the list, pick a Layout… and edit the blocks.
The preview on the right shows exactly what the first subscriber will get.
Test it. Send test… to yourself and look at it on a phone and in Outlook or Gmail. Check content gives it a spam score.
Send it. Review & send… lists anything that would stop it in red and anything worth reading in amber.
Press Send now (or Schedule if you set a Send at time). The report opens and fills in as it goes.
Examples to start from
Both the Campaigns and the Automations pages have an Examples… button with ready-made emails written for a print shop. Use this adds
one as a draft and opens it: nothing is ever sent, and no automation is switched on, until you have read it and done so yourself. Change the wording, offers, codes,
pictures and links (they point at example.com until you do), send yourself a test, then send it or turn it on. Use the same example as often as you like.
| Example automation | Starts when… | What it does |
| Welcome series | someone joins your first public list | Welcome email; three days later what you print; four days later an Engaged tag for clickers or a first-order offer for the rest. |
| New customer onboarding | someone is tagged Customer (the CRM import does this) | Thank-you, file-preparation tips, a review request after two weeks, a reorder nudge after a month. |
| Quote follow-up | your website or MIS sends the API event quote-sent | A check-in after two days; if no Ordered tag five days later, emails the shop and books a CRM call for the rep. |
| Reorder reminder | the API event order-shipped | Tags them Ordered, then about ten weeks later asks whether stocks are running low (free shipping line for VIPs). |
| Birthday offer | their Birthday attribute, every year | A greeting with a discount code. |
| Customer anniversary | their Customer since attribute, every year | A thank-you, with a different gift for VIPs. |
| Hot lead alert | their lead score passes 50 | Tags them Hot, emails the shop and books a CRM call. |
| Win-back | someone is tagged Inactive (Deliverability › List health) | A “we miss you” offer, a last check, then Sunset for those who never respond. |
| Trade show follow-up | someone signs up on a form | A same-day thank-you, then a random split tests two offers. |
| Clicked but did not order | someone clicks in any campaign | Score points, and a day later a helpful nudge unless they are tagged Ordered. |
Example campaigns: Monthly newsletter, Holiday cards promotion (with an A/B test of two subject lines), New product launch (product cards — pick your
own from the Storefront), Open house / trade show invitation, Customer feedback survey (one-click answers you read off the click map; customers only),
Re-engagement campaign (people tagged Inactive only) and a plain, personal Seasonal deadline reminder.
Tip — The quote and reorder automations wait for API events. Have your website or MIS post
quote-sent and
order-shipped to
/api/v1/contacts/{email}/events (see
The API), and tag people
Ordered when they order, through the API or by hand.
The window
The menu on the left has one page per job:
| Page | What it is for |
| Dashboard | Subscriber totals, recent campaigns with their open and click rates, a setup checklist (anything red stops sending) and the latest activity. |
| Campaigns | Every campaign with its status and progress. Click a draft to edit it, a sent one to see its report. |
| Automations | Email series that run by themselves: welcome series, birthdays, follow-ups. See Automations. |
| Reports | All your campaigns side by side, compared with your averages. |
| Subscribers | Everyone on file: search, filter by list, status, tag or segment, edit, tag, import and export. |
| Audience | Segments, tags and groups — the ways of picking who gets what. |
| Lists | Your mailing lists, and which ones are public on the sign-up form. |
| Forms | Sign-up forms, landing pages, and the confirmation and welcome emails. |
| Transactional | One-to-one emails your website or MIS sends through the API — order shipped, proof ready. See Transactional emails. |
| Templates | The frame (header, colours, footer position) that goes round each campaign. |
| Deliverability | SPF, DKIM and DMARC check for your domain, list health and inactive subscribers. |
| Suppression | Addresses that must never be emailed, whatever list they are on. |
| Settings | Sender, footer, mail server, sending speed, link server, bounces, API, webhooks, lead scoring, brand kit and the public archive. |
A pill at the top right shows how many campaigns are sending right now, and Demo when the copy is unlicensed.
Setting up: sender and footer
- From name / From email: what recipients see. Use an address on your own domain (
news@yourshop.com), never a Gmail
or Outlook.com address — those are rejected or sent to spam by the big providers when they come from another server.
A campaign can override both for itself.
- Reply-to: where replies go, if not the From address.
- Organisation and Postal address: shown in the footer of every email. A real postal address is required
on commercial email in the US (CAN-SPAM) and most other countries; the review before sending warns when it is missing.
- Footer HTML: added to every campaign. It understands
[UNSUBSCRIBE] (the unsubscribe link),
[PREFERENCES] (the preference page link), [ORGANISATION], [ADDRESS] and [LISTS]
(the list names the person is receiving this through). The template decides where it goes with [FOOTER];
otherwise it goes at the very end.
- Unsubscribe mailbox (optional): added to the email’s
List-Unsubscribe header as a mailto, and used as the
unsubscribe link when there is no public link address. Requests that arrive there have to be handled by hand — add the address to Suppression.
Setting up: the mail server
- Use the suite’s mail server: the SMTP server in the suite’s own Settings › Email (the one quotes and alerts use). Fine for a few hundred recipients.
- Use a separate server for campaigns: recommended for any real list. Office 365 and Gmail accounts cap a day at a few hundred to two thousand
recipients and will lock an account that sends a newsletter. A sending service — SendGrid, Mailgun, Amazon SES, Postmark, Brevo, SMTP2GO —
gives you an SMTP host, port, user and password; enter them here. Port 587 without the TLS box (STARTTLS) or 465 with it.
- Test connection logs in to the server without sending anything. The password is stored encrypted on this PC and never shown again.
Tip — Use a sending service’s own
bounce or
return-path domain if it offers one, and set its sending
limit as your
sending speed.
Setting up: SPF, DKIM and DMARC
Gmail, Yahoo and Microsoft reject or junk bulk mail from domains that have not published these three DNS records. They are set at whoever hosts
your domain’s DNS (GoDaddy, Cloudflare, your web host), with the values your sending service gives you:
| Record | What it does | Typical value |
| SPF | Lists the servers allowed to send as your domain. One TXT record on the domain itself. | v=spf1 include:sendgrid.net ~all |
| DKIM | A public key that lets receivers check each email’s signature. A TXT (or CNAME) record at selector._domainkey.yourshop.com; the service tells you the selector. | v=DKIM1; k=rsa; p=MIGf… |
| DMARC | Tells receivers what to do when SPF and DKIM fail, and where to send reports. A TXT record at _dmarc.yourshop.com. | v=DMARC1; p=none; rua=mailto:dmarc@yourshop.com |
Then open Deliverability, type your domain (and the DKIM selector if it is not a common one) and press Check. Each record shows green when
it is right, amber when it works but could be better (DMARC p=none only monitors), red when it is missing or wrong — for example two SPF
records, or an SPF record ending in +all. DNS changes can take an hour to show.
Setting up: public link address and the link server
The unsubscribe, preference, view-online, open-tracking and click-tracking links in each email, and the sign-up forms, confirmation links and
landing pages, are answered by a small web server inside the suite: the link server. For those links to work for your
recipients, it has to be reachable from the internet at an https address — the Public link address.
Switch on the link server. In Settings › Links, tracking and sign-ups, tick Run the link server on this PC.
Leave the port at 8790 and Listen on at This PC only. The green bar confirms it is listening.
Put it on the internet. The simplest way is Tailscale Funnel: with Tailscale installed and signed in on this PC, run
tailscale funnel --bg 8790 in a command prompt. It prints an address like https://shop-pc.tail1234.ts.net.
Alternatively, a reverse proxy on your web host (for example https://mail.yourshop.com) forwarding to this PC works too.
Paste the address into Public link address and press Save settings. Open <address>/subscribe in a browser on
your phone (off your Wi-Fi) to check it answers.
- Track opens adds an invisible 1-pixel image. Opens are under-counted: Apple Mail’s privacy protection and image blocking hide them, so
compare open rates between your own campaigns rather than with other people’s.
- Track clicks sends each link through the link server, which records the click and passes the reader straight on. Clicks are exact.
- Every link carries a signed token, so a link cannot be edited into someone else’s unsubscribe, and the server reveals nothing about your list.
- With an https address, each email also carries the one-click unsubscribe header Gmail and Yahoo require from bulk senders, and they show
their own Unsubscribe button next to your name.
Without a public address — campaigns still send, but there is no tracking, and unsubscribing works only by email to the unsubscribe mailbox.
Sign-up forms, landing pages, double opt-in and the preference page need the public address.
Setting up: sending speed and time zone
- Messages per batch and Batch period: at most this many emails in each period. 60 per 60 seconds is 3,600 an hour. Set it inside
your provider’s limit; 0 means no limit.
- Pause between messages: a short gap between emails, which some servers prefer.
- Automations share the same speed limit as campaigns.
- Default time zone (for example
America/Chicago): used for same local time delivery when a subscriber has no Timezone attribute,
and for the day a date automation (a birthday) fires.
Setting up: bounces and complaints
When your mail server refuses an address outright, Campaigns counts that bounce itself. Bounces that come back later as emails, and spam complaints, need a
mailbox to read:
- Make a mailbox that only receives bounces (e.g.
bounces@yourshop.com) and set it as the Return-Path or bounce address at your sending
service. Sign up for the feedback loops your service offers so spam complaints come there too.
- In Settings › Bounces, tick Read bounces from a POP3 mailbox and fill in its POP3 host, port (995 with TLS), user and password.
Check now reads it straight away; afterwards it is read every Check every minutes.
- A hard bounce (address does not exist) counts against the address; after Disable after this many hard bounces it becomes bounced and gets no more mail.
Soft bounces (mailbox full) are recorded but not counted.
- A spam complaint (someone pressing “This is spam”) unsubscribes the address and puts it on the suppression list for good.
- Messages in the mailbox that are not bounces or complaints are left alone. Delete bounce messages once read keeps the mailbox small.
Lists and subscribers
- Lists are the mailing lists people are on (Newsletter, Trade customers…). A person can be on several and still gets one copy
of a campaign sent to more than one of them. Public lists appear on the default sign-up form and the preference page.
- A subscriber’s status decides whether they get mail: active (yes), unconfirmed (waiting for double opt-in — no),
unsubscribed, bounced and blacklisted (no). Only active subscribers are ever sent to, and the status is checked again at the moment of sending.
- Attributes are any other facts about a person — City, Birthday, Account manager. Each one becomes a placeholder:
a City attribute is
[CITY]. Two are special: Timezone (America/Denver) for local-time delivery, and any date such as
Birthday for date automations.
- Click a subscriber to edit them, see their tags, groups, automations and every email they received with its opens and clicks.
- With selected… (tick the boxes first) adds or removes a tag, adds to or removes from a list, unsubscribes, blacklists or deletes.
To stop mailing someone, unsubscribe or blacklist them rather than delete them — a deleted address can be imported again by mistake.
Importing and exporting
- Import CSV… takes a CSV or text export from Excel, Outlook, Mailchimp, phpList or your MIS. The first row should name the columns.
Email, first name, last name, company and tags columns are recognised automatically (check the choices under the file); every other column becomes an attribute.
A Tags column can hold several tags separated by
;.
- Choose the lists to add them to, and optionally a tag for everyone in the file (“Trade show 2026”).
- Tick These people have agreed to receive email only when they have; otherwise they come in as unconfirmed and get nothing.
- An address already on file is updated, never duplicated. Someone who unsubscribed, bounced or is blacklisted stays that way — an import never
re-subscribes a person who left.
- Import from CRM… brings in every contact with an email address from the MIS customers and prospects, tagged Customer or Prospect,
with the company, customer code and job title as attributes. Only import people who expect to hear from you.
- Imports do not start automations — a welcome series is for people who have just joined, not for a list you already had.
- Export CSV writes the subscribers currently shown (respecting the list, status, tag and segment filters), with their lists, tags, groups and attributes.
Tags
Tags are your own labels: VIP, Banner buyer, Trade show 2026. They are not case-sensitive. Add them from the subscriber list,
a subscriber’s card, a CSV import, a sign-up form, an automation step or the API. Audience › Tags shows every tag with its count, and can
rename one everywhere (segments follow the new name) or take it off everyone. Adding a tag can start an automation.
Groups
Groups are questions subscribers answer themselves — “What do you print?” with the options Banners, Business cards, Signs.
Make them under Audience › Groups with one option per line. They appear as tick boxes on sign-up forms that include them and on the preference page
(untick Show on the default sign-up form and the preference page to keep a group internal). Use them in a segment (Group interest has Banners)
or in the email itself with [IF INTERESTED:Banners].
Segments
A segment is a saved set of conditions — “VIP customers in Texas who clicked in the last 60 days” — worked out again every time you send, so it is
always up to date. Make one under Audience › Segments › New segment; the count underneath updates as you build it.
Choose whether all or any of the conditions must match.
| Condition | Tests |
| Email, First name, Last name, Company, Signup source | is, is not, contains, does not contain, starts with, ends with, is blank, is not blank. Not case-sensitive. |
| Attribute | The same on any attribute you name, plus greater than / less than, which compare numbers as numbers and dates as dates (Spend greater than 1000). |
| Status | is / is not active, unconfirmed, unsubscribed… |
| List | is on / is not on a list. |
| Tag, Group interest | has / does not have. |
| Date added | before or after a date, in the last N days, more than N days ago. |
| Campaign activity | was sent, was not sent, opened, did not open, clicked, did not click — one campaign, or any campaign. Did not open a particular campaign means they got it and did not open it. |
| Engagement | opened or clicked in the last N days, or ignored the last N campaigns (got them and opened none). |
| Lead score | greater than / less than a number (see Lead scoring). |
To send to a segment, pick it under Segment in the campaign editor: the campaign goes to the people on the chosen lists who match it. Conditions…
next to it adds one-off conditions just for that campaign, without saving a segment.
Lead scoring
Every subscriber has a lead score: points for what they do, so you can see who is warm right now — the way ActiveCampaign and HubSpot score contacts.
Set it up under Settings › Lead scoring:
- Points for opening an email, clicking a link and signing up on a form. Each email counts once for its open and once for a click, however many times it is opened.
- Points for tags, one per line as
Tag: points — Requested quote: 25, Visited the showroom: 15, or negative (Competitor: -100).
- Points fade after a number of days (90 by default), so a burst of interest last spring does not keep someone hot for ever. 0 keeps them for good.
- Automations can add or take points with the Lead score ± step.
The score shows on the Subscribers page (15+ warm, 50+ hot) — choose Highest score first to put the
hottest at the top — and on each subscriber’s card with the points behind it. The Dashboard counts the hot leads. Use it in a segment (Lead score greater than 40), and to start
an automation with the Reaches a lead score trigger — for example notify the rep the moment a prospect passes 50.
Tip — Tag the actions that really signal intent (a quote request from the website through the API, a visit to a price page via a link) with big points, and leave opens small; opens are the least reliable signal.
Suppression
Addresses on the suppression list are never emailed, whatever list they are on or are imported into. Use it for people who asked by phone or letter, competitors,
and role addresses you must not mail. Paste one or many with a reason. Blacklisting a subscriber and spam complaints add to it automatically. Removing an address
from the list does not re-activate the subscriber; change their status yourself if they really have opted back in.
Sign-up forms
Every public list can be joined at <public address>/subscribe — the default form. Under Forms › Sign-up forms › New form you can build
your own, each at its own address <public address>/f/<name>:
- Heading, Introduction, an optional Image (an https address), the Button text and the Thank-you message.
- Fields: email is always first. Add first name, last name, company, or any attribute (Other — City, Phone, Birthday as a date…), and mark any as required.
- Sign-ups join: the lists a sign-up is added to. A form can add people to a private list (a trade-only list, say); tick Let them choose among these lists to show the lists as tick boxes.
- Groups to ask about, and Tag sign-ups with (“Website”, “Trade show”).
- Embed code gives HTML to paste into your own website or Storefront page. It is a plain form with no script, so it works in any site builder;
it posts to your public address. Open shows the hosted form in your browser.
- Forms include a hidden trap field that catches most spam bots.
Double opt-in, confirmation and welcome emails
- With double opt-in on (recommended, and expected in Europe and Canada), someone who signs up gets a confirmation email and is only added
once they click its link. Until then they are unconfirmed and get nothing.
- Edit that email under Forms › Sign-up emails. It must contain
[CONFIRMURL] — the link they click.
- The optional welcome email goes once they are confirmed (or straight away with double opt-in off). For more than one email, use an automation instead.
- Both understand placeholders and
[IF] blocks. Someone already active who signs up again just joins the new lists — no second welcome.
Landing pages
A landing page is a page of your own with a sign-up form on it, for a trade show, a QR code on a flyer or an ad. Under Forms › Landing pages give it a
title, an address (/l/<name>), choose its form and write the page in HTML; put [FORM] where the form goes, or it goes at the end. Scripts
are switched off on landing pages for safety, so use plain HTML and CSS. The list shows how many times each page has been viewed.
The preference page
[PREFERENCES] in the footer links each person to their own page where they can correct their name and company, choose which public lists they get and
tick their group interests. Unticking every list unsubscribes them. The unsubscribe page also offers it as “Rather get less?” — many people would sooner
get one list than none.
Writing a campaign
The editor has three columns: the campaign’s settings on the left, the content in the middle, and a live preview on the right (switch between Desktop and
Mobile). The preview is personalised for the first person who would receive it.
- Campaign name is for you; Subject and Preview text (the grey line after the subject in the inbox) are what recipients see.
- Send to: tick one or more lists. Segment narrows it (see Segments).
- Template: the frame round the content. None sends the content as written.
- Send at: leave empty to send when you press Send, or set a date and time to schedule it.
- Delivery time: see Send times.
- Save draft keeps your work; leaving with unsaved changes asks first.
The block builder
New campaigns open in Blocks: the email is a stack of blocks you add, drag and edit, written out as email-safe HTML that works in Outlook and Gmail and stacks
columns on phones.
- Add a block from the row under the blocks, or drag one from there into place. Layouts… starts from a ready-made layout — Newsletter,
Promotion, Announcement, Event invitation — replacing the current blocks.
- Click a block to open its settings; click again to close them. Drag the ⠿ handle to move a block, or use ↑ ↓.
⧉ duplicates, ✕ removes, ☆ saves it to reuse in other campaigns (Saved blocks…).
| Block | Settings |
| Heading | Text, size, alignment, colour. |
| Text | Rich text: bold, italic, links, lists. Placeholders and [IF] blocks work. |
| Image | An https image address (images must be on the web — upload them to your website or image host), alt text, an optional link, width and alignment. |
| Button | Label, link, colours, alignment. |
| Divider, Spacer | A line, or blank space of a given height. |
| 2 columns | Two stacks of blocks side by side; on a phone they stack. |
| Social links | Buttons for the networks you give an address for. |
| HTML | Your own HTML, for anything the other blocks do not do. |
| Footer | Puts the settings footer (unsubscribe, address) here instead of at the end. |
| Logo | Your logo from the brand kit; width and alignment. |
| Product | A product card — picture, name, description, price and an Order now button. Pick from the Storefront… fills it from your Storefront products. |
Visual and HTML are the other ways to write. Switching from Blocks to either turns the blocks into HTML you can edit freely — but it cannot be turned
back into blocks (you are asked first). Plain text lets you write the text-only version yourself; left empty, it is made from the HTML.
Placeholders (merge tags)
Placeholders in square brackets are replaced for each person. Click one under Insert a placeholder to put it where the cursor is.
| Placeholder | Becomes |
[FIRSTNAME] [LASTNAME] [NAME] [COMPANY] [EMAIL] | The subscriber’s details. |
[CITY], [ACCOUNTMANAGER]… | Any attribute, by its name in capitals without spaces. |
[FIRSTNAME%%there] | The first name, or “there” when there is none — so Hi [FIRSTNAME%%there] never reads “Hi ,”. Works on any placeholder. |
[UNSUBSCRIBE] / [UNSUBSCRIBEURL] | The unsubscribe link, or just its address. |
[PREFERENCES] / [PREFERENCESURL] | The preference page link, or its address. |
[VIEWURL] | The address of the email in a browser. |
[ORGANISATION] [ADDRESS] [LISTS] | From Settings, and the lists the person gets this through. |
[DATE] [YEAR] | Today’s date (October 25, 2026) and year. |
The review before sending lists any placeholder no subscriber has a value for — usually a typo.
Conditional content
Show some of the text to some people only. A block starts with [IF …] or [IFNOT …], may have [ELSEIF …] and [ELSE] parts,
and ends with [ENDIF]. Blocks can sit inside each other, and work in the subject, the body, the plain text and the footer.
| Write | Shows the text when |
[IF FIRSTNAME]Hi [FIRSTNAME],[ELSE]Hello,[ENDIF] | the field is not empty. |
[IFNOT COMPANY]…[ENDIF] | the field is empty. |
[IF CITY = Houston]Local pickup is free.[ELSEIF CITY = Dallas]…[ENDIF] | a field equals a value. Also !=, >, <, >=, <= (numbers compare as numbers) and contains. Values can be in quotes. |
[IF TAG:VIP]Your VIP discount: 15%[ENDIF] | the person has the tag. |
[IF INTERESTED:Banners]…[ENDIF] | they ticked that group option (or INTERESTED:Group:Option to be exact). |
[IF LIST:Trade customers]…[ENDIF] | they are on that list. |
Check the brackets — an [IF] without its [ENDIF] stops the campaign from sending (the review says so), rather than
sending everyone the raw text. Send a test to someone with and someone without the field to see both versions.
Brand kit and product blocks
Under Settings › Brand kit set your logo (an https address of a PNG or JPG on your website), brand colour, button text colour and
font. In the block builder the Logo block shows the logo, and buttons and product cards use the brand colour unless the block sets its own — so changing the
brand kit restyles every new campaign at once. The Newsletter, Promotion and Product showcase layouts start with the logo.
The Product block shows one product with an order button. Pick from the Storefront… lists the products in your storefronts; choosing one fills in the name,
description and a “From $… each” price, and — once the storefront is published to the web — its picture and a link to the store. Edit any of it afterwards.
The Product showcase layout is a ready-made product email.
Templates
A template is the HTML frame around every campaign that uses it: your logo, colours, width and footer area. Put [CONTENT] where the campaign goes and
[FOOTER] where the footer goes. Edit them under Templates, with a preview beside the code. The Simple branded template shows your
organisation name in a header. Images in templates must be on the web (https). A template used by a campaign that is still sending cannot be deleted.
Testing and the content check
- Send test… sends the email to one or more addresses with [TEST] in the subject. If an address belongs to a subscriber, it is personalised
for them. Test links are not tracked and the unsubscribe link does nothing. With an A/B test you choose which version.
- Check content scores the email out of 100 and lists what spam filters dislike: a subject in capitals, !!!, spammy phrases, an email that is
mostly images, images without alt text, link shorteners (bit.ly), links whose text shows one website and go to another, scripts or forms, and HTML over 102 KB
(Gmail cuts it off, hiding the unsubscribe link). It is a guide; the receiving server decides.
Sending and scheduling
Review & send… saves the campaign and checks it. It shows how many people it will go to (active, on the lists and segment, not suppressed,
one copy per address), the content score, and:
- Red — must be fixed first: no subject, empty message, no list, nobody to send to, no mail server or From address, no way to
unsubscribe, broken [IF] blocks, scripts in the email.
- Amber — worth reading: no tracking, link server off, no postal address, unknown placeholders, a small A/B test pool.
Send now starts at once; with a future Send at the button is Schedule and it waits as scheduled. Either way it sends in the background,
at your sending speed, while the suite is open. From the report you can Pause, Resume and Cancel (emails already sent stay sent; a scheduled
campaign that has not started goes back to a draft). A campaign that has started cannot be edited — Duplicate it instead.
- If the mail server stops answering or refuses the login, the campaign pauses itself with the reason, so you can fix it and press Resume.
- Retry N failed tries again the emails the server refused for a temporary reason.
- Send to new subscribers sends a finished campaign to people who joined its lists since.
- Resend to non-openers… makes a new draft — optionally with a new subject — for the people who got this campaign and did not open it.
Give it a day or two first, and do not resend more than once.
Send times
Delivery time in the editor:
- Everyone at once: as fast as the sending speed allows, from the start time.
- Each person’s best hour: each person gets it within 24 hours of the start, at the hour of day they have usually opened past emails.
People with no history get the hour the whole list opens most.
- Same local time in each time zone: everyone gets it at, say, 9:00 in their own time zone, on the Send at date. It uses each subscriber’s
Timezone attribute (
America/Chicago, Europe/London — import it as a column), or the default time zone from Settings. People
whose 9:00 has already passed get it straight away, so set Send at a day ahead.
A/B and multivariate tests
Tick A/B test in the editor to try different versions on part of the list and send the best one to the rest.
- Give two or more subject lines, from names or send times (one per line), and/or a second version of the content (HTML).
Testing more than one thing at once makes every combination — a multivariate test — up to 8 versions, labelled A–H.
- Test on: the share of the audience that gets the test, split evenly between the versions (20% is typical; give each version at least a few hundred people
for a reliable result).
- Winner by open rate or click rate, picked automatically after the hours you set — or I will pick.
- While it waits the campaign shows as testing. The report’s A/B test tab compares the versions, and Send this one picks a winner early.
The winner goes to everyone held back.
- A test of send times only goes to the whole list, split across the times — there is nothing left to send a winner to; use the result next time.
- The preview has a Version menu to see each one.
Automations
An automation sends a series of emails by itself, person by person, as things happen — a welcome series for new subscribers, a birthday offer, a follow-up to people
who clicked. Each person goes through the steps at their own pace.
Start one. Automations › Welcome series makes a ready-made series (welcome email, three days later a second email, then a tag for
people who clicked or an offer for people who did not). New automation starts empty.
Choose the trigger on the left: what makes someone start.
Add the steps with Add step. Click a step to open or close it; use ↑ ↓ ✕ to move and remove.
Send a test of each email from its step.
Save and turn on. From then on, people who meet the trigger start it. Pause holds everyone where they are.
| Trigger | Starts when someone… |
| Joins a list | is added to the list (or any list) and is active: by hand, a form, the API, the preference page or another automation — not by an import. With double opt-in, when they confirm. |
| Gets a tag | is given the tag. |
| A date | has a date attribute (Birthday, Customer since) whose day and month is today — or Days before today. Checked once a day from the hour you choose; repeats every year.
Dates can be written 1990-03-14, 03/14/1990, 14.03.1990 or 03-14. |
| Opens / Clicks in a campaign | first opens, or first clicks in, that campaign (or any campaign). |
| API event | is sent an event of that name through the API — “quote-requested” from your website, “job-shipped” from the MIS. |
| Signs up on a form | signs up on that form (or any form). |
| Reaches a lead score | has their lead score go up past the number you set. Someone whose score hovers around it starts once. |
| Step | Does |
| Send email | Sends an email: subject, preview text, template and HTML body, with placeholders and [IF] blocks. Its opens and clicks are tracked and shown on the step. |
| Wait | Waits so many minutes, hours or days before the next step. |
| Wait until | Waits until a condition holds — clicked any campaign, Tag has Ordered — or at most so long, checking every minute. Follow it with an If / else on the same condition to treat the two outcomes differently. |
| Random split | Sends each person down Path A or Path B at random, in the share you set — to test two follow-ups against each other. Compare the emails’ numbers on each path. |
| Lead score ± | Adds (or, negative, takes away) lead-score points. |
| Notify staff | Emails your staff about this person — their details, score, tags and recent emails, with your note (placeholders work: [FIRSTNAME] from [COMPANY] is hot, score [SCORE]). Empty address = your reply-to or From address. |
| CRM follow-up | Adds a follow-up task for the account’s rep in the MIS CRM, due so many days later, with a title and notes. Only for contacts imported from the CRM (others are skipped and the activity feed says so). |
| If / else | Checks one condition — any segment condition, such as Campaign activity clicked any campaign or Tag has VIP — and follows the Yes or No branch. Each branch has its own steps; afterwards both carry on with the step after the if. |
| Add tag / Remove tag | Tags or untags the person (adding a tag can start another automation). |
| Add to list / Remove from list | Moves them between lists. |
| End the journey | Stops here for this person. |
- Each person goes through an automation once, unless you tick Let people go through it again. Date automations run once a year by their nature.
- Someone who unsubscribes, bounces or is suppressed leaves the automation at their next step.
- The list shows how many people are in each automation now, how many finished and how many emails it has sent; the editor shows each email’s numbers.
The campaign report
Click a sent campaign. The top shows progress and the totals: delivered to the server, opened, clicked, unsubscribed, bounced and spam complaints. The tabs:
- Overview: every link with its clicks and the number of people who clicked it, and the reasons people gave when they unsubscribed.
- A/B test (test campaigns only): each version’s results, and Send this one while it is waiting for a winner.
- Click map: the email itself with each link outlined and labelled with its clicks and share of all clicks — so you can see whether the button or the picture got the clicks.
- Activity: first opens and first clicks, hour by hour, for 48 hours after sending started — useful for choosing a send time.
- Domains: results by the recipients’ email provider (gmail.com, outlook.com, your customers’ own domains). One provider opening far less than the
others, or bouncing more, often means it is filtering you.
- Recipients: everyone it went to with their status, version, opens and clicks, searchable.
Export CSV saves every recipient’s results for Excel. Reports in the menu puts all campaigns side by side — open, click, click-to-open,
unsubscribe, bounce and complaint rates — with your averages; green is better than average, amber worse. Click a column to sort.
What good looks like — keep bounces under 2% and spam complaints under 0.1% (Gmail and Yahoo start filtering at 0.3%). A falling open rate over several
campaigns usually means sending too often or to people who have lost interest.
List health
Sending again and again to people who never open tells the big providers your mail is unwanted. Under Deliverability › List health, enter a number of campaigns
and press Count to find active subscribers who ignored all of them. Then Tag them “Inactive” — and send them a win-back campaign using a segment
Tag has Inactive — or Unsubscribe them.
Public archive and RSS
Like Kit and beehiiv, Campaigns can publish past issues on the web, so new subscribers can read back and your newsletter is findable. Switch it on under
Settings › Public archive and give it a title. Then tick Show in the public archive once sent in each campaign you want there.
<public address>/archive lists them, newest first, with a Subscribe link; each opens at /archive/<id>.
/archive/rss.xml is an RSS feed of the same, for feed readers and website widgets.
- Archived issues are shown to an anonymous reader: no names (use
[FIRSTNAME%%friend] fallbacks and [IF FIRSTNAME]…[ELSE]…[ENDIF] so they read well), no tracking and no unsubscribe link.
For an A/B test, the winning version is shown.
- Only sent campaigns appear, and only while the archive is switched on.
Transactional emails
Transactional emails are one email to one person, sent the moment something happens — order confirmed, proof ready, job shipped, quote sent — like Mailjet’s and Brevo’s transactional
email. Your website or MIS asks for them through the API; Campaigns fills them in and sends them at once.
Make one under Transactional › New transactional email: a name, a key the API asks for (order-shipped), the subject and the HTML body,
and optionally a template and a From address of its own.
Use the data. Your system sends values with each request, and each becomes a placeholder: {"orderNumber": "10432"} is [ORDERNUMBER]. The recipient’s own fields
([FIRSTNAME]…) work too when they are a subscriber, and so do [IF TRACKING]…[ENDIF] blocks.
Test it with Send test… and some sample data.
Send it from your system: POST /api/v1/send with {"template": "order-shipped", "to": "pat@example.com", "data": {…}} — to can also be
{"email": "…", "name": "Pat Lee"}.
- Transactional emails go to people who unsubscribed from your newsletters (a receipt is not marketing) but never to a suppressed or bounced address — the API answers 422 and says so.
- They carry no unsubscribe link or bulk-mail headers, no tracking, and the footer is just your organisation and address.
- The page lists how many of each have been sent or failed, and the most recent sends.
Receipts only — do not use transactional emails for offers or newsletters; that is what campaigns are for, and sending marketing this way breaks anti-spam law and gets accounts closed.
The API
The API lets your website, an online form service, Zapier or the MIS add contacts, tag them and start automations, without the Campaigns window.
Switch it on in Settings › API: tick Run the API on this PC (port 8791), choose This PC only or All network adapters
if another computer on your network will call it, and press Save API settings.
Create a key. Create key shows it once — copy it somewhere safe. Replace key makes a new one (the old one stops working); Revoke turns access off.
Call it with the key as a bearer token: Authorization: Bearer iqk_… (or as the password of HTTP Basic authentication, the way Mailchimp clients send it).
| Request | Does |
GET /api/v1/ping | Checks the key. |
GET /api/v1/lists, /segments, /campaigns | Lists them with their counts and statistics. |
GET /api/v1/campaigns/{id}/report | A campaign’s results, links and domains. |
GET /api/v1/contacts?email=&list=&tag=&status=&offset=&limit= | Finds contacts (up to 1,000 at a time). |
POST /api/v1/contacts | Adds or updates a contact by email: email, firstName, lastName, company, attributes, lists (ids or names), tags, and status — subscribed (default for a new contact), pending (sends the confirmation email first) or unsubscribed. |
GET / PATCH / DELETE /api/v1/contacts/{email or id} | Reads, updates or unsubscribes one contact. |
POST /api/v1/contacts/{email}/tags | {"add": ["VIP"], "remove": ["Prospect"]} |
POST /api/v1/contacts/{email}/events | {"name": "quote-requested", "properties": {…}} — starts automations with that API event trigger. |
POST /api/v1/send | Sends a transactional email: {"template": "order-shipped", "to": "pat@example.com", "data": {…}}. |
curl -X POST http://127.0.0.1:8791/api/v1/contacts \
-H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" \
-d '{"email":"pat@example.com","firstName":"Pat","lists":["Newsletter"],"tags":["Website"]}'
- Answers are JSON; errors come back as
{"error": "…"} with status 400 (bad input), 401 (wrong key), 403 (refused), or 404.
- A contact who unsubscribed or is suppressed is not re-subscribed by the API.
Server to server only — the API refuses any request made by a web page in a browser, so it cannot be called from JavaScript on your website; call it
from your website’s server, Zapier or the MIS. To reach it from outside your network, put a reverse proxy in front of it — do not expose the port directly, and
keep the key secret.
Webhooks
Webhooks are the other direction: Campaigns tells another system when something happens. In Settings › Webhooks › Add webhook, give the https address that should
receive them and tick the events:
| Event | Sent when |
subscribe | someone joins (or confirms) |
unsubscribe | someone unsubscribes |
profile | someone changes their preferences or details |
cleaned | an address is disabled after bounces |
complaint | someone marks an email as spam |
tag | a tag is added |
campaign | a campaign finishes sending |
Each one is a POST of JSON — {"type": "unsubscribe", "firedAt": "…", "data": {…}} — with the headers X-ImposeIQ-Event and
X-ImposeIQ-Signature: sha256=<hex>, the HMAC-SHA256 of the body with the webhook’s secret (shown when you add it and on Edit). Check the
signature on the receiving end to be sure the request came from you. A delivery that fails is tried again after 5 and 30 seconds; the list shows the last result, and
Test sends a test event.
Troubleshooting
| Problem | What to check |
| “No mail server is set up” | Fill in the suite’s Settings › Email, or give Campaigns its own server in its Settings, then Test connection. |
| The campaign paused with “Mail server problem” | The server refused the login or did not answer. Fix the setting or wait for the server, then Resume. |
| Many emails “failed” | Read the reason under each in the report’s Recipients tab. A sending limit reached? Lower the sending speed and Retry failed later. |
| Emails go to spam | Run the domain check in Deliverability (SPF, DKIM and DMARC must be green), the content check in the editor, and look at the Domains tab. Send from your own domain through a sending service. |
| Unsubscribe or tracking links do not open | The public link address must reach the link server: link server switched on, the funnel or proxy running, and the address in Settings exactly as it prints (https://…). Try <address>/subscribe from a phone off your Wi-Fi. |
| “Port 8790 is already in use” | Another program uses the port. Choose another port, and point the funnel or proxy at it. |
| Open rate shows 0% | Tracking needs the public address and Track opens. Even then, many clients block images — look at clicks too. |
| Sign-ups stay “unconfirmed” | Double opt-in is on and they have not clicked the confirmation link. Check the confirmation email reached them (spam folder) and contains [CONFIRMURL]. |
| An automation did not start | It must be turned on; imported people do not trigger it; a date automation needs the date attribute in a recognised format and runs from its hour; each person goes through once unless re-entry is ticked. |
| “Recipients have no way to unsubscribe” | Set a public link address or an unsubscribe mailbox in Settings. |
| The API answers 403 | The request came from a browser page, or (with This PC only) not addressed to localhost. Call it from a server, or listen on all adapters for another PC. |
Good practice — only email people who asked to hear from you or are your customers; make unsubscribing easy and act on it; keep a steady
rhythm rather than bursts; and remove people who never engage. It protects your reputation with the email providers as much as your customers’ goodwill.
Return to ImposeIQ Email Campaigns · Downloads · Support