---
# System prepended metadata

title: N8N

---

# Catatan Belajar n8n  

n8n adalah platform *workflow automation* berbasis **open-source** yang memungkinkan kita menghubungkan berbagai aplikasi, API, dan layanan. n8n sangat fleksibel, bisa self-hosted, serta menyediakan visual builder untuk membuat alur otomatisasi.  

Pembelajaran ini saya rangkum dari berbagai materi (termasuk kursus video n8n beginner) dan saya kaitkan dengan kerangka **MCP** agar pemahaman lebih menyeluruh.  

---

## Pemahaman  

### Konsep Automation & Workflow  
Otomasi membantu mengurangi pekerjaan manual, meminimalisir kesalahan, dan meningkatkan efisiensi. Di n8n, otomasi dibangun dengan **workflow**, yaitu alur logis yang terdiri dari **node**.  

- **Trigger Node** → pemicu awal workflow (contoh: Webhook menerima data, Cron untuk jadwal tertentu).  
- **Action Node** → aksi yang dijalankan (contoh: simpan data ke Google Sheets, kirim pesan ke Slack).  
- **Helper Node** → mengolah data di tengah alur (contoh: Function, Set, Merge).  

**Visualisasi Workflow sederhana**:  

```mermaid
flowchart LR
    A[Webhook Trigger] --> B[Function Node]
    B --> C[Google Sheets]
    C --> D[Slack Notification]
````

---

### API & Webhook

* **API** adalah cara aplikasi saling berkomunikasi melalui *request* dan *response*.
* **Webhook** adalah endpoint yang otomatis menerima data ketika ada event.
* Dalam n8n, webhook sering dipakai sebagai **trigger awal** workflow.

**Contoh data JSON masuk ke webhook**:

```json
{
  "nama": "Andi",
  "email": "andi@example.com",
  "timestamp": "2025-10-04T10:30:00Z"
}
```

---

### Alur Data di n8n

Semua data mengalir antar node dalam format **JSON**.

* Bisa diakses dengan **Expressions** → `{{$json["email"]}}`
* Bisa dimodifikasi dengan **Function Node** (JavaScript).

**Visualisasi Aliran Data**:

```mermaid
sequenceDiagram
    participant Webhook
    participant Function
    participant Sheets
    participant Slack

    Webhook->>Function: Data JSON
    Function->>Sheets: Transformasi data
    Sheets->>Slack: Kirim notifikasi
```

---

### Core Workflow Concepts

* Workflow berjalan dalam alur: **Trigger → Process → Output**.
* Bisa ditambah **percabangan logika** (IF, Switch).
* Bisa looping untuk memproses banyak data sekaligus.
* Ada **retry dan timeout** untuk menjaga kestabilan workflow.

**Contoh Percabangan "if"**:

```mermaid
flowchart TD
    A[Webhook] --> B{Email valid?}
    B -- Ya --> C[Tambahkan ke Database]
    B -- Tidak --> D[Kirim Notifikasi Error]
```

---

### Error Handling & Debugging

Error adalah bagian normal dari workflow. n8n menyediakan:

* **Error Workflow** → khusus menangani kegagalan.
* **Error Trigger Node** untuk event error.
* **Continue on Fail** agar error tidak menghentikan seluruh alur.
* **Retry otomatis** untuk error koneksi atau API.

Untuk debugging:

* Gunakan mode **Run Once**.
* Preview output data di tiap node.
* Pecah workflow besar jadi bagian kecil untuk pengujian.

**Visualisasi Error Handling**:

```mermaid
flowchart LR
    A[Webhook Trigger] --> B[Process Data]
    B -->|Success| C[Google Sheets]
    B -->|Error| D[Error Workflow]
```

---

### Kolaborasi & Keamanan

* Workflow bisa diekspor ke **JSON** untuk dibagikan.
* **Credentials Manager** menyimpan API Key dengan aman.
* Dokumentasi internal & penamaan node penting agar workflow mudah dipahami tim.

**Contoh potongan JSON Workflow**:

```json
{
  "nodes": [
    {
      "id": "1",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "parameters": {
        "path": "webhook-example",
        "method": "POST"
      }
    }
  ]
}
```

---

## Penerapan

1. Install n8n via `npm` dan Docker.
2. Membuat workflow sederhana: **Webhook → Google Sheets**.
3. Mengetes webhook dengan Postman dan juga `curl`:

```bash
curl -X POST 'http://localhost:5678/webhook/webhook-example' \
  -H 'Content-Type: application/json' \
  -d '{"nama":"Andi","email":"andi@example.com"}'
```

4. Menambahkan **Function Node** untuk memformat data.
5. Menyimpan ke Google Sheets, lalu menambahkan notifikasi ke Slack.
6. Melatih **error handling** dengan workflow error terpisah.

**Visualisasi Workflow**:

```mermaid
flowchart 
    A[Webhook Trigger] --> B[Function: format data]
    B --> C[Google Sheets:     simpan data]
    C --> D[Slack: notifikasi sukses]
```

                               |

