Article summary
Integrate WhatsApp Number Checking through phone snapshots, TXT batches, Excel staging and reversible field history without overwriting CRM identity or permission.
The most dangerous step in a WhatsApp Number-Checking CRM integration is importing an Excel result directly over the contact table. Screening fields are usually observations from one task at one time. Names, primary phones, permission and customer relationships have different evidence. A reliable design can add an observation, expose a conflict and reverse an import instead of compressing both layers into one row of supposed truth.
Assign ownership to three data layers
CRM owns customer relationships and permission. An AIPUSH task processes phones and returns the fields defined for that task. Staging connects the two. No screening field may change permission_status automatically, and a mapping difference cannot merge contacts by itself. Clear ownership gives every exception a destination.
Route each WS task to its own result model
| Task | Core returned fields | Suggested role |
|---|---|---|
| WS Registration | Phone, registration status | Candidate-channel observation |
| WS High-Precision Registration | Phone, business observation, mapped WhatsApp phone | Registration and mapping review |
| WS Activity | Phone, activity time, active days, mapped phone | Timing aid inside an existing relationship |
| WS Profile Picture, Gender and Age, or Full Format | Profile and mapping fields defined by the selected task | Restricted, specifically approved use |
Do not create one universal screening table
A universal wide table makes fields absent from a service look like failed matches. Store versioned records by task_type. Shared fields are input_phone, checked_at, batch_id and status; task-specific fields live in the relevant structure. The model can then distinguish “this task has no such field” from “the task returned an empty observation.”
Generate TXT from an immutable snapshot
Freeze source_snapshot and assign input_row_id before exporting the TXT with one phone per line. Names, companies, orders, labels and permission remain in CRM. Retain the TXT hash, unique-phone count and exception count. Even if a contact changes while the task runs, the result returns to the exact input version.
Turn Excel into four change classes
- insert: the contact has no observation for this task.
- supersede: a prior observation exists and the new version replaces its eligibility for use without deleting history.
- conflict: mapped phone, key or provenance relationship disagrees.
- no-op: the same batch or result version was already processed.
Only inserts and approved supersedes proceed. Conflicts remain in human review.
Model mapped phones as relationships
Never write a mapped WhatsApp phone straight into contact.primary_phone. A phone_relationship table retains input_phone, mapped_phone, observed_at, source_task and resolution_state. Customer confirmation, a recent order or other reliable evidence can later support adding a contact method, replacing an old phone or keeping the identities separate.
Permission is an independent veto
The WhatsApp Business Messaging Policy requires businesses to contact people after they provided their phone and opted in to subsequent WhatsApp messages, and it requires stop and opt-out requests to be respected. CRM queries must first pass permission_status and message_category. Registration, activity or avatar visibility cannot convert deny into allow.
Make every write-back reversible
Before commit, store change_set_id and references to prior values. A rollback does not delete the contact; it marks the batch observations revoked, restores the previous eligible version and rebuilds downstream indexes. If the source list caused the error, block the same source_snapshot from resubmission until corrected.
Give field families different lifetimes
Registration, activity, avatar, business and profile observations may decay at different rates. Set expires_at and refresh_policy by task. After expiry, exclude the value from ordering and segmentation while retaining minimum audit history. Do not repeatedly run the entire CRM to maintain an illusion that every field is always current.
Do not deduplicate a shared phone globally
One phone can appear under multiple contacts, brands or business entities. The TXT layer may deduplicate phones to avoid repeated processing, but the crosswalk must preserve the one-to-many relationship. Write-back evaluates permission and purpose for each record; one contact’s service permission never extends to every related row.
Simulate three failures before launch
- Import the same Excel twice; the second attempt should be all no-op.
- Return a mapped phone belonging to another contact; it must become conflict rather than a merge.
- Use the wrong task or source for a batch; change_set_id must reverse the entire import.
Build the dashboard around controllable risk
Show unresolved collisions, expired observations, missing permission, duplicate imports, rollbacks and unknown rate by task. A dashboard limited to “usable phones found” can hide incorrect relationships and contact that was never allowed.
TXT and Excel can support a stable WhatsApp Number-Checking integration when CRM treats screening as an observed, sourced, versioned, expiring and reversible layer. The goal is not the fastest overwrite; it is the ability to explain and recover every change.
