Back to all workKembali ke semua karya

Marketing Service — From Hardcoded Promos to 10-Minute ProgramsMarketing Service — Dari Promo Hardcoded ke Program 10 Menit

Decoupling program logic and financing calculation from the acquisition appsMemisahkan logika program dan perhitungan pembiayaan dari aplikasi akuisisi

"A marketing program shouldn't need an engineer." — the principle behind the service.

mobile app interface
Garasi — Sinarmas dealer app (being revamped as Simetris)
flow diagram

Snapshot

RoleProduct Owner → Senior Product Owner — owned Marketing Service end-to-end
CompanyPT KB Finansia (KreditPlus) — pattern later reapplied at Sinarmas (Garasi)
Timeline2021 – 2023 (reapplied 2025)
TeamCross-functional — Product, Engineering, Product Marketing
DomainPlatform & internal tooling

TL;DR

Every marketing program — a new promo, a campaign, a change to the financing structure — was hardcoded inside the acquisition apps. Launching one meant a full development cycle: 2–4 weeks waiting on engineering. And because each app calculated financing on its own, the numbers drifted from the core system — about 100 calculation mismatches per quarter.

I built Marketing Service: a web-based configuration and calculation engine that the product marketing team runs themselves, with apps calling it via API. Program launch dropped from 2–4 weeks to 1–10 minutes, and calculation mismatches went from ~100/quarter to 0. I later reapplied the same pattern at Sinarmas to pull program logic out of the Garasi dealer app.

This case study is about a platform instinct: when logic that should be shared lives at the edges, you don't patch the edges — you extract the service.

1. Context

In multifinance, marketing programs are a primary acquisition lever — promos, subsidies, and financing-scheme tweaks change constantly to compete for dealers and customers. The speed at which marketing can launch and adjust those programs is, in effect, the speed of the business.

2. The Problem — "Every promo was a software release."

"I want to launch a promo this week — and I'm told it needs a development cycle." — a Product Marketing lead

The real problem wasn't "ship programs faster." It was: "take marketing off the engineering critical path, and make financing calculation a single source of truth."

3. Discovery — Two problems, one root cause

4. The Strategic Bet — Extract a service, don't patch the apps

The tempting fix was to keep improving each app's program module. I bet against it. The leverage was to pull program configuration and financing calculation into one service — a single source of truth — and turn the apps into thin clients that call it via API.

5. Prioritization & Trade-offs — Deciding what to build first

Decision 1 — Centralize the calculation engine first. Making one service the single source of truth for financing math killed the mismatch problem at the root and gave every app one number to trust. Trade-off: more foundational work upfront, before any visible "feature."

Decision 2 — Self-serve configuration for marketing. A no-code surface let product marketing set up programs and campaigns themselves — the change that actually removed the 2–4 week wait.

Decision 3 — Integrate apps as thin clients, highest-volume first. Rather than migrate every app at once, I sequenced integration starting where it mattered most, so value landed early without a big-bang cutover.

6. Execution — Treating marketing as the customer

The real users were the product marketing team, so I built with them — validating that the self-serve flow matched how they actually think about programs — while engineering hardened the calculation service and the API contracts the apps depended on.

7. Impact

8. Reflections — What I'd carry forward

Prepared by Hamdan Fauzi — Product Manager. Some figures generalized for company confidentiality. Happy to walk through the full version in conversation.

"Program marketing seharusnya tak perlu seorang engineer." — prinsip di balik service ini.

mobile app interface
Garasi — Sinarmas dealer app (being revamped as Simetris)
flow diagram

Snapshot

PeranProduct Owner → Senior Product Owner — memegang Marketing Service end-to-end
PerusahaanPT KB Finansia (KreditPlus) — pola kemudian diterapkan ulang di Sinarmas (Garasi)
Timeline2021 – 2023 (diterapkan ulang 2025)
TimLintas fungsi — Product, Engineering, Product Marketing
DomainPlatform & internal tooling

TL;DR

Setiap program marketing — promo baru, campaign, perubahan struktur pembiayaan — tertanam langsung di dalam aplikasi akuisisi. Meluncurkan satu program berarti satu siklus development penuh: 2–4 minggu menunggu engineering. Dan karena tiap aplikasi menghitung pembiayaan sendiri-sendiri, angkanya menyimpang dari core system — sekitar 100 selisih perhitungan per kuartal.

Saya membangun Marketing Service: mesin konfigurasi sekaligus perhitungan berbasis web yang dijalankan sendiri oleh tim product marketing, dengan aplikasi memanggilnya via API. Waktu peluncuran program turun dari 2–4 minggu ke 1–10 menit, dan selisih perhitungan dari ~100/kuartal ke 0. Pola yang sama kemudian saya terapkan ulang di Sinarmas untuk menarik logika program keluar dari aplikasi dealer Garasi.

Studi kasus ini tentang insting platform: ketika logika yang seharusnya dibagi bersama justru hidup di pinggiran, kamu tak menambal pinggirannya — kamu mengekstraknya jadi service.

1. Konteks

Di multifinance, program marketing adalah tuas akuisisi utama — promo, subsidi, dan penyesuaian skema pembiayaan terus berubah demi bersaing memperebutkan dealer dan konsumen. Kecepatan tim marketing meluncurkan dan menyesuaikan program itu, pada praktiknya, adalah kecepatan bisnisnya.

2. Masalah — "Setiap promo adalah sebuah rilis software."

"Saya mau luncurkan promo minggu ini — tapi katanya butuh siklus development." — seorang Product Marketing lead

Masalah sebenarnya bukan "luncurkan program lebih cepat." Melainkan: "keluarkan marketing dari critical path engineering, dan jadikan perhitungan pembiayaan satu sumber kebenaran."

3. Discovery — Dua masalah, satu akar

4. Taruhan Strategis — Ekstrak jadi service, jangan tambal aplikasinya

Perbaikan yang menggoda: terus memoles modul program di tiap aplikasi. Saya menolaknya. Leverage-nya adalah menarik konfigurasi program dan perhitungan pembiayaan ke dalam satu service — satu sumber kebenaran — dan mengubah aplikasi menjadi thin client yang memanggilnya via API.

5. Prioritas & Trade-off — Menentukan apa yang dibangun lebih dulu

Keputusan 1 — Sentralisasi mesin perhitungan lebih dulu. Menjadikan satu service sebagai sumber kebenaran tunggal untuk matematika pembiayaan mematikan masalah selisih dari akarnya dan memberi tiap aplikasi satu angka yang bisa dipercaya. Trade-off: kerja fondasi lebih banyak di depan, sebelum ada "fitur" yang terlihat.

Keputusan 2 — Konfigurasi mandiri untuk marketing. Sebuah permukaan no-code memungkinkan product marketing menyiapkan program dan campaign sendiri — perubahan yang benar-benar menghapus waktu tunggu 2–4 minggu.

Keputusan 3 — Integrasikan aplikasi sebagai thin client, yang volume tertinggi dulu. Alih-alih memigrasikan semua aplikasi sekaligus, saya mengurutkan integrasi mulai dari yang paling penting, sehingga nilai mendarat lebih awal tanpa cutover big-bang.

6. Eksekusi — Memperlakukan marketing sebagai pelanggan

Pengguna sebenarnya adalah tim product marketing, jadi saya membangun bersama mereka — memastikan alur mandirinya cocok dengan cara mereka benar-benar memikirkan program — sementara engineering memperkuat service perhitungan dan kontrak API yang diandalkan aplikasi.

7. Dampak

8. Refleksi — Yang akan saya bawa terus

Disusun oleh Hamdan Fauzi — Product Manager. Sebagian angka digeneralisasi demi kerahasiaan perusahaan. Dengan senang hati menjelaskan versi lengkapnya secara langsung.