# 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]
```
|