Article summary
Move same-day Facebook form leads through lead IDs, country evidence and permission into TXT, then write FB Registration Excel to an observation layer without overwriting attribution.
The goal of checking Facebook ad leads is not to make the raw lead table look cleaner. It is to append a traceable platform-state observation. lead_id, ad provenance, form answers and consent language must remain intact. Phone normalization and FB Registration cannot overwrite that evidence.
The first five minutes after submission
Persist lead_id, campaign_id, adset_id, ad_id, form_id, submitted_at, phone_raw, country_answer and consent_text_version unchanged. Land an immutable raw record in the warehouse before normalization or deduplication.
| Gate | Pass condition | Failure route |
|---|---|---|
| Form provenance | lead_id and form are traceable | Source exception |
| Country evidence | Answer and phone structure are explainable | Manual confirmation |
| Facebook contact scope | Purpose matches the form language | No marketing admission |
| Suppression | No matching opt-out | Stop immediately |
Normalize without deleting the source phone
Remove presentation characters and use country_answer to apply country code and domestic-prefix logic, producing phone_normalized. Campaign location is not a substitute for the user’s country answer; travelers and cross-border customers may keep foreign phones. Version every rule.
Create TXT and an internal crosswalk
AIPUSH accepts TXT with one phone per line. Because lead_id and name stay out of the upload, map batch_row, normalized phone, lead_id and contact_id internally. Store the file hash, total rows, unique rows and blanks.
The actual Facebook task scope
AIPUSH Facebook Registration exports phone and registration result for platform-state organization. It does not return ad clicks, form quality, interest, permission or sales stage and cannot replace Meta attribution fields.
Write Excel into an observation table
| Field | Source | Write rule |
|---|---|---|
| phone | Task return | Reconcile through the crosswalk |
| registration_result | FB Registration | Preserve original state |
| batch_id / checked_at | Task log | Append each run |
| lead_id / campaign | Ad raw table | Never overwritten by checking |
A blank is not unregistered
Report explicit negative, not returned, unknown, format error and unreconciled separately. Only rows with a defined platform state enter the registration-rate denominator. Treating technical failure as negative misjudges the ad source.
Retain every repeated lead submission
When one phone submits through several ads or dates, the contact view may merge, but lead_id events remain. Deleting them removes the ability to understand first contact, repeated inquiry and the touchpoint preceding conversion.
Write-back must not trigger a blast
A positive result updates phone_observation only. A messaging queue still requires channel-specific permission, form purpose and suppression. Consent to a Facebook callback cannot be expanded automatically to WhatsApp or another platform.
Monitor two families of failure
Data failures include reconciliation, blanks, collisions and wrong country codes. Operational failures include identity complaints, opt-outs and form-context mismatch. Pause automatic write-back when either rises instead of increasing reruns.
Definition of a qualified daily batch
Raw lead IDs remain complete, TXT is reproducible, Excel reconciles, states are not flattened, ad attribution is unchanged and permission operates independently. Under those conditions, Facebook number checking is data enrichment rather than irreversible cleanup.
