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