# CMP-059 — Message flow must describe the mechanism end to end

> The message-flow / CTA field must state the exact consent-capture mechanism end to end.

- **Rule ID:** CMP-059
- **Layer:** Campaign (`CAMPAIGN`)
- **Checks:** `campaign.message_flow`
- **Severity:** BLOCKING — Breaking this rule gets the submission rejected outright.
- **When it bites:** Gates approval — get this wrong and registration is refused
- **How it is detected:** AI judgement over the submitted form
- **Fix type:** Fix the field — a better value in the form clears it
- **Required by:** TCR, Twilio, Bandwidth, AWS
- **Applies:** Applies when the use case is NOT M2M.
- **Canonical URL:** https://ekas.io/rules/10dlc/campaign/cmp-059/

## Why this rule exists

Naming a channel is not describing a mechanism. A reviewer needs the whole path — where the consumer is, what they see, what they tick or say, what happens next — because each step is where a compliance defect hides, and a description that skips steps is indistinguishable from one that has steps to hide.

## How to fix it

Write the flow as a single narrative covering place, audience, prompt, action, disclosure wording, and what is stored. Done when the paragraph reads as a walkthrough someone could follow. Put it in campaign.message_flow itself — this field is graded on its own text, not on what a reviewer would find by opening your site.

## Example of a compliant value

```text
Customers opt in at https://acmecoffee.com/checkout, in the block beneath the delivery address fields, after entering delivery details and before placing the order. They see an unchecked box labelled "Text me offers" with this disclosure printed beside it: "By checking this box you agree to receive recurring automated marketing text messages from Acme Coffee at the number provided. Consent is not a condition of any purchase. Message frequency varies, up to 4 messages per month. Message and data rates may apply. Reply STOP to unsubscribe or HELP for help." Only customers who tick the box are subscribed; they receive order and delivery updates plus weekly promotional offers. Each opt-in is stored with the phone number, timestamp, the disclosure version shown, and the checkout session id. Screenshot: https://cdn.acmecoffee.com/compliance/optin.png
```

## Notes

Catalog CMP-059 is universal except use_case=M2M, which has no consumer to consent. M2M is not in USE_CASE_REQUIREMENTS yet, so today the tag documents the carve-out rather than firing.
