Article summary
Normalize Luxembourg +352 phones and govern WS Full Format results in a multilingual CRM without inferring language from country code.
Before Luxembourg +352 phones enter a WhatsApp Full Format task, solve two independent problems: how the phone is normalized and which language the contact prefers. A country code supports phone structure; it cannot stand in for language choice. French, German, Luxembourgish or English preference should come from user selection or evidenced interaction.
Do not import a neighboring country’s +352 rule
Retain phone_raw and country_evidence, remove display punctuation, and validate against the current Luxembourg numbering plan. Do not inject a trunk zero common in another country or pad a phone by length. Version the rule with its source and effective date, and maintain range changes explicitly.
| Input | Handling | Exception |
|---|---|---|
| Already contains +352 | Remove display characters and validate | Duplicated country code |
| Domestic notation with reliable evidence | Create +352 international representation | Invented leading zero |
| Neighboring-country address conflicts | Review manually | Country guessed from CRM language |
Language is a separate user attribute
Store preferred_language, language_source and language_confirmed_at. A user’s choice outranks an address, and an address outranks a salesperson’s guess; the country code does not determine the field. When evidence is absent, ask neutrally rather than sending the same promotion in three languages.
Place Full Format fields in four access domains
| Domain | Fields | Main control |
|---|---|---|
| Phone association | Phone, mapped phone | Collision review |
| Activity observation | Activity time, active days | Retain observation date |
| Profile observation | Gender, age, skin tone | Restrict access and purpose |
| Account presentation | Avatar, avatar type, business account | No identity or value inference |
Keep the TXT upload minimal
AIPUSH accepts TXT with one normalized +352 phone per line. Language, name, contract and order stay out. An internal contact_id crosswalk reconnects the returned Excel in staging, so the multilingual CRM does not travel with the phone file.
Validate workbook structure first
Compare unique input and return counts, unmatched rows, repeated states and mapping collisions. Calculate non-missing, unknown and error rates per column. A blank activity or profile field must not be converted to false by the import layer; collapsing all absent states destroys evidence.
Treat cross-border workers explicitly
A person associated with Luxembourg may live in a neighboring country, keep another country’s phone or share a business contact device. +352 does not prove residence, and a different country code does not invalidate a customer. Jurisdiction, service market, tax treatment and language need separate evidence fields.
A mapped phone is not a shortcut to a master key
Write the WhatsApp mapped phone to a relationship table with observed_at. If one contact_id has several mappings or one mapping joins several customers, pause automatic promotion. The master retains phone_raw and customer-provided contact details.
A narrower task is often easier to defend
Use WS Registration when registration is the only question and WS Activity when activity observations are sufficient. Extra Full Format fields are justified only by a defined, low-risk business decision—not by the idea that exporting everything offers better value.
How to hand over a multilingual run
Package the +352 rule version, TXT hash, field coverage, mapping collisions, language-source distribution and permission status together while keeping their logic separate. The phone task says what was observed in this run. preferred_language says how to communicate. permission says whether communication is allowed. None can substitute for another.
