Article summary
Customer WhatsApp signup is an account action; WS Registration is a business observation over an authorized phone list. DTC contact still depends on order events, permission and suppression.
“The customer registered a WhatsApp account” and “the store ran WS Registration on a phone” involve different actors, times and evidence chains. The first is an account action inside WhatsApp. The second is a dated state observation over a phone the DTC store is authorized to process. Checking neither registers the customer nor proves consent to store marketing.
Use a state machine, not one “valid user” label
| State | Producer | May trigger |
|---|---|---|
| phone_submitted | Checkout/form | Phone normalization |
| channel_permission | Explicit customer choice | Messages within purpose |
| registration_observed | WS Registration task | Platform-observation update |
| opted_out | Customer exit | Immediate suppression |
Account signup happens inside the platform
A merchant does not create an account by uploading a phone and should not complete verification for a customer. Registration, phone change and account deletion are actions between the person and platform. A business may retain only the observation it is authorized to make.
The actual WS Registration output
AIPUSH WS Registration exports phone and registration result. The upload is a one-phone-per-line TXT and Excel is the result. The task does not return password, verification code, conversation, order intent or marketing permission.
What a DTC checkout should collect
| Field | Reason | Must not default |
|---|---|---|
| phone_raw / country | Fulfillment contact and normalization | WhatsApp permission |
| preferred_channel | Customer contact choice | Cross-channel consent |
| purpose | Order updates or marketing | Permanent validity |
| consented_at / text_version | Preserve context | Registration as substitute |
Separate order notices from marketing
Payment confirmation, delivery exceptions and support replies belong to a service context. New products and promotions have another purpose. Even on the same WhatsApp channel, store separate scope and exit. Registration never expands message purpose.
One customer with several orders still needs dated evidence
Use contact_id to connect order events while registration_observation keeps checked_at and refresh_after. After expiry, stop relying on the field rather than automatically checking every historical buyer. Repeat purchase never restores an opt-out.
Phone change and reassignment
When a customer edits a phone, close the old phone_id with valid_to and collect country evidence and channel choice for the new one. Carriers can reassign phones; a new positive result cannot transfer old orders or permission to a new holder.
Excel writes to the observation layer only
Reconcile contact_id through the internal crosswalk and append batch_id, checked_at and task_name. Separate blank, error and explicit unregistered. One-to-many or many-to-one relationships enter conflict review rather than overwriting the customer master.
What to do when the result is unregistered
For a necessary order message, use the customer’s explicitly chosen fallback or prompt an update in the owned account area. Do not keep rechecking, rotate sender accounts or call unknown an invalid customer. Marketing simply does not enter the queue.
A launch checklist for DTC teams
- Separate checkout and marketing permission.
- Make phone normalization traceable.
- Write Registration only as an observation.
- Give opt-out highest priority.
- Never transfer identity after phone change.
- Attach every message to an order or campaign context.
The correct business conclusion
Customer signup says what a person did on the platform. Registration checking says what a phone task returned. Permission says what the store may send now. All three can coexist, but none replaces another.
