M-Social

How M-Social made a delicious landing page for the Hermès bag raffle

In short: it was a quest with desserts, promo codes, points and... a Hermès Birkin bag. Yes, the one that all the fashionistas in the world are after.

Conditions

 

So, we were faced with the task:

  • 10,000 unique invite codes.
  • 4 prize types with different distribution algorithms: 5% promo code, 10% promo code, 200 "Кофемания" (Kofemania) points, main prize — an invitation to the Hermès Birkin bag draw.
  • Tight timeframes for the campaign.
  • A convenient report format for the client's analytics with information on the campaign results.

The participant had to:

  1. Buy a limited-edition OSKELLY dessert at any restaurant of the "Кофемания" (Kofemania) chain.
  2. Receive an envelope with a code.
  3. Register on the website.
  4. Confirm their phone number.
  5. Receive a prize.

— "Okay, sounds simple," you thought.

And here's the cherry on top: the prize distribution mechanism — a game of speed. The main prize, the invitation to the draw for that very Hermès, was awarded not just to a random participant, but to the first one to register a code. We can't disclose all the details, but there was a provision for variably distributing unclaimed prize funds.

 

Solution Architecture

 

We used the following technology stack:

  • PHP;
  • Laravel;
  • Backpack;
  • PostgreSQL;
  • React + Next.js.

 

How We Made Sure Nothing Broke

 

The participant must enter:

  • First and last name (Cyrillic only, no extra symbols).
  • Email (Latin letters, numbers, no emojis).
  • Phone number (mask "+7 (_) _--", digits only).
  • Code from the envelope (unique, otherwise — chaos).

And also three checkboxes:

  • Consent to data processing.
  • Consent to advertising.
  • Agreement with the rules.

After submitting the form, a code was sent to the participant. But if the SMS didn't arrive:

  • They could wait 60 seconds and request it again.
  • Or send the code via WhatsApp (because SMS sometimes gets lost, like socks in the laundry).

But! Only 3 attempts. After that — "Sorry, you've exhausted your limit. Maybe next time."

 

Admin Panel — Where We Control Everything

 

We created a panel where you can:

  • View the list of participants (who won what, when).
  • Filter by prizes (e.g., find all the lucky ones with Hermès).
  • Export data to PDF, CSV (or print and hang on the wall as a trophy).

 

Conclusion

 

In the end, we created a website that:

  • Works like clockwork (even when thousands of people enter codes at the same time).
  • Sends SMS and WhatsApp (if SMS decides not to arrive).
  • Distributes prizes without errors (otherwise someone might miss out on Hermès, and that's a tragedy).

 

P.S. When Things Didn't Go According to Plan (In a Good Way)

 

The campaign was so popular that the client increased the number of prizes — for us, this is the best indicator of success. 

In total, the following were distributed:

  • 11,850 5% promo codes;
  • 9,022 10% promo codes;
  • 13,052 prizes of 200 "Кофемания" (Kofemania) points;
  • 76 invitations to the main prize draw.