Dolarindo Remittance Chat — a
WhatsApp bot for a money changer
Most money-changer inquiries in Indonesia happen on WhatsApp — today’s rates, whether a transaction can proceed. Dolarindo Remittance Chat answers them automatically: a WhatsApp Cloud API chatbot that handles language choice, live exchange rates, and transaction hand-off, backed by a Laravel operations panel where staff manage orders, branches, and every logged conversation. Around 300 transactions a month flow through it.

A money changer runs on WhatsApp. So does this.
For a money changer (valas), most customer contact happens in one place: WhatsApp. People ask today’s rates, whether a currency is available, how to send a transfer. Answering each one by hand doesn’t scale — and every missed message is a missed transaction.
Dolarindo Remittance Chat turns that inbox into a product. A WhatsApp chatbot greets the customer, switches language, shows live exchange rates, and starts a transaction — and a Laravel operations panel gives staff the other half: orders, customers, branches, currencies, broadcasts, and a full log of every conversation.
I built it solo on Laravel, the WhatsApp Cloud API, and MySQL. In production it handles roughly 300 transactions a month across Dolarindo’s branches.
at a glance
The whole front desk, in WhatsApp.
A guided conversation on the official WhatsApp Cloud API. Tap any to enlarge.

Bahasa / English, then a menu

for ~15 currencies

Akhiri Percakapan controls
Where staff run the operation.
A Laravel back office for everything the bot feeds. Tap any to enlarge.

Orders. Every order — from WhatsApp or the web — lands here with branch, customer, service (Bank Note, Transfer Dana), and a message status (Direspon, Dibaca). Staff filter by branch, period, and status, update each one, and export to CSV. (Customer phone numbers blurred for privacy.)

Chatbot log. Every WhatsApp conversation is captured — customer, number, and status (Draft, Cancel) — with a detail view per session. Thousands of entries deep, it’s the audit trail behind the bot.
A bot and a back office, one Laravel app.
The interesting part is state: keeping a WhatsApp conversation, live rates, and an order ledger in sync.
WhatsApp Cloud API
The bot runs on the official WhatsApp Cloud API on a verified business number, driving language, menu, and session control through interactive reply buttons.
Live rate engine
Info Kurs pulls the current buy / sell rates for ~15 currencies and formats them into a clean, timestamped WhatsApp message — with an “indicative, not binding” disclaimer.
Laravel backend
One Laravel app drives both the bot’s conversation state and the operations panel, over MySQL — no separate services to keep in sync.
Every chat logged
Each conversation and order is persisted — the Chatbot Log and Orders tables give staff a full audit trail (thousands of entries) with statuses like Draft, Cancel, Direspon, Dibaca.
Operations panel
Staff manage customers, branches (cabang), currencies (valas), walk-in hours, and broadcasts — and update the status of every incoming order — from one web panel.
Running in production
The system handles roughly 300 transactions a month across Dolarindo’s branches, with orders arriving from both WhatsApp and the web.