Cara Menggunakan Cloudflare Workers sebagai Middleware WhatsApp API
Tutorial Cloudflare Workers sebagai middleware WhatsApp API. Serverless, gratis untuk volume rendah, dan deploy dalam hitungan menit.
Cloudflare Workers adalah platform serverless yang berjalan di edge — artinya code kamu dieksekusi di data center Cloudflare yang terdekat dengan pengguna, memberikan latency yang sangat rendah. Untuk WhatsApp API integration, Workers menjadi middleware yang ideal — gratis untuk volume rendah, tidak perlu manage server, dan deploy dalam hitungan menit.
Artikel ini membahas cara memanfaatkan Cloudflare Workers sebagai middleware antara WhatsApp Cloud API dan sistem bisnis kamu.
Kenapa Cloudflare Workers?
Dibandingkan VPS tradisional atau cloud functions lain, Workers memiliki beberapa keunggulan spesifik. Free tier generous yaitu 100.000 requests per hari gratis — lebih dari cukup untuk kebanyakan bisnis kecil-menengah. Zero cold start karena Workers selalu warm sehingga tidak ada delay startup seperti di AWS Lambda. Global edge network di mana code berjalan di 300+ data center Cloudflare di seluruh dunia. Tidak perlu manage server sehingga tidak ada OS updates, patching, atau scaling yang perlu diurus. Dan KV Storage tersedia sebagai key-value database bawaan untuk menyimpan state.
Use Case sebagai WhatsApp Middleware
Webhook Receiver
Workers menerima webhook dari WhatsApp Cloud API, memproses data, dan meneruskan ke sistem lain — CRM, database, atau notification service.
Message Router
Workers menganalisis pesan masuk dan meroute ke tujuan yang berbeda berdasarkan content — keyword tertentu ke chatbot, complaint ke helpdesk, order ke e-commerce system.
Template Sender
Workers menerima trigger dari sistem bisnis dan mengirim template WhatsApp — misalnya trigger dari payment gateway saat pembayaran berhasil.
Rate Limiter
Workers bisa bertindak sebagai rate limiter di depan WhatsApp API untuk memastikan tidak melebihi limit pengiriman.
Setup Dasar
Langkah 1: Setup Wrangler CLI
Install Wrangler, CLI tool untuk Cloudflare Workers. Login ke akun Cloudflare. Buat project baru menggunakan wrangler init.
Langkah 2: Implementasi Webhook Handler
Buat worker yang handle dua jenis request. GET request untuk verification yang membaca query parameters, memvalidasi verify_token, dan mengembalikan challenge. POST request untuk menerima events yang parse JSON body, mengekstrak data pesan, dan memproses sesuai logic.
Worker menggunakan Fetch API standar — addEventListener untuk fetch event, kemudian routing berdasarkan request method.
Langkah 3: Deploy
Deploy menggunakan wrangler publish. Workers otomatis tersedia di URL yang diberikan Cloudflare. Daftarkan URL ini di Meta Developer Console sebagai webhook endpoint.
Menggunakan KV Storage untuk State
Cloudflare KV adalah key-value store yang bisa diakses dari Workers. Berguna untuk menyimpan conversation state per user, caching data yang sering diakses, rate limiting counters, dan configuration yang bisa diubah tanpa redeploy.
Buat KV namespace melalui dashboard Cloudflare atau CLI. Bind ke worker melalui wrangler.toml. Akses di code menggunakan get dan put methods — sepenuhnya async.
Contoh: Auto-Reply Middleware
Buat worker yang menerima pesan WhatsApp, menentukan respon berdasarkan keyword, dan mengirim balasan. Jika pesan mengandung "harga" maka kirim pesan harga. Jika mengandung "order" maka forward ke order system dan kirim konfirmasi. Jika lainnya maka kirim menu default. Simpan last interaction timestamp di KV untuk tracking.
Contoh: Notification Forwarder
Buat worker yang menerima webhook dari payment gateway, memformat data, dan mengirim notifikasi WhatsApp. Worker menerima POST dari payment gateway, mengekstrak data transaksi, menentukan template yang sesuai berdasarkan status pembayaran, dan mengirim template via WhatsApp Cloud API.
Tips dan Batasan
Workers memiliki execution time limit 10ms untuk free plan CPU time, tapi 50ms untuk paid plan. Untuk kebanyakan webhook processing, ini lebih dari cukup. Tapi jika perlu melakukan banyak API calls dalam satu request, pertimbangkan menggunakan Durable Objects atau memecah processing ke multiple steps.
KV Storage memiliki eventual consistency — data yang baru ditulis mungkin belum tersedia di region lain selama beberapa detik. Untuk use case yang membutuhkan strong consistency, pertimbangkan Durable Objects.
Subrequest limit di free plan adalah 50 subrequests per invocation. Setiap API call dihitung sebagai satu subrequest.
Cloudflare Workers vs Alternatif
Dibanding AWS Lambda, Workers lebih murah untuk volume rendah, zero cold start, tapi limited di execution time dan memory. Dibanding Google Cloud Functions, Workers lebih cepat deploy dan lebih murah, tapi GCF lebih flexible untuk heavy processing. Dibanding VPS, Workers tidak perlu management sama sekali tapi kurang flexible untuk aplikasi yang kompleks.
Untuk middleware WhatsApp yang straightforward — menerima webhook, proses ringan, forward data — Workers adalah pilihan yang optimal.
Kesimpulan
Cloudflare Workers sebagai middleware WhatsApp menawarkan sweet spot antara kemudahan, performa, dan biaya. Gratis untuk volume rendah, deploy dalam menit, dan tidak perlu maintenance server.
Untuk bisnis kecil-menengah yang butuh integrasi WhatsApp tanpa complexity infrastruktur, Workers adalah pilihan yang sangat recommended.
Tidak mau repot dengan infrastructure? Balaswa menyediakan semua ini sebagai managed service — auto-reply WhatsApp tanpa coding atau server management.