Case study

A campaign booking platform for a Nordic media group

Campaigns were booked across channels in spreadsheets and email threads. We replaced them with one platform: live availability, instant quotes and a self-service portal for advertisers.

The short version

The challenge

Campaigns were booked across several channels and dozens of placements using shared spreadsheets, email and phone. Availability was out of date the moment it was checked, double bookings slipped through, and confirming a simple quote could take days.

What we built

A booking platform for the sales team and a self-service portal for advertisers: a live inventory calendar across channels and placements, rule-based pricing with instant quotes, approval flows, and an integration that sends confirmed bookings straight to invoicing.

The result

Bookings are confirmed in minutes instead of days, double bookings are blocked by the system, and the sales team spends its time selling instead of reconciling spreadsheets.

Advertiser portal on a phone, an instant quote and a booking confirmation

What we built

We started with the sales team’s busiest week of the year and designed the platform to make that week calm.

  • Live availability across channels, placements and dates
  • Holds and options that expire automatically
  • Rule-based pricing, discounts and instant PDF quotes
  • Approval flow for large or discounted bookings
  • Self-service portal where advertisers book and follow their campaigns
  • Integration with invoicing and reporting

Built with

  • Next.js
  • TypeScript
  • Node.js
  • PostgreSQL
  • AWS

How we worked

  • Weeks 1–2 — Discovery with sales, finance and two advertisers
  • Weeks 3–4 — Clickable prototype, tested with the sales team
  • Weeks 5–12 — Weekly releases and migration from the old spreadsheets
  • After launch — Advertiser portal and invoicing integration

By the numbers

Minutes

To confirm a booking — down from days

0

Double bookings since launch

12 weeks

From kick-off to the first release

Confidential client

Client names are kept confidential at our clients’ request. We are happy to tell you more about this project on a call.

Want results like these?

A free 30-minute discovery call. No commitment, no sales pitch — just an honest chat about what you need.