CarpeMessaging
Request early access

Help · Audience

Consent

Consent is permission to send marketing. It is the person's own answer, not your setting — which is why nothing in the app lets you type a new answer on their behalf.

Consent is recorded per channel. A profile carries one row for Email and one for Text messages, and they move independently. Agreeing to your email is not agreeing to your texts, and the other way round.

The table below is written for email. The same four states apply to texts, with two differences: the permanent state is called Do not text, and texting STOP puts somebody in Unsubscribed, not in the permanent state — texting START from the same phone brings them back. The section on text messages further down covers the rest.

The four states

On each channel a profile is in one of four states: Subscribed, Unsubscribed, No consent recorded, or the permanent Do not email (Do not text on the text row). Only Subscribed lets your marketing reach them.

StateWhat it means
SubscribedThey said yes. Marketing email you send can reach them.
UnsubscribedThey said no, or asked to stop. Marketing email skips them. They can come back — by saying yes again through your store, or by pressing Resubscribe on your unsubscribe page.
No consent recordedNobody has ever asked, or the answer never reached us. Silence is not a yes, so marketing email skips them.
Do not emailThis address is never emailed again. Permanent — except that the store's owner can release a bounced address once (below).

On a profile, that last state reads "No consent recorded" rather than "never subscribed": silence is not a decision the person made, and showing it as one would be putting words in their mouth. In the segment builder the same state is offered as Never subscribed, because there it is a question you are asking of your own people rather than a claim on their record.

Do not email, and why it is permanent

Do not email is the one state that cannot be undone — not by support, not by re-importing the address, not by marking the profile by hand. Once an address is in it, no email you send through this app will ever go to it again.

There is one exception, and it is narrow on purpose. When the only reason is a bounce, the person has since ordered, started a checkout or signed up on one of your forms, nobody has ever reported your mail as spam from that address, and it has never been released before, the store's owner can release it once from the profile. It then takes whatever email consent your Shopify store holds for that person now, never more. If it bounces again, it is permanent. The Profiles help page has the details.

That is the point. Every reason an address lands here is a reason that continuing to mail it damages you: mail that bounced, mail somebody reported as spam, an address that is not a real mailbox, or a person who asked to be removed for good. A permanent block is what keeps a handful of bad addresses from quietly wrecking whether your good mail arrives at all.

Beside the state, the app names the reason:

ReasonWhat happened
BouncedThe address rejected your mail permanently.
Marked as spamThey reported one of your emails as spam.
Store requestThe address was blocked on your store's instruction.
Privacy requestThe person asked to be erased, and your store passed that on.
Invalid addressYour store recorded the address as not a real mailbox.

Privacy request is the reason with no bounce or spam report behind it: the person asked to be erased. What an erasure removes from their record, and the one thing it deliberately leaves behind, is on the Profiles page.

If what you want is a temporary stop — park a group for a season, then mail them in Q4 — that is not this. That is Pause, which is reversible and leaves consent untouched.

Consent arrives from your store and from the signup forms you build here, and the app records it as it happened. The unsubscribe link, bounces and spam reports on mail you send change it too.

Every change is kept, dated when it happened or when we learned of it, with what changed it — a profile's Activity shows the whole story, which is your proof of consent if anyone ever asks when a person said yes or no. The history begins with where each person's consent stood when it started to be kept in your store, and deleting a profile deletes its history with it.

The ways it is recorded:

A form signup is consent on its own. Some tools send a "click here to confirm" email before they will treat a signup as real. This one does not need to, because it checks the address at the moment it is typed rather than asking the person to prove themselves twice — see Verified identity.

Somebody who unsubscribed and then fills in one of your forms is subscribed again. Sending a form with their address in it — typed, or filled in from their store account — is that person saying they want your email, and it is the most recent thing they have said — so it is what the app records, whatever the profile said before. That holds however the older Unsubscribed got there: their own press on an unsubscribe link, your store telling us they were never subscribed, or you marking it by hand.

Except for an address in Do not email, which no form can undo. A permanent bounce, a spam report, or an address your store marks invalid puts somebody in Do not email, and no form can take them back out of it. The only way out is the store's owner releasing a bounced address, once, from the profile — nothing else in this product can do it. A form that is filled in for such an address thanks them like anyone else, but it does not give them a discount code: they see the words you wrote on the discount code block for when no code can be given, the same words any shopper sees when there is no code to hand over. The address stays in Do not email.

Text messages work the other way round, and on purpose. A typed number is not treated as consent to text: a form can be filled in by anybody, and on that channel there is a stronger proof available — the six-digit code the person types back from the handset in their hand. Email has no equivalent that does not cost somebody a message they never asked for. And a form never brings back somebody who texted STOP: only START from their own phone does that. The section on text messages below says where text consent comes from.

What a form may write at all. A form fills blanks; it does not overwrite what you already know. If your store has a first name for somebody, a form cannot change it — that comes from your store, where the person signs in as themselves. The same goes for a phone number, and more strictly: a form never replaces a number you already have, a blank one is filled at the moment we text the six-digit code, and the number only becomes textable once that code comes back.

Somebody who unsubscribed can also subscribe again themselves, with one press on your unsubscribe page. That is their own decision on the day they make it, and their profile then shows Subscribed again. An address in Do not email is different: the button never appears for it, and nothing anywhere in this product can bring it back. What that button looks like, and whether you offer it at all, is on the Unsubscribe page screen in Settings.

Two consequences worth knowing. Recording somebody's consent by hand is deliberately a narrow door — the menu on each consent row, one confirmed sentence, and your name kept beside it; see Profiles. The one bulk exception is for people you imported who were still subscribed in your old email platform when you excluded them there only to save on its costs: a manager or owner can restore those people together, after confirming one sentence, and nobody who unsubscribed, bounced or marked your email as spam is among them (Why most people arrive held). And a later answer does not overwrite an earlier one just by arriving late: if two records reach the app out of order, the one that actually happened later wins.

The boxes at your checkout

The consent boxes at your checkout, and the words beside them, are your store's, so you change them in your Shopify admin. Nothing in this app edits them. The app records every tick, whatever the box says.

All of it is under Settings → Checkout in your Shopify admin, in the Marketing opt-in section:

Shopify does not let the text-message box be ticked in advance. Somebody has to tick it themselves.

Changing the wording needs a Shopify login with access to your store's settings. A team member who only signs in at app.carpemessaging.com cannot do it from here. The Your team page lists everything else that is done in Shopify.

One tick at your checkout is enough. If your checkout offers a box for text messages and somebody ticks it, that is their consent to your texts, on the phone number they gave at checkout. The profile shows Subscribed on its text row with nothing left to confirm. The box on their account page in your store counts the same.

A text sign-up another app recorded in Shopify counts too, when Shopify dated it.

Your store tells us about the tick. There is no second sign-up and no text asking them to reply YES.

The other ways text consent arrives:

And the ways it ends:

You cannot mark somebody subscribed to texts by hand. Only the person can agree.

Do not text is the text row's permanent state, and it works like Do not email: that number is never texted again, and nothing the person texts — START included — can undo it.

Before the first marketing text reaches a number, that number gets your program details: who is writing, what they will get, how often, and how to stop. Each phone gets it once. It goes out in these places:

The checkout text reads like this, with your store's name: "Your Store: you are signed up for text messages with offers and news from Your Store. Message frequency varies. Message and data rates may apply. Reply HELP for help. Reply STOP to opt out."

That checkout text is sent once for each tick. Shopify telling us the same thing again does not send it again, and neither does a number that has already had the details, from your form's code text or anywhere else. It never goes to somebody who has opted out or who is on Do not text. It answers what they just did, so it goes straight away at any hour rather than waiting for their morning. If your text number is not approved yet, or your texts are disabled or paused, the tick waits and the text goes once your number can send again. The same is true if you pause the person: the tick waits, and the text goes once you release them. Ticks made before your store first enabled text messages, and consent you import, never get this text — however your store heard about the tick. Disabling your texts and enabling them again does not change which ticks those are.

A checkout made with only a phone number, and no email address, gets this text like any other tick, and that person can then be texted like any other customer. (When your store tells us about the text consent a moment before it tells us about the person — it happens now and then — the text still goes.)

Somebody whose consent came another way has not had the details, so your marketing texts skip them for now. They show on Not sent with the reason Has not had your program details.

The consent people give on your form is for marketing texts. Your number is registered for marketing, and the sentence on your form says so. Order updates by text are not sent from this app today.

It goes both ways. The app reads the consent your store holds and honors it, and when somebody opts out here, that withdrawal is written back to their customer record in your store straight away.

That covers the ways an opt-out starts with us:

Each writes Unsubscribed on the customer record in your store. Your store has no equivalent of Do not email, so a bounce or a spam report lands there as an unsubscribe — the full reason stays here, on the profile, and the address is still never emailed again by this app whatever your store says later.

Why it matters: without this, someone could unsubscribe from your email and still look subscribed everywhere else you look, and another app reading your store would go on treating them as fair game. The point is that no other surface can re-promise what somebody has already revoked.

This needs permission to update customers in your store, which you are asked for when you install or update the app. It is used for consent and for nothing else — no other detail on a customer is ever touched.

If your store is unreachable when an opt-out happens, the opt-out still stands here immediately, and the app keeps trying to pass it on. The person is unsubscribed the moment they ask, whether or not your store has caught up.

Subscribing does not travel the same way. Only a withdrawal is written back to your store. Saying somebody wants your email is a claim about them, and it is not this app's to make on a customer record you own. So a person who unsubscribed, and later filled in one of your forms, is Subscribed here and still reads unsubscribed in your store's admin — and stays that way until they change it there. It is worth knowing before you compare the two screens and think one of them is wrong.

There is one exception. When you restore the people you excluded in your old email platform only to save on its costs, your store is told they are subscribed again, but only for people the import itself had marked unsubscribed there.

Consent is checked at send time, for every email and text you send. Not when the audience was built, not when the segment was counted — every time, for every recipient, immediately before the message goes.

That is why a segment's count and the number of people a send reaches are not the same number, and why the members preview on a segment says so. Being in a segment has never been a claim that anybody will be emailed. Segments are questions about who your people are; consent is the answer about who may hear from you.

Marketing consent governs marketing mail. It does not touch the emails your store sends about an order somebody placed.

Where you see it

Consent shows on the profiles screen, on each profile's own page, and in the segment builder.