Integrasi Webhook: Hubungkan Terachat dengan Sistem Lain [Panduan 2025]
Dipublikasikan 20 Juli 2025
Panduan lengkap cara integrasi webhook Terachat dengan CRM, POS, e-commerce, dan sistem bisnis lainnya untuk automasi workflows.
Apa Itu Webhook?
Webhook adalah mekanisme untuk mengirim data secara real-time dari satu sistem ke sistem lain saat terjadi event tertentu.
Bedanya Webhook dan API?
- API - Anda request data (pull)
- Webhook - Sistem push data ke Anda saat ada event (push)
Use Cases Webhook dengan Terachat
1. Order Management
// Event: new_order
// Kirim ke: Your Order System
{
"event": "order.created",
"data": {
"order_id": "ORD-12345",
"customer": {
"name": "Budi Santoso",
"phone": "6281234567890"
},
"items": [...],
"total": 250000
}
}
2. CRM Integration
// Event: new_lead
// Kirim ke: Your CRM
{
"event": "conversation.completed",
"data": {
"lead_id": "LEAD-67890",
"source": "whatsapp",
"interest_level": "high",
"contact": {...}
}
}
3. Inventory Update
// Event: stock_low
// Kirim ke: Inventory System
{
"event": "product.stock_low",
"data": {
"product_id": "PROD-001",
"current_stock": 5,
"threshold": 10
}
}
Cara Setup Webhook di Terachat
Langkah 1: Buat Endpoint
Siapkan server/URL untuk menerima webhook:
// Contoh endpoint (Node.js)
app.post('/webhook/terachat', (req, res) => {
const event = req.body;
// Process event
switch(event.type) {
case 'order.created':
processOrder(event.data);
break;
case 'conversation.completed':
updateLead(event.data);
break;
}
// Respond dengan 200 OK
res.sendStatus(200);
});
Langkah 2: Register Webhook
- Buka dashboard Terachat
- Pergi ke menu Settings > Webhooks
- Klik Add Webhook
- Masukkan URL endpoint
- Pilih events yang ingin di-subscribe
- Save dan test
Langkah 3: Verify Endpoint
Terachat akan kirim verification request:
GET /webhook/terachat?hub.mode=subscribe&hub.verify_token=YOUR_TOKEN&hub.challenge=challenge_string
Respon dengan 200 dan challenge string.
Security Best Practices
1. Verify Signature
const crypto = require('crypto');
function verifySignature(payload, signature, secret) {
const expectedSig = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return 'sha256=' + expectedSig === signature;
}
2. Always Respond 200
Segera respond 200 OK, baru process async. Ini prevent timeout.
3. Handle Duplicates
Webhook bisa delivered lebih dari sekali. Gunakan idempotency key.
4. Log Everything
Log semua incoming webhooks untuk debugging.
Common Integrations
E-commerce
- WooCommerce
- Shopify
- Tokopedia
- Shopee
CRM
- HubSpot
- Salesforce
- Pipedrive
Accounting
- Jurnal
- Mekari
- Xero
Troubleshooting
Webhook tidak deliver?
- Cek URL apakah accessible
- Cek firewall/security
- Pastikan respond 200 dengan cepat
Endpoint timeout?
- Process async, respond 200 dulu
- Use queue untuk heavy processing
FAQ
Q: Apakah ada rate limit untuk webhook?
A: Varies by event. Basic events unlimited, high-frequency events mungkin limited.
Q: Apakah webhook retry jika gagal?
A: Ya, Terachat retry beberapa kali dengan exponential backoff.
Kesimpulan
Webhook adalah powerful tool untuk integrasi real-time. Dengan setup yang tepat, Anda bisa automasi banyak workflow bisnis.
