Article summary
Use an operations-ticket model to choose, reconcile, expire and restrict Zalo Registration, Activity and Gender/Age tasks for Vietnam customer data.
Vietnam Zalo number-checking operations should not begin with “run the entire database.” They should begin with a defined business ticket. The ticket states the question, input scope, owner, validity and stop conditions before choosing Registration, Activity or Gender and Age. Do not collect fields without decision use.
What a qualified ticket contains
| Field | Example | Purpose |
|---|---|---|
| business_question | Did this run return Zalo registration? | Selects task |
| cohort | Inbound inquiries from 90 days | Limits scope |
| owner | Vietnam support lead | Resolves exceptions |
| expires_at | Observation expiry | Stops use |
| stop_rule | Opt-out/complaint threshold | Blocks downstream |
Three tasks answer different questions
| Task | Export | Typical use |
|---|---|---|
| Zalo Registration | Phone, registration result | Platform-state inventory |
| Zalo Activity | Phone, user ID, activity time, nickname, active days | Dated account observation |
| Zalo Gender and Age | Prior fields plus gender, age, avatar, people count, type, skin tone | Approved coverage study |
Pass +84 data through a current rule
Store phone_raw, country_evidence and normalization_version and handle domestic prefix and legacy migration under current Vietnam rules. Insufficient country or migration evidence becomes format_exception rather than a guess made to close the ticket.
TXT contains only ticket-approved phones
AIPUSH accepts one phone per line as TXT. Name, order, support conversation, permission and profile stay out. The internal crosswalk stores ticket_id, batch_row, phone_normalized and contact_id plus file hash.
Validate the Excel schema first
Confirm that columns match the selected task. If a Registration workbook contains profile columns or Activity lacks core fields, pause import. Compare unique inputs, returns, unknowns, errors and unmatched rows—not only a “success rate.”
User ID and nickname belong to observations
Zalo user ID, nickname and avatar carry checked_at and do not replace CRM name or master key. One-to-many, many-to-one and historical differences enter identity_conflict for the ticket owner.
Activity fields have a business clock
Set refresh_after by use case. At expiry, mark activity time and days stale and stop prioritization rather than rechecking everything. Update only a small set while the ticket and purpose remain valid.
Gate access to profile tasks
Gender, age, skin tone, avatar type and people count may be missing or unrelated to the holder. Restrict role, purpose and delete_after. Never use them for identity, credit, employment, price or sensitive marketing.
Do not guess language from +84 or nickname
preferred_language comes from user choice or a service conversation. Vietnamese customers may use Chinese or English and diaspora may retain +84. Phone, market, location and language remain separate.
Permission runs beside task output
Closing a ticket does not authorize a message. The queue still queries channel_scope, purpose and opt_out. A recently active customer who opted out is never reactivated by the task.
Evidence required to close the ticket
The owner signs off TXT hash, schema, reconciliation rate, exception disposition, field coverage, expiry and deletion dates, and records the decision. Operations end when every result has a destination and every risk has a stop condition—not when Excel downloads.
