Skip to main content

Blog

What we learnt running WhatsApp at AFCON 2025

Behind-the-scenes notes on the architecture, surge planning and language coverage from the Vaultbook WhatsApp activation work for the TotalEnergies Africa Cup of Nations 2025 in Morocco.

By Sarah-Leigh Brown 8 min read
  • AFCON
  • case study
  • WhatsApp
  • sport activation
African football fans cheering in a stadium with national flags
Photo by Justin Lagat on Unsplash .

AFCON is the largest sporting property on the African calendar. The 2025 edition was hosted in Morocco and sponsored by TotalEnergies. We did the WhatsApp activation work for it, and this post is the technical and strategic side of that engagement. The high-level case study lives on a dedicated page. This is the version for other brands and agencies thinking about sport activations.

The brief in one paragraph

The activation goal was simple to state and harder to deliver. Get fans interacting with the tournament between matches. Build a database the brand and sponsors could continue conversations with after the trophy was lifted. Do it on a channel that worked equally well for a fan in Casablanca, Lagos, Johannesburg or on a stadium concourse in Rabat. Handle the volume spikes around knockout-stage matches without dropping anyone.

That was the entire brief. The rest was implementation.

Why WhatsApp was the obvious channel choice

WhatsApp was the right answer for three concrete reasons.

The first is continental reach. WhatsApp is the dominant messenger across the African market, with penetration higher than email and higher than any single social platform. For a continental property, the activation had to work in eight host cities and across forty-eight participating nations’ diaspora audiences.

The second is the cost-to-consumer profile. Sport activations live and die on the entry-cost objection, and SMS-led fan campaigns historically sink because of the per-message charge. WhatsApp removes that objection by being free at the point of entry. The fan absorbs only their existing data cost.

The third is conversation rhythm fit. A tournament has a natural cadence (fixture reminders, predict-the-result mechanics, half-time polls, post-match opinion captures) and that cadence maps perfectly to a threaded conversation model. The fan checks WhatsApp anyway. Every match-day mechanic landed in a thread they were already reading.

How the architecture worked

The working architecture had five layers. None of them are individually novel. The skill was making them work together at tournament-shaped volume.

Layer one was entry surfaces. QR codes in stadiums, on-pack codes from sponsor product, social media click-to-WhatsApp links, broadcast graphics during match coverage. Each surface routed to one of a small set of campaign WhatsApp numbers.

Layer two was the conversation flow engine. A state machine that handled multi-language detection, the predict-the-result mechanic, prize-tier validation and POPIA-aligned consent capture. Each fan’s conversation was a separate instance of that state machine.

Layer three was the data layer. Every entry went into a structured store with all the fields needed for later analysis and for the post-campaign audit trail.

Layer four was prize draws and notifications. Automated draws on scheduled cadences, manual review for hero-tier prizes, winner notification back through the same WhatsApp thread the entry came from.

Layer five was reporting. Real-time dashboards for the brand and sponsor teams, showing the metrics that actually mattered. Entry volume, completion rate, drop-off points, geographic and language breakdowns.

If you want to talk through whether a tournament or event activation could work for your brand, send us a brief and we will come back with mechanic options.

Multi-language coverage, the part that gets skipped

The default mistake on continental campaigns is launching in English because the briefing was done in English. AFCON does not work that way.

The audience needed Arabic and French at minimum, alongside English. Among the host country audience, French and Arabic. Among the West African nations, French and Portuguese. Among the East and Southern African audiences, English plus various local language preferences depending on country. Among the diaspora audiences in Europe and the Gulf, various again.

What we built around that:

First-message language detection based on the phone’s country code, with a quick “which language do you prefer” prompt as a manual override. Branch logic inside every state of the flow that served the appropriate language. Native-speaker review for every approved template, not machine translation. Machine translation gets literal meaning right and tone wrong, and tone is half the engagement on a sport activation.

We also built explicit fallback handling for languages we did not have native coverage in. The fan got a clear “we do not support this language yet” message rather than silent failure. That decision alone reduced support escalations meaningfully through the early group stages.

The activation worked across multiple languages from day one. Audiences that would have been excluded by an English-only flow were not.

The match-day mechanics that worked best

Four mechanics consistently outperformed the rest. All of them were small, fast and tightly synced to the match rhythm.

Predict the result. Submitted up to kick-off. Auto-validated after the final whistle. Each entry went into the daily and tournament-stage draws.

Half-time poll. A single instant-result question during the fifteen-minute break. Engagement was disproportionately high because the fan is bored and on their phone, the question is short and the answer comes back immediately.

Post-match opinion capture. Player of the match and decisive moment polls in the ten minutes after the final whistle. These fed both the daily draws and the brand’s content team for next-day social posts.

Tournament-wide tiered prizes. Daily, weekly and tournament-grand-prize tiers, each running off the same shared entry pool. Standard sport-activation structure on paper. Operationally non-trivial in practice because each tier has different odds, different validation requirements and different winner-notification flows.

How we handled the volume spikes

The single biggest operational challenge in a tournament activation is the volume curve. Group-stage matches generate predictable steady volume. Knockout-stage matches generate spikes of 50x or more during specific five-minute windows: the minutes before kick-off when predict-the-result entries close, the half-time window, and the post-match opinion captures.

Four practices kept the infrastructure stable through those spikes.

The first was provisioning for the final, not for the group stage. Capacity sizing was based on the expected peak, not the average. That sounds obvious. It is not what most platforms do, because the cost of spare capacity feels excessive until the moment you need it.

The second was queue-and-drain logic for any operation that could be delayed without losing the user experience. Entry confirmations had to land in real-time. Downstream data sync did not. Winner notifications could be delayed by a minute. We treated each operation differently based on what the fan would notice.

The third was real-time monitoring on lead indicators, not lag indicators. By the time entries are down 20%, the window is already closed. We watched template send queue depth, conversation state machine backlog and response latency on the consumer-facing thread, and alerted on those.

The fourth was pre-warmed infrastructure ahead of every match window. A few minutes of expensive surplus capacity that got shut down once volumes returned to baseline. The cost of over-provisioning for a knockout match is small. The cost of under-provisioning is invisible until the moment it is not.

The compliance work nobody sees

A continental activation runs into the legal requirements of every territory it reaches. Five frameworks shaped this one.

POPIA for South African entrants, with full consent capture and recorded proof. GDPR where European diaspora audiences engaged, sufficient for EU residency consumers. Local data protection laws for the African nations with active frameworks, including Nigeria’s NDPA, Kenya’s DPA and Morocco’s own framework. CAF tournament regulations on what an activation partner can and cannot say. TotalEnergies brand guidelines on activation rules alongside the CAF rules.

For an activation of this scale, the legal architecture takes as much engineering attention as the technical architecture. Worth knowing if you are budgeting one.

Considering a sport or event activation?

The surge profile, language coverage and compliance map all apply equally to music festivals, retail seasons and any other high-volume time-bound mechanic. Get in touch.

What we are doing the same on the next one

Three practices we will keep.

Surge-plan for the peak, not the average. The cost of over-provisioning is small. The cost of under-provisioning is invisible until the moment it is not.

Native-speaker language review on every template. Worth every cent. Machine translation is not adequate for a sport activation regardless of how good the model is.

Real-time monitoring on lead indicators. By the time entries are down 20%, the window is closed.

What we are doing differently

Three things we got wrong enough to change.

Earlier engagement with the brand’s existing social and content team. The half-time poll data was gold for next-day content and we got it to the content team faster as the tournament progressed. We should have built that hand-off into the day-one architecture, not figured it out by week two.

More aggressive A/B testing of the entry-screen copy in the first three days. We had the mechanism to test. We used it too cautiously. The first three days of a tournament campaign are the cheapest time to test, because the volume is lower and the cost of a 10% completion drop on one variant is small.

A clearer pre-event briefing pack for the in-stadium activation teams. They were the front-line of QR code distribution and benefited disproportionately from the brand briefings we did mid-tournament. The next pack will be built in advance.

What this means for your next sport brief

Tournament activations are not bigger versions of normal campaigns. The surge profile, the language coverage, the compliance map and the operational coordination are categorically different problems. The skill we brought to AFCON 2025 was not invented in the brief. It was built across two years of smaller campaigns where each of these problems showed up individually.

If you are planning a sport, music, festival or seasonal activation, the questions worth asking are the surge questions. What is the peak-to-average volume ratio. What languages does the audience actually speak. What compliance frameworks apply across the audience footprint. How is your existing content team set up to use the data the activation generates. Get those four answers right before agreeing the mechanic.

Brief us on a tournament, music or festival activation

If your event has high-volume time-bound mechanics, the patterns from AFCON apply. Send us the property and the audience profile, we will come back with a recommendation.