Article summary
Use a failed migration to expose Viber/WhatsApp differences in fields, permission and operating cadence, then rebuild instead of copying.
A team copied an Eastern European WhatsApp list into a Viber campaign. Every phone passed formatting, yet the run produced unknowns, bad matches and complaints. The postmortem showed that Viber was not the failure. The team had treated platform as a channel column that could simply be renamed.
The incident: a plausible spreadsheet copy
The source contained phone, wa_registered, wa_active_days and campaign_status. Operations duplicated the sheet, replaced “wa” with “viber,” and retained WhatsApp permission and activity segments. The table looked orderly, but the evidence had not moved with it.
Break one: the schemas are not symmetric
| Need | WhatsApp example fields | Viber example fields |
|---|---|---|
| Registration | Phone, registration observation | Phone, registration observation |
| Activity | Activity time, active days, mapped phone | Active days, mid, offline time |
| Gender and age | Age, gender, avatar, mapped phone | Nickname, age, gender, avatar and related profile observations |
Similar column names do not guarantee identical meaning, missingness or observation timing.
Break two: permission belongs to a context
A person who accepted WhatsApp order updates has not necessarily agreed to Viber marketing. Migration requires a fresh review of sender, channel, purpose and opt-out. Copying consent=yes loses that scope.
Break three: Eastern Europe is not one market
Countries, languages, platform norms, time zones and regulatory settings differ. A calling code does not prove residence or preferred language. Segment with explicit country evidence and user choice rather than one “Eastern European user” label.
Why the old activity segment stopped working
A WhatsApp activity observation describes WhatsApp at a task time. It does not transfer to Viber. Viber Activity has its own active-days, mid and offline-time fields. Each platform needs separate checked_at and task_version.
Recovery action one: freeze automated sending
Stop generating Viber queues from the copied segment. Preserve the incident batch, content version and complaint reason. Do not immediately rerun every phone; that only scales the same classification error.
Recovery action two: create a Viber-specific minimum table
Keep phone_ref, country_evidence, viber_permission, viber_registered_observed, checked_at and source_batch. TXT contains phones only. Excel rejoins through batch_row, and no WhatsApp column is allowed to overwrite the Viber evidence.
Recovery action three: rebuild cadence with a small sample
Stratify by country and source. Begin with registration observation and choose Activity only for a documented purpose. Test language, time, frequency and exit path. Stop expansion when complaints or unexplained unknowns rise.
Three rules adopted after the incident
- Platform permission is not copied.
- Platform observations are not reused by renaming columns.
- A calling code does not substitute for market and language evidence.
What successful migration means
Success is not a Viber hit rate close to WhatsApp. It means every Viber field has independent provenance, time, purpose and stop condition. Viber’s Privacy Policy provides official platform context, while the company remains accountable for the list migration.
