Volvo “Despega tu Negocio”: B2B contest platform · Case study
After-sales contest · Landing page + platform · Jul – Oct 2026
Volvo Group Peru rewards its customers with a trip to its truck plant in Brazil. I built the contest platform: entry lookup, registration, a participant list that updates itself every day and a draw anyone can verify.
The landing page follows Volvo’s design; behind it there’s an API, an operations panel and a daily automation that connects the contest to the client’s sales data.
The starting point: A campaign ready to launch, that needed real data.
The contest had an approved design and clear mechanics: every liter of lubricant or service plan adds entries to the draw. Purchases lived in Volvo’s sales system and were summarized in a Power BI report. That participant list had to reach the website every day, and the contest had to be run end to end.
What we agreed to build
- Public lookup Each customer sees their entries with their RUC (tax ID) or DNI (national ID).
- Up-to-date list Purchases reach the website with no manual work.
- Verifiable draw A result that a third party can reproduce.
The landing page: Volvo’s design, faithful on every screen.
I built the landing page from the client’s mockups, with precise mobile adjustments and animations that turn off if the visitor prefers reduced motion.




Behind the landing page: A platform that runs itself every day.
- What I saw: The participant list came out of a client Power BI report every day. What I did: A daily automation exports it, cleans it, loads it and sends an email if anything changes. (9:15 — every morning, since August 13)
- What I saw: An incomplete report could leave customers without their entries. What I did: A safeguard that holds back a load if more than 1% of participants disappear, until someone confirms it. (1% — safeguard threshold)
- What I saw: A prize like this had to be auditable. What I did: A weighted draw over a frozen participant list, reproducible by a third party, with a dry run and an official PDF record. (35 — automated backend tests)
Each load is a complete, isolated participant list: reloading the same file doesn’t duplicate entries, and rolling back to a previous load takes seconds.
Privacy: A public lookup that exposes no one.
In Peru the RUC is public, so the lookup had to protect the client’s customer base as much as it showed entries.
- Never confirms who’s participating The lookup responds the same whether or not the ID exists, and the name is shown masked.
- Rate limits and anti-bot Rate-limited lookups and bot verification on registration.
- Clear consent Two separate consents, in line with Peru’s Personal Data Protection Law.
- Panel with roles Auditor, operator and administrator, with a log of every action.
- Measurement without personal data Conversions in Google Analytics and Meta without sending any customer information.
- Evidence-based diagnosis When the Meta pixel wasn’t recording, I documented that the fix belonged in the account settings, not the site.

Technologies: What I built the platform with.
- Frontend: HTML, Sass, GSAP
- Backend: Go, Gin, PostgreSQL
- Automation: Python, Playwright, Power BI
- Infra & analytics: Cloudflare, Docker, Google Analytics, Meta
The result: A contest that updates itself, protects its participants and can be audited from start to finish.
- 1 — automatic update per day
- 1% — safeguard threshold for incomplete data
- 35 — automated backend tests
- 50 — commits in one month of development