A QR flow must say where the code leads
The requirementstatement
A QR opt-in must state whether the code opens a hosted opt-in form or a pre-filled SMS in the native messaging app.
- Severityseverity
- BlockingBLOCKINGBreaking this rule gets the submission rejected. There is no partial credit.
- When it bitesphase
- Gates approvalapprovalGet this wrong and the brand or campaign is refused at registration.
- What is checkedobject
- campaign.message_flow + QR destination
- Where it liveslayer
- CampaignCAMPAIGN
- How Ekas settles itdetectability
- AI · formAI_FORM
- A semantic question about what you wrote: whether a description matches a use case, whether a name looks like a filed entity. Judged by a model against written criteria.
- What the fix involvesfailureClass
- Fix the fieldRETRY_FIELD
- A better value in the form fixes it. Ekas can rewrite it and re-check.
- Who requires itauthorities
- TwilioKlaviyo
- When it appliesapplicabilityText
- Applies when consent was collected by QR code.
Why this rule existsrationale
How to fix itremediation
Say which of the two the code does, and give the destination: the opt-in URL, or the number and body of the pre-filled message. Done when the flow names the destination type in words rather than leaving it to be inferred from the URL.
A compliant exampleexample
Scanning the poster QR opens a pre-filled SMS to 55512 with the body JOIN; the customer presses send, which is the opt-in.
Provider rejection codescodes
The code you get back when this rule is what failed, and whether that provider lets you resubmit.
| Provider | Code | Resubmit |
|---|---|---|
| Twilio | 30909 | Yes |
Notesnotes
Rules you will hit next
Other campaign rules at the same severity. A registration is judged as a whole, not rule by rule.
CMP-103 is one of 94 campaign rules in the 915-rule 10DLC registry. Free to cite under CC BY 4.0.