# Hantar pesanan berbayar ke CRM anda

> Automasi yang menghantar setiap pesanan berbayar ke CRM atau sistem anda sendiri dengan HTTP request, iaitu pelanggan, jumlah dan item sebagai JSON.
>
> Source: https://docs.bcl.my/ms/automation-crm-webhook/

Menaip setiap pesanan ke dalam CRM secara manual mengambil masa dan mudah tersilap. Automasi ini menghantar setiap pesanan ke API CRM anda sebaik sahaja ia dibayar, sebagai JSON dengan ruangan yang anda pilih. Apa-apa sistem yang menerima HTTP request boleh digunakan: CRM, ERP, tool spreadsheet, atau server anda sendiri.

## Apa yang anda perlukan

Daripada dokumentasi API CRM anda, anda perlukan tiga perkara:

- URL yang mencipta rekod, contohnya `https://api.yourcrm.com/v1/orders`.
- Cara ia mahu menerima API key, biasanya header seperti `Authorization` atau `X-Api-Key`.
- Nama ruangan yang diperlukannya.

## Bina automasi

Mula dari automasi kosong (lihat [Cipta automasi](/ms/create-automation/)):

1. Pergi ke **Automations**, klik **New Automation**, namakannya "Send Orders to CRM" dan klik **Create**.
2. Klik **Add Node** dan pilih **Payment Successful**. Double-click trigger itu, tetapkan **Payment Source Type** kepada **Payment Form** dan klik **Save Trigger**.

   *(Screenshot: Payment Successful Trigger Settings dengan Payment Source Type ditetapkan kepada Payment Form)*

3. Klik **Add Node** dan pilih **HTTP Request**. Double-click node itu dan tetapkan:

   | Ruangan | Masukkan |
   | --- | --- |
   | **Action Name** | Send to CRM |
   | **Method** | POST |
   | **Request URL** | URL CRM anda |
   | Tab **Headers**, **Raw JSON** | `{"X-Api-Key": "your-crm-api-key"}` |
   | Tab **Body**, **Raw JSON** | JSON di bawah |

   ```json
   {
     "order_number": "{order_number}",
     "name": "{name}",
     "email": "{email}",
     "phone": "{phone}",
     "amount": {amount_value},
     "form": "{form_title}",
     "paid_at": "{payment_date}",
     "items": {items_json}
   }
   ```

4. Klik **Send Test Request**. Notis hijau **Test Request Successful** bermakna CRM anda menerima sampel itu. Kemudian klik **Save HTTP Request**.

   *(Screenshot: HTTP Request Action Settings dengan POST, Request URL dan body JSON)*

5. Klik **Update Automation**.

Workflow yang sudah siap:

*(Screenshot: Canvas workflow dengan Payment Successful disambungkan kepada Send to CRM)*

`{amount_value}` dan `{items_json}` sengaja tiada tanda petik: ia menjadi nombor dan senarai. Dalam akaun demo, satu pembelian ujian sampai seperti ini:

```json
{
  "order_number": "LINK-05851",
  "name": "Farah Idris",
  "email": "farah.idris@example.com",
  "phone": "+60133456784",
  "amount": 15,
  "form": "Kopi Kampung Home Brewing E-Guide",
  "paid_at": "2026-09-27 22:15:56",
  "items": [{ "sku": "Home Brewing Guide", "name": "Home Brewing Guide", "quantity": 1, "price": 15 }]
}
```

Tukar nama key di sebelah kiri kepada nama ruangan yang diperlukan oleh CRM anda. Lihat [Langkah HTTP Request](/ms/automation-http-request/) untuk query parameter, mod key-value dan method lain.

## Uji automasi

Semak resipi ini dengan run ujian sebelum anda bergantung kepadanya:

1. Buat pembelian ujian pada payment form dalam Test Mode.
2. Buka automasi itu dan klik **Overview**. Run itu dipaparkan sebagai **Completed** apabila CRM anda membalas dengan status code 2xx.

   *(Screenshot: Execution History dengan run Send to CRM yang completed ditanda)*

3. Klik **View**, kemudian **View Response** pada langkah itu, untuk melihat status code dan response daripada CRM anda.

   *(Screenshot: Butiran execution dengan data response dan status code 200)*

Request yang gagal dipaparkan sebagai **Failed** bersama status code, contohnya `HTTP 401` untuk API key yang salah. Betulkan langkah itu dan klik **Retry** pada run tersebut.

## Tips

Beberapa cara untuk mendapat lebih banyak daripada resipi ini:

- **Hantar lead dengan cara yang sama.** Bina langkah yang sama pada **New Lead Received** dengan key ruangan lead form anda, contohnya `{email_address:2}`.
- **Halakan ujian ke sandbox.** **Send Test Request** menghantar request sebenar dengan data sampel; guna persekitaran ujian CRM anda jika request itu akan mencipta rekod.
- **Jangan letak key dalam URL.** Letak API key dalam **Headers**: URL dipaparkan dalam sejarah automasi.

## Isu biasa

### Patut saya guna automasi ini atau webhook form?

Webhook form menghantar payload tetap BCL untuk satu form. Automasi ini membolehkan anda memilih ruangan, nama ruangan dan header yang CRM anda perlukan, untuk semua form sekali gus. Guna format yang diterima oleh CRM anda.

### Kenapa CRM saya menerima request itu tetapi item-nya tiada?

Body mesti masih JSON yang sah selepas BCL mengisi variable. Letak {items_json} dan {amount_value} tanpa tanda petik, dan variable teks seperti {name} di dalam tanda petik.
