Ask for Marketing Consent
Ask with a Yes/No button pair inside an open conversation; a tap records the contact's decision, which every future marketing template send reads.
Getting here
Automate → Workflows, open a workflow, click + on the canvas, then pick Ask for Marketing Consent under Add Steps.
Before you start
- An owner, admin or agent can add this step and save the workflow. Publishing that workflow — the thing that makes it run on live conversations — is an owner or admin action.
- Building and running workflows depends on your plan; see pricing.
- Nothing outside Inchat has to be connected — the step asks and records the answer on the contact directly.
Set up
- Open the workflow and click + where the question belongs.
- Pick Ask for Marketing Consent.
- Write the question, e.g. "Want us to remind you on WhatsApp when it is about to run out?"
- Optional: change the Yes and No button labels (up to 20 characters each).
- Save the step, then publish the workflow.
Fields
- Question
- The message sent with the two consent buttons.
- Yes button
- The button that records marketing consent when tapped.
- Default: Yes, remind me
- Limits: Up to 20 characters (WhatsApp's own button-label limit).
- No button
- The button that records an opt-out when tapped.
- Default: No, thanks
- Limits: Up to 20 characters.
How it works
- Before sending anything, the step reads the contact's current consent state and skips (see When it fails) if they already agreed, are blocked, opted out before, or were asked in the last 30 days on any of this contact's conversations — not only this one.
- When none of those apply, it sends the question with the two buttons through the same path as Send a Message, so it also needs the 24-hour session window to be open.
- A tap on either button arrives as WhatsApp's own button-reply payload, which only exists because Inchat put it on this message — a customer cannot type or forward it. Yes writes
marketing_consent: trueon the contact with the tap's own timestamp; No writes an opt-out timestamp instead. - That write is idempotent by time: a tap only changes the contact when it is newer than both the contact's last recorded opt-in and opt-out, so a redelivered webhook or a late duplicate never overwrites a more recent answer.
- A contact who has completed a data-deletion (erasure) request stays opted out even if they tap Yes — Inchat's database keeps
marketing_consentfalse for an erased contact regardless of which part of the product tries to change it, so the tap has no effect on their eligibility for future marketing sends. - The recorded answer is exactly what Send WhatsApp Template reads before sending a marketing-category template to this contact later — a Yes here is what lets that later send go through; a No, or no answer, is what makes it skip.
- The step does not pause the run for the tap — it sends the two buttons and the flow continues immediately, the same turn, the way Send a Message does.
contact.marketing_consentis the one Condition field re-read live rather than from the run's starting snapshot, but a Condition placed right after this step still runs before a human has had time to read the message and tap a button, so it evaluates against whatever the contact's consent already was, not the answer this step just asked for.
When it fails
- No contact on this conversation: the step fails with This conversation has no contact to ask.
- The contact's consent could not be read (a lookup problem): the step fails with Could not read the contact's consent.
- The contact already agreed: skipped, not sent, with Skipped: the contact already agreed to marketing messages. — nothing goes out because nothing needs to.
- The contact is blocked: skipped with Skipped: the contact is blocked.
- The contact opted out before (a previous No, or an opt-out recorded elsewhere): skipped with Skipped: the contact opted out of marketing messages.
- Asked again inside the 30-day cooldown: skipped with Skipped: the contact was already asked in the last 30 days. — checked across every conversation this contact has, not only the current one, so re-asking on a second thread does not bypass it.
- Messaging window closed: refused before the send reaches WhatsApp, the same way Send a Message is — the execution log reads Messaging window closed — free-form send blocked. Use a send_template step (approved WhatsApp / utility template) instead.
- None of the above stop the run: every one of them is recorded and the flow continues to the next step regardless — there is no failure branch to author for this step in the drawer. The consent-state skips (already agreed, blocked, opted out, asked recently) mark the step ok in the run log, a deliberate non-send; a closed window marks it failed, the same status any other blocked send gets.
- The reason for any skip or failure is in the workflow's Activity tab, under Execution log, on this step's line.
Limits
- It only works inside an open messaging window — it cannot reopen a closed one to ask. There is no template-based version of this question; a template asking the same thing would need its own consent design.
- It records exactly one contact's answer, on the button tap alone — a customer who replies in words instead of tapping ("yes please") is not read as an answer.
- The 30-day cooldown and the already-answered/opted-out/blocked checks all read the SAME contact across every one of their conversations, so this step cannot be used to re-ask someone sooner by running it from a different thread.
- A Yes cannot be un-erased-around: once a contact has completed a data-deletion request, tapping Yes again does not turn marketing consent back on for them.
- It has no failure branch of its own; every skip reason and a closed window all fall through to the next step the same way.
- It does not pause for the tap. A Condition placed immediately after this step in the same run cannot branch on the answer — it evaluates before the customer has had a chance to see the message, let alone tap.
Best practices
- Ask once, early, rather than on every workflow that touches this contact — the cooldown already prevents nagging, but a clear one-time moment (checkout, first order) reads better than a repeated prompt.
- Do not place a Condition on marketing consent right after this step expecting to branch on the customer's answer — the run does not pause for the tap, so that Condition evaluates before the customer has had a chance to answer. Let the consent check inside Send WhatsApp Template do the right thing on a later send instead.
- Keep the question specific about what they are opting into — "remind you when stock runs low" sets a clearer expectation than a generic "can we send you offers?".
Use cases
- After a first order ships, ask whether the customer wants a WhatsApp reminder before their next refill is due.
- On a lead captured through a landing page, ask for marketing consent in the first conversation before a nurture sequence of templates begins.
FAQ and troubleshooting
- Why didn't the question send to a customer I know hasn't answered before?
- Check the workflow's Activity tab for the reason — the cooldown (asked in the last 30 days, on any of their conversations) or the messaging window being closed. Neither sends anything or stops the rest of the run, but they show up differently: the cooldown and the other consent-state skips mark the step ok (a deliberate skip), while a closed window marks it failed (the same as any other blocked send).
- Does a No permanently block marketing messages to this contact?
- It records an opt-out, which every future marketing template send checks and which this step itself will not ask past again. A person can change their mind through a channel that lets a member record a fresh Yes, unless they have separately completed a data-deletion request — that stays permanent.
- The customer typed "yes" instead of tapping the button. Did that count?
- No. Only a tap on this step's own Yes or No button is recorded — WhatsApp's button-reply payload is what proves it, and a customer cannot type or forward that payload themselves.
- If a customer taps Yes after requesting their data be deleted, does that turn marketing back on?
- No. Inchat's database keeps an erased contact's marketing consent off no matter which part of the product tries to change it, so that tap has no practical effect on future sends.
Related
- Send WhatsApp Template — Reach a WhatsApp customer with an approved Meta template regardless of whether the messaging window is open, checked for approval and marketing consent before anything is sent.
- Send a Message — Send free-form text — with several attachments if you need them, on the customer's own channel or a named one — inside the messaging window that channel currently has open.
- Condition — Split the run into up to twelve lanes plus a None lane, checked top to bottom — the first lane whose conditions all pass wins, and Condition tests one field against one value at a time.
- Workflows: how a flow runs — A workflow is one trigger, optional conditions and an ordered list of steps; only a published workflow runs, and this article explains how a run starts, forks, pauses, fails and stops.
Reading this with an AI assistant? Plain Markdown version.