Product
Marketing and automation
The two ways marketing goes wrong in a small organisation are stale lists and consent that was true when the list was built.
One failure, repeated
Almost every real failure has the same shape
Someone withdraws consent. It is recorded, correctly, in whichever system they withdrew through. Three weeks later a campaign goes out, built from a list assembled before they withdrew, and they receive it. Consonas asks the consent question again for that individual at the moment of sending, which is the only place the answer is current.
They complain, and they are entirely right to. The organisation is baffled, because the withdrawal was recorded and everybody did their job. Nobody was careless. The failure is structural: the system checked the list instead of the person, and the list was a snapshot of a moment that had passed.
This is the shape of nearly every consent failure we have seen described, and it matters more than the individual complaint suggests. In a small organisation the reputational cost lands directly on the business, and in regulated or charitable sectors it can land somewhere considerably more expensive.
Two decisions that prevent it
The first is that an audience is a definition instead of a snapshot. Customers in one county with no activity for ninety days means whoever satisfies that description at the moment you look. It does not freeze when you save it, so it cannot go stale.
The second is that consent is checked for every individual at the moment of sending rather than at the moment the audience was built. That is the difference between checking the list and checking the person, and it closes the window in which the failure above happens.
Neither of those is clever. Both are simply where the check belongs, and putting it anywhere else creates a gap that will eventually be found by someone who did not deserve to find it.
And consent is not one switch
Agreeing to receive an invoice is not agreeing to a newsletter. Agreeing to service updates about a job is not agreeing to a promotional campaign. Organisations that hold one consent value per person produce two failures at once: people who wanted operational messages unsubscribe from everything to escape marketing, and then miss something they needed.
Consent here is per channel, held as an event with a date and a source, and withdrawal is recorded the same way. Both sit in the timeline, so the question of what someone had agreed to on a particular date has an answer, which a single current value field can never give you. Electronic marketing in the United Kingdom is governed by the Privacy and Electronic Communications Regulations, which do not treat an invoice and a newsletter as the same thing either.
List against person
Checking the list against checking the person
Six situations where those two designs produce different outcomes.
| The situation | Checking the list | Checking the person |
|---|---|---|
| Someone withdraws after the list is built | They are on the list, so they receive it, and they are entirely right to complain. | The check happens at the moment of sending, so they do not. |
| Someone wants invoices but not marketing | One consent switch, so they unsubscribe from everything and then miss an invoice. | Consent per channel. They get what they asked for and not what they did not. |
| A record changes after the audience was made | The list is a snapshot. It goes stale the moment it is saved. | The audience is a definition. It reflects the records as they are now. |
| Somebody asks what they agreed to in 2024 | A field holding the current value cannot answer a question about the past. | Consent and withdrawal are events with dates. The history is readable. |
| Two rules trigger each other | It runs away, and the organisation finds out from a customer. | Automation is bounded by design and cannot chain indefinitely. |
| The same person appears three times | Three rows, three sends, one annoyed recipient. | One person with three connections. Marketing sends to a person, not to a row. |
Audiences
A definition rather than a snapshot
You describe who you mean and the audience is whoever matches. Customers of a particular type in a particular area. Members whose consent has lapsed. Everybody who enquired about one thing and did not buy.
Because it is computed rather than stored, somebody who becomes a customer tomorrow is in it tomorrow, and somebody who stops being one leaves. No one has to remember to rebuild anything, which is the maintenance task that quietly does not happen in every organisation using saved lists.
It also sends to a person rather than to a row. Somebody connected to three organisations is one person with one consent position and receives one message, which is both the lawful behaviour and the one that avoids the most obvious way of looking careless.
Consent
An event with a date, checked at the moment it matters
Consent is recorded as an event: who agreed, to what, through which channel, on what date, from what source. Withdrawal is recorded the same way. Neither overwrites the other, so the history is readable in order.
That is what lets you answer the question you will actually be asked, which is not whether someone consents now but whether they consented then. A field holding only the current state cannot tell you what was true on the day you sent the thing somebody is complaining about.
Every send checks it again for that individual. An absent consent record is not permission: silence is not agreement, and treating it as such is the most common route into a problem that could have been avoided by doing nothing.
Automation
Bounded, and visible enough to explain
Rules you build yourself, with an end, that cannot chain into one another indefinitely. That constraint is deliberate. A rule which can trigger another rule which can trigger the first will eventually do so, and it will happen at a weekend.
Everything that was sent is visible on the record of the person it went to, along with which rule sent it. When a customer asks why they received something, that question has an answer somebody can find in thirty seconds, rather than requiring whoever built the automation to reconstruct it from memory.
Sends and automation runs have a monthly allowance stated on the pricing page. Going over means you are told instead of that an unexpected bill arrives, which is the practical difference between a plan and a meter.
Audiences and consent
Audiences that stay true, and sending that checks
Each part, and why it is where it is.
- Audiences
- Defined by what a record is rather than by who was in it on the day you built it. As records change, the audience changes with them, so a list is never stale.
- Consent at send time
- Checked for every individual at the moment of sending. A list built last month cannot reach someone who withdrew last week, because the check is not the list.
- Channel by channel
- Consent is held per channel. Agreeing to a service email is not agreeing to a newsletter, and the product does not treat them as one permission.
- Withdrawal as an event
- Recorded with a date and a source, like the consent it revokes. Both sit in the timeline, so the history of what someone agreed to is readable rather than being one current value.
- Automation
- Rules you build yourself, bounded so they cannot run away, and visible so someone can work out why a message was sent.
- Allowances
- A monthly allowance for sends and automation runs, stated on the pricing page. Going over means you are told, not that a bill arrives.
- Unsubscribe
- Handled properly and recorded against the person, so it applies everywhere rather than to the campaign it happened on.
- Authenticated sending
- A campaign leaves from the one domain everything here sends from, so it can be signed. What the product guarantees is that address; the DNS records that complete it are a deployment step.
A marketing system that checks consent when the list is built rather than when the message is sent is a marketing system that will eventually send to someone who told you to stop.
Which is why the check is on the person at the moment of sending rather than on the list at the moment of building.
Not a marketing platform
Where a dedicated marketing platform is the right purchase
Not a sophisticated marketing platform
No deep visual template builder, no split testing, no landing page designer, no lead scoring model, no advertising integrations, no attribution modelling across channels. If your marketing is sophisticated enough to need those, a dedicated platform is the right purchase.
What this has that most dedicated platforms do not is that the audiences and the consent are computed from the same records your sales and service run on, rather than from a copy that has to be synchronised. For a small organisation, that is usually worth more than the features it lacks.
Opens are not treated as a measure
Clicks are recorded. Opens are not treated as meaningful, because mail clients now fetch images on the recipient's behalf and an open has become a measurement of someone's mail provider rather than of a person. Reporting it as engagement would be reporting a number we know to be wrong.
Not for sending on behalf of someone else
An agency should not run client campaigns from here. The consent records would belong to your organisation rather than your client's, which is the wrong controller relationship, and sender authentication is per organisation. That is a data protection problem waiting to happen and the tooling will not save anybody from it.
It will not make the legal judgement for you
Whether a particular send is lawful depends on your jurisdiction, your relationship with the person and what you are sending. For organisations here the guidance is published by the Information Commissioner's Office rather than by a supplier. The product records what was agreed and when so you can decide with facts and evidence it afterwards. Any supplier claiming their software makes you compliant is describing something that does not exist.
The first campaign
Sending something without regretting it
Everything difficult about marketing to a customer list is a consent question wearing a different hat.
Find out what your consent records actually say
Before building anything. If your list came from a spreadsheet with a column marked yes, you have a tick rather than a consent record, and a tick tells you nothing about when, for what, or how.
Consent here is a fact with a date and a source, per channel. Where you have those, import them. Where you do not, the honest position is that you have a list of people you may not be able to demonstrate a basis for, and the right response is to fix that deliberately rather than to send and find out.
Build the audience as a question, not a list
An audience defined by a rule keeps itself current as records change. A list exported on a Tuesday is wrong by Thursday, and the ways it is wrong are the expensive ones: somebody who objected last week, somebody who is no longer a customer, somebody who has become a complaint.
Send to fifty first
The first send from any new system should be small enough that a mistake is recoverable. Read what arrives, in a real mail client, on a phone. Almost every problem anybody has ever had with a first campaign is visible in the first fifty.
Understand what happens at the moment of sending
Consent is checked for every individual person as the message is being sent, not when the audience was built. Somebody who objects between building and sending is not sent to.
That distinction is the whole difference between a system that can be relied on and one that produces an apology once a quarter. It also means an audience count and a send count can legitimately differ, which is the system working instead of a fault.
Watch what came back, not what was opened
Objections and complaints are the numbers that matter and they are the ones nobody puts on a slide. A campaign with excellent engagement and four objections has told you something about the next campaign that the engagement figure never will.
What a campaign is
What a campaign is made of, and what you see before it goes
Four small things, and one screen that tells you what would happen if you pressed the button.
The audience definition
An audience is a name, an optional description and a set of conditions. Each condition names a field, a comparison and a value: the relationship type is customer, the address has something in it, the record was created before a date. Every condition has to hold for someone to be in it.
The fields a condition may name are a fixed list: the name, the address, the kind of record, its status, its relationship type, its owner and the date it was created. A definition naming a field that did not exist would match no one whilst looking exactly like a working audience, which is the worst of the failures available. Twelve conditions is the ceiling, because no one writes a sensible audience with fifty clauses in it and every clause costs work on every record.
The definition is written back to you in words on the list of audiences, so what you are about to send to is legible without opening anything. Relationship type is customer, and email has anything in it, reads as a sentence somebody can check.
The template
A name, a subject and a body. Anything inside double braces is filled in for each person as the message goes out: your organisation's trading name, telephone and address, and the person's full name, first name and address. When you save a template it tells you which of those it found, because a template quietly missing one is how somebody receives an email addressed to no one.
A placeholder with nothing to fill it is left exactly as it was written rather than replaced with a space. That is deliberate. A gap in a sentence reads as a mistake in your writing, whilst braces still sitting in the middle of a paragraph read as a mistake in the template, which is what it actually is.
The campaign itself
A name, one audience, one template, a purpose and a state. The purpose is the important part: it is what the consent check is made against, so a campaign whose purpose is marketing reaches the people who agreed to marketing and nobody else. The state is draft or sent, and there is no third value.
What the preview tells you
Before sending you can ask what would happen, and nothing is written. You are told how many people are in the audience, how many would receive it, and how many would not, grouped by reason. There are four reasons and they are the words on the screen: no address, restricted from processing, never agreed to hear from you, and asked you to stop.
You also get a handful of names as a sample, and that sample is filtered by what you personally may see whilst the counts are not. The counts are a fact about the campaign and someone planning one needs the real number. The names are facts about people, and they answer to the permission on those people.
What is left behind afterwards
A row for every person in the audience, whether they were written to or not, carrying what happened, the reason where there was one, and the time. Counts of how many were reached and how many were left out. A timeline entry on each person who received it, naming the campaign. And on each of them, the campaign recorded as the last thing that touched them, and as the first thing if nothing was there already.
Those recipient rows are the reason a complaint can be answered at all. Somebody asking whether you wrote to them, and when, is asking a question that has a row as its answer rather than somebody's memory of a Tuesday.
Eight people who do not fit
Somebody in the recycle bin, somebody erased, someone who asked you to stop
Most of the interesting behaviour in marketing is what happens to the people who do not fit the shape the campaign assumed.
Somebody who asked you to stop processing rather than to stop emailing
Restriction is a different request from withdrawal. It is what someone asks for when they dispute what you hold and want you to stop using it whilst that is settled, and the record stays readable throughout, because the point is the dispute instead of the deletion.
Restriction outranks consent at the moment of sending. Somebody who agreed last year and has since asked for processing to stop is left out, with restriction given as the reason, and recording their consent again does not put them back. Two different requests deserve two different answers.
Someone in the recycle bin
Deletion here is reversible, so a deleted person is still a row with a name and an address on it. That is precisely what makes them dangerous to an audience: a definition asked whether that row still matches would say yes. So a record moved to the bin leaves every audience at that moment, and the send filters binned records again when it reads the membership. Two guards for one problem, because the cost of getting it wrong is writing to somebody who asked to be removed.
Someone brought back out of it
They rejoin the audiences they belong in now, which are not necessarily the ones they left. If their status changed whilst they were in the bin, the current facts decide, not the ones that applied on the day someone deleted them.
An enquiry that becomes a customer
This one is worth explaining because the failure is invisible. Membership is settled when a record changes, and after a conversion nothing about the new contact would necessarily ever change again. Left alone, the customer you had just won would belong to no audience and never would, with nothing on any screen suggesting anything was wrong. So conversion tells the audiences about the record in the same transaction that creates it.
A stranger who fills in your form with a customer's address
Nothing verifies an address typed into a public form. If a submission were matched to an existing contact and a consent row written against them, anybody who knew a customer's address could grant consent on their behalf, or post the form with the box unticked and quietly remove that customer from every future campaign.
So consent from a form is only ever recorded for a record that submission itself created. An existing person's consent position is never touched from a public page. The enquiry is still made, it still carries what was ticked so somebody can act on it, the exact wording shown is stored with it, and the audit entry names the visitor. The better answer is a confirmation link before anything is recorded at all. That is worth doing and it is not what happens today.
A campaign somebody tries to send twice
Refused. Only a draft can be sent, and sending moves it out of draft in the same transaction that records the recipients. The people who receive a thing twice are the people most likely to complain about it, so this is one of the few places the product simply will not do as it is told.
A rule pointed at something that is not there
A workflow whose action is to put someone on a sequence is checked against the sequences that exist when you build it, because the version without that check counted itself as having run every time it fired: its history read as working whilst it had never sent anything at all.
A workflow that would enrol someone who is still an enquiry instead of a contact is refused in the open, with the reason written next to the workflow where you look, rather than writing an enrolment that could never send.
Someone erased
Audience membership, campaign recipient rows and the consent history are removed outright, because none of them has a life of its own once the person is gone. Your own records that happened to name them, an invoice or a contract, stay and stop pointing at anyone, because destroying your accounting record is not what erasure means.
Both directions
What this reaches into, and what reaches into it
Marketing is the part of a CRM most likely to be a separate system pretending otherwise. Here is exactly where it is not.
Every change to a record is settled against every audience
Creating a contact, changing one, moving one to the bin, restoring one, converting an enquiry and taking a form submission all decide that one record against every audience definition as part of the same change. The cost is one pass over your handful of definitions, rather than every audience costing a pass over every record, which is why opening an audience is instant whatever you hold.
A workflow condition is an audience condition
The conditions you put on a rule are written in the same language as an audience and are settled by the same code. That is a deliberate refusal to have two condition languages: a second one would be a second thing to learn, a second thing to test, and two places for the same question to be answered differently.
The permission checked is the one on the person
Membership is a property of a record rather than of an audience, so someone who may not see a contact does not see them inside an audience either. An audience is not a way around who may see whom, and neither is the preview of a campaign.
The count is the sharper version of the same problem. The stored count is the true one, because that is what would be written to, but the count shown to a person is filtered to what they may see. An unfiltered total over a definition somebody writes themselves is a way to interrogate records they are refused: name starts with A, then AB, and a sensitive contact can be read out a character at a time by watching the number move.
Sending writes into the timeline and into attribution
Each person written to gets a timeline entry naming the campaign, which is what makes the send visible to whoever picks up the phone afterwards without them having to know a campaign happened. The campaign is also recorded on that person as the last thing that touched them, and as the first thing only where nothing was there before, which is what makes first touch actually first.
Opportunities carry both, so what a campaign produced is counted twice over: what it brought in and what made someone act. Those two answers are usually different, and an organisation choosing between them is choosing what to spend money on. Totals are grouped by currency, because adding pounds to dollars produces a number that is not an amount of anything.
Automation shares its vocabulary with webhooks
The events a rule can trigger on are the same closed list an outgoing webhook can subscribe to, published from the same place, so a rule and an external system hear about exactly the same things. One vocabulary for what can happen in the product, instead of one for automation and a different one for integrations.
Sensitivity travels with what automation creates
When a rule puts somebody on a sequence, the owner and the sensitivity of the contact are carried onto the enrolment. Without that, chasing a sensitive contact would be more visible than the contact is, and a list of enrolments would name people the reader is refused everywhere else in the product.
Decisions
Why it works this way, and what was turned down
There is no way to say any of these
An audience definition has no or in it. Every condition must hold, and the alternative was considered and rejected. An audience with a branch in it is an audience somebody cannot read aloud, and one nobody can read aloud is one someone eventually sends the wrong campaign to.
Nothing is lost, because two audiences say the same thing more clearly than one with a branch, and a campaign is not restricted to a single audience over its life. The cost is real and worth naming: expressing customers in Kent or customers in Sussex takes two definitions where a more clever system would take one.
Membership is kept, not worked out when you look
The tempting design is to evaluate the definition every time somebody opens the audience. It is simpler, and it never goes stale. It also means every look costs a pass over every record you hold, on a database that belongs to one organisation and has to stay quick for the person using it.
So membership is stored and kept current by each record change rather than by recomputation. What that costs is honest to state: changing a definition means working the whole audience out again, and every route that changes a record has to say so, which is why the list of places that do is written out above rather than left implied. Anything that changed a record without saying so would leave a membership quietly wrong, and quietly wrong is the whole problem this page is about.
Four separate limits on automation, not one clever one
A rule set off by its own previous run is stopped, and that case is named separately from the others because it is the one people actually build. A chain of rules triggering rules is stopped at three, which is enough for something filing a record, triggering a notification, triggering an entry. Beyond that no one has designed a chain, they have made a mistake.
A rule acting on the same record it acted on a minute ago is stopped, because it is almost always reacting to its own change. One rule is capped at two hundred runs in an hour, and the whole organisation at two thousand, so a single runaway cannot spend everything.
Four limits instead of one, because each catches something the others do not, and a single clever limit would be a single thing to get wrong. Every attempt is recorded whether it ran or was refused, with the reason, and the most recent refusal sits next to the rule in plain words. The guard reads that history to make its decisions, so it is state rather than a log that could be discarded.
A campaign is a thing that happens once
It could have been repeatable. Repeatable campaigns are a normal feature and someone will want one. The reason against it is that a repeat is indistinguishable, on the day, from an accident, and the accident costs more than the feature is worth. If you want to send to the same audience next month, that is a new campaign with its own recipient rows and its own record of who was left out.
Automation stops rather than queues when a plan runs out
The run that would cross the allowance is not held back to be attempted later. It is refused and the refusal is written into your own automation history with the reason, so the gap is visible in the place someone would look. A silent queue that empties itself days later is worse than a refusal, because the messages arrive when no one is expecting them and nobody can explain why.
May and can
Who may do this, and what your plan decides
Marketing is the area where the difference between may and can matters most, because the actions reach outside the organisation.
- See audiences
- Enough to open one and read who is in it, though who you see inside it is still decided by whether you may see those people.
- Build audiences
- Held separately, because writing a definition is a way of asking questions about records rather than merely reading a list someone else wrote.
- See campaigns
- Covers the preview of who would receive one and the figures for what a sent campaign produced afterwards.
- Send campaigns
- Its own permission rather than part of being able to write one. This is the action that reaches people outside the organisation, and it should be possible to let someone draft without letting them send.
- Build workflows
- Also what it takes to read the history of runs and refusals, because a rule you may create and cannot inspect is a rule nobody can explain.
- Manage forms
- Publishing a form is publishing a page a stranger can post to, and the consent wording on it is what you would have to produce if anyone asked.
- Write templates
- A template belongs to communication rather than to marketing, because follow up sequences and the shared inbox send the same ones.
- Record consent
- Not a marketing permission at all. It is the ordinary permission to change the person's record, because consent is a fact about a person instead of a marketing asset.
What the plan decides
Audiences, campaigns and automation sit on the plans that include marketing, which the pricing page states plainly, and all three are refused by the plan as well as by permission. Building an audience is included in that: a plan without marketing used to let you assemble a list you could never write to, which is a worse answer than a refusal because you find it out at the end. When the plan refuses, it names the plan that would include it rather than saying no.
The plan is checked again at the moment of sending rather than only when the campaign was written. A campaign drafted during a trial does not go out after the plan it needed has lapsed, and a rule stops running when automation stops being included. That second check exists because a marketing send has a direct cost and reaches people who are not your colleagues.
The allowance, and what actually counts against it
The allowance counts people written to over the previous thirty days, not the size of your audiences. Somebody left out because they never agreed, or because they asked you to stop, does not count towards it, which is the fair reading: you are charged for what went out rather than for what you considered.
A campaign that would cross the line is refused before anything at all is written, so it stays a draft rather than sending to some of the audience and stopping in the middle. Automation is counted the same way and refused the same way, run by run.
What is never behind a plan
Consent records, the audit trail, subject access tooling, two factor sign in and complete export are on every plan including the free one, permanently. That is deliberate and it is not a trial position. Recording that somebody withdrew, and being able to demonstrate it later, must never be something an organisation cannot afford, and a supplier who puts the obligations behind an upgrade has made the obligation into a sales tactic.
The consequence is worth stating in the direction that costs us something: an organisation on the free plan can hold consent properly, evidence it, answer a subject access request and take all of its data away, and can do none of the sending this page describes. What that free plan costs us to run is written up in the measurements behind it.
The trades where consent is the hard part
Consent records earn their keep where the same person hears from you in several different capacities. Charities hold supporters who gave for one purpose and not another, membership organisations have to separate a renewal notice from a campaign, education and training writes to learners, employers and funders about different things, and retail services has to keep an order confirmation apart from a promotion. Those pages describe how each of them models it.
Asked about consent
Asked about marketing and consent
Is this a replacement for a proper email marketing platform?
For a small organisation marketing itself, frequently yes. For a business whose marketing is sophisticated, no: there is no visual template builder of any depth, no split testing, no scoring model, and the landing pages are a title, a body and a form rather than anything you would call a builder. What it does have is the one thing dedicated platforms usually cannot, which is consent and audiences computed from the same records your sales and service run on.
Why does an audience not freeze when I build it?
Because a frozen list is wrong by the time you send it. An audience here is a definition instead of a snapshot: customers in one county with no activity for ninety days means whoever satisfies that now. That is almost always what people actually wanted, and the exceptions, such as needing to know exactly who received something, are answered by the record of what was sent rather than by keeping a stale list.
What happens if somebody has no consent recorded at all?
They do not receive marketing. An absent consent record is not permission, and treating silence as agreement is the single most common way organisations end up in trouble. If you have imported a list where consent was recorded elsewhere, record it here with its original date and source instead of assuming it.
Can I send to people who have not agreed, if I have a legitimate reason?
Whether a particular send is lawful is a decision for you rather than for us, and it depends on your jurisdiction, your relationship with the person and what you are sending. What the product does is record what somebody agreed to and when, so that you can make that judgement with facts and evidence it afterwards. It will not make the judgement for you.
Does it track opens and clicks?
Clicks, yes. Opens are deliberately not treated as a meaningful measure, because mail clients now fetch images on the recipient's behalf, which makes an open a measurement of someone's mail provider rather than of a person. A number that is quietly wrong is worse than no number, because decisions get made with it.
What stops automation running away?
Sequences and rules are bounded by design: they have an end, and they cannot chain into one another indefinitely. This is a constraint instead of a limitation. A rule that can run away eventually will, and it will do so on a bank holiday when no one is watching.
Can an agency use this to send on behalf of clients?
We would advise against it. The consent records would belong to your organisation rather than to your client's, which is the wrong controller relationship, and sender authentication is configured per organisation rather than per client. Client sending belongs in a platform your client controls.
What are the sending limits?
A monthly allowance on the plan, stated on the pricing page. Going over means you are told instead of that a bill arrives, which is the difference between a plan and a meter.
Record consent properly first
Before any campaign, get the consent records right with their original dates and sources. Everything else on this page depends on that being true.
Three people, a thousand relationships, no card and no time limit.