July 4, 2026

POSI

Pusat Olimpiade Sains Indonesia — platform kompetisi sains nasional untuk SD, SMP, dan SMA.

POSI runs science olympiad registration on Remix and Midtrans. Three WhatsApp flows — payment reminder, event reminder, competition card — drove an 11% revenue lift in ten days.

“Three flows, ten days, 11% more revenue. Parents were already on WhatsApp — we just stopped chasing them manually.”
— Fahruroji, Founder & Director, POSI

Stack

  • Remix
  • @zerohuman/zod
  • Midtrans
  • WhatsApp

Use cases

  • Payment reminder
  • Event reminder
  • Competition card

11% in 10 days

Revenue increase

3

First flows live

Challenge

POSI hosts dozens of science olympiad competitions across Indonesia — online and offline, free and paid. Registration windows are short, and parents frequently abandon Midtrans checkout before payment completes.

The ops team already supported families on WhatsApp through POSI Informasi. The bottleneck was operational: exporting lists, matching incomplete payments, and broadcasting reminders by hand before every deadline.

Approach

POSI’s engineers instrumented the Remix app with @zerohuman/zod before launching any campaigns. Server-side events cover the full registration funnel:

  • CompleteRegistration when a student account is created
  • InitiateCheckout when a competition fee or POSI Store order opens Midtrans
  • Purchase with amount in IDR on successful payment
  • competitionId, province, and level (SD / SMP / SMA) on every event for segmentation

Marketing pages send PageView and call identify() after login so anonymous sessions merge onto the parent record.

Solution

Rather than a large campaign rollout, POSI shipped three flows in sequence:

FlowTriggerChannel
Payment reminderInitiateCheckout without Purchase in windowWhatsApp
Event reminderUpcoming competitionId / exam dateWhatsApp
Competition cardSuccessful PurchaseWhatsApp

Payment reminder recovered the most abandoned checkouts — competition name, fee, and a deep link back to Midtrans. Event reminder replaced spreadsheet broadcasts before registration closed. Competition card delivered the student’s card (name, event, schedule) immediately after payment, cutting “where is my card?” volume on POSI Informasi.

Templates read variables from the trigger event. For new competition seasons, the team drafts flow branches in Cursor via MCP instead of rebuilding copy from scratch.

Results

Within ten days of going live:

  • 11% revenue increase, attributed primarily to recovered Midtrans checkouts
  • Fewer repeat admin questions on competition cards and exam dates
  • Parent replies land in the same inbox thread as the original reminder

What’s next

Students often register for multiple competitions in the same month. POSI is moving reminders to entity scope per competitionId so parallel registrations do not overwrite each other.

Told by

Fahruroji

Founder & Director, POSI