Article summary
Normalize Algeria +213 phones and govern French or Arabic preference separately from WS Full Format observations.
An Algeria WhatsApp Full Format run contains two data tracks that must not be collapsed: +213 phone normalization and the contact’s choice of French, Arabic or another language. The country code supports phone structure; it does not prove location, mother tongue or marketing permission.
Freeze a versioned +213 rule first
Retain phone_raw, country_evidence and source, then handle domestic prefixes and international notation under the current Algerian plan. The ITU National Numbering Plans directory includes the Algeria (+213) entry and provides a maintenance starting point. Do not freeze an old range table forever.
| Input | Action | Refuse to guess |
|---|---|---|
| Already has +213 | Clean and validate | No duplicate country code |
| Domestic notation | Convert only with country evidence | No wrong retained prefix |
| Country or length conflict | Exception queue | No padding to raise pass rate |
Full Format is not the default task
WS Full Format returns phone, activity time, active days, gender, age, avatar, skin tone, avatar type, business account and mapped phone. Use it only for an approved multi-field analysis. A registration question belongs in WS Registration.
Separate returned fields by purpose
| Domain | Fields | Unsupported inference |
|---|---|---|
| Association | Phone, mapped phone | Permanent identity |
| Recency | Activity time and days | Purchase intent |
| Profile | Age, gender, skin tone | Verified demographics |
| Presentation | Avatar, type, business account | Company credit |
Every language value needs provenance
preferred_language comes from form selection, a support conversation or an explicit setting, with language_source stored beside it. +213, name spelling and avatar cannot automatically select French or Arabic. Ask neutrally when unknown.
TXT excludes language and orders
AIPUSH accepts a one-phone-per-line TXT. Name, language, order and permission remain internal and reconnect through contact_id after Excel returns. Store the hash, count and normalization version before upload.
Accept Excel before joining language
Reconcile input and return counts, field blanks and mapping collisions first. Only then connect the language domain. A task-returned profile value cannot override a user’s language choice, and unknown must not become false.
Mapped relationships need a human gate
One-to-many, many-to-one or structurally implausible +213 mappings enter mapping_conflict. A mapping is a dated observation and never overwrites phone_raw or the customer-provided phone automatically.
Activity does not manufacture permission
Recent activity, business-account state and avatar do not show that the user wants marketing. The final queue still requires provenance, WhatsApp scope, purpose and suppression. Opt-out retains veto power.
Deliver an explainable list
A qualified batch discloses rule version, format exceptions, field coverage, unknown rate, language evidence and permission state without allowing one to substitute for another. The value of wider fields comes from explainability—not from filling every blank.
