π‘ Day 4: JSON, Expressions, Autentikasi & Integrasi (Pushover, Telegram, Slack) β
Rangkuman 7 video: JSON & Tipe Data, Expressions di n8n, Metode Autentikasi, Integrasi Pushover, Membuat Bot Telegram, Integrasi Telegramβn8n, dan Integrasi Slack OAuth2
π― Tujuan Hari Ini β
Hari keempat berfokus pada fondasi data (JSON & expressions), metode autentikasi dari yang paling sederhana hingga paling kompleks, dan tiga integrasi nyata β Pushover (satu arah), Telegram (dua arah), serta Slack (dua arah dengan OAuth2 penuh). Setelah hari ini, kamu sudah punya pengalaman langsung membangun komunikasi antara n8n dan platform eksternal.
π¦ Bagian 1: JSON β Bahasa Data Universal β
JSON (JavaScript Object Notation) adalah format data yang akan kamu temui di mana-mana saat bekerja dengan n8n dan API. Pahami strukturnya sekali, dan kamu akan nyaman membaca data apa pun.
Empat Blok Bangunan JSON β
| # | Konsep | Sintaks | Contoh |
|---|---|---|---|
| 1 | Key-Value Pair | "key": value | "name": "Alice" |
| 2 | Object (Dictionary) | { } kurung kurawal | {"name": "Alice", "age": 30} |
| 3 | Array (List) | [ ] kurung siku | ["apple", "banana", "cherry"] |
| 4 | Nesting | Object dalam object | {"address": {"city": "Jakarta"}} |
Tipe Data dalam Value β
βββββββββββββββ¬βββββββββββββββββββββββ
β Tipe β Contoh β
βββββββββββββββΌβββββββββββββββββββββββ€
β String β "hello" β
β Number β 42, 3.14 β
β Boolean β true, false β
β Null β null β
β Object β {"key": "value"} β
β Array β [1, 2, 3] β
βββββββββββββββ΄βββββββββββββββββββββββContoh JSON Nyata (dari n8n) β
{
"message": {
"message_id": 123,
"from": {"first_name": "Ed", "username": "edbot"},
"chat": {"id": 987654321, "type": "private"},
"text": "Hi there"
}
}π‘ Insight: Setiap data yang mengalir antar-node di n8n berbentuk JSON. Memahami JSON = memahami cara data bergerak dalam workflow-mu.
β‘ Bagian 2: Expressions di n8n β
Expressions adalah cara dinamis mengakses dan memanipulasi data. Alih-alih menulis nilai tetap (fixed), kamu bisa menulis expression yang dievaluasi saat runtime.
Sintaks Dasar β
| Expression | Arti | Contoh Hasil |
|---|---|---|
{{ $json.name }} | Ambil field name dari data masuk | "Alice" |
{{ $json.address.city }} | Drill ke nested object | "Jakarta" |
{{ $node["Telegram Trigger"].json.message.chat.id }} | Ambil data dari node lain | 987654321 |
{{ JSON.stringify($json) }} | Ubah JSON jadi text | '{"name":"Alice"}' |
Diagram Alur Expression β
βββββββββββββββββββ ββββββββββββββββββββββββ ββββββββββββββββ
β Data Masuk ββββββΆβ Expression ββββββΆβ Nilai Akhir β
β (JSON Object) β β {{ $json.field }} β β (String/Num)β
βββββββββββββββββββ ββββββββββββββββββββββββ ββββββββββββββββToggle Fixed vs Expression β
Di setiap field pada node n8n, kamu bisa beralih antara:
- Fixed β Nilai tetap, misal
"bananas" - Expression β Nilai dinamis, misal
{{ $json.output }}
Tips Drag & Drop β
Kamu tidak perlu menghafal expression. Cukup:
- Klik field yang ingin diisi
- Pilih mode Expression
- Drag & drop dari panel data di sebelah kiri ke field expression
- n8n otomatis menuliskan expression yang benar!
π Bagian 3: Tiga Tingkat Autentikasi β
Setiap integrasi dengan layanan pihak ketiga memerlukan autentikasi. Ada tiga tingkat kesulitan:
Mudah Sedang Sulit
ββββββββββββ ββββββββββββββββ ββββββββββββββββββββ
β API Key β β Pre-config β β Full OAuth2 β
β β β OAuth2 β β β
β Copy key β β Click to β β Setup scopes, β
β βββΆ Pasteβ β connect βββΆ β β tokens, webhooks β
β βββΆ Done β β Popup βββΆ β β βββΆ Banyak β
β β β Allow βββΆ β β langkah! β
β β β Done β β β
ββββββββββββ ββββββββββββββββ ββββββββββββββββββββ
OpenAI, Google Sheets, Slack
MarketStack, Google Drive,
Pushover, Gmail
Telegram| Level | Metode | Langkah | Contoh Platform |
|---|---|---|---|
| π’ Mudah | API Key | Copy key β Paste di n8n β Selesai | OpenAI, MarketStack, Pushover, Telegram |
| π‘ Sedang | Pre-configured OAuth2 | Klik "Connect" β Pop-up β Allow β Selesai | Google Sheets, Drive, Gmail |
| π΄ Sulit | Full OAuth2 | Setup scopes, token, webhook, banyak bolak-balik | Slack |
π± Bagian 4: Integrasi Pushover (Satu Arah) β
Pushover adalah layanan push notification yang sangat sederhana β cocok untuk mengirim alert dari workflow n8n ke ponselmu.
Setup Pushover β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β SETUP PUSHOVER β
βββββββββββββββββββββββββββββββββββββββββββββββββββ€
β 1. Daftar di pushover.net β
β 2. Dapatkan User Key (awalan "U...") β
β 3. Buat Application β dapat App Token ("A...") β
β 4. Install app Pushover di HP β
β 5. Di n8n: tambahkan Pushover sebagai Tool β
β pada AI Agent β
β 6. Masukkan kedua token di credential n8n β
βββββββββββββββββββββββββββββββββββββββββββββββββββKonfigurasi di n8n β
| Parameter | Nilai |
|---|---|
| Credential | User Key (U...) + App Token (A...) |
| Message | Let the model decide β LLM yang menentukan isi pesan |
| Prioritas | High (agar bersuara di HP) |
Alur Kerja β
[Chat Trigger] βββΆ [AI Agent] ββtoolβββΆ [Pushover]
β β
β βΌ
β π± Notifikasi
β di HP!
βΌ
[Date/Time Tool]π‘ Catatan: Pushover hanya satu arah β n8n mengirim notifikasi ke HP, tapi pengguna tidak bisa membalas lewat Pushover.
π€ Bagian 5: Integrasi Telegram (Dua Arah) β
Telegram menyediakan integrasi dua arah yang cukup mudah karena menggunakan API Key sederhana melalui BotFather.
Langkah 1: Buat Bot Telegram β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
β MEMBUAT BOT TELEGRAM β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β 1. Buka Telegram β cari @BotFather β
β 2. Kirim: /start β
β 3. Kirim: /newbot β
β 4. Beri nama bot (misal: "TG_Convo") β
β 5. Beri username (harus akhiran "bot") β
β misal: tg_convo_bot β
β 6. BotFather memberikan API Token β COPY! β
β β οΈ Hati-hati jangan copy spasi di ujung β
ββββββββββββββββββββββββββββββββββββββββββββββββββββLangkah 2: Bangun Workflow di n8n β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β Telegram ββββββΆβ AI Agent ββββββΆβ Telegram β
β Trigger β β β β Send Text β
β (on message) β β + Memory β β Message β
β β β + Tools β β β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β β
β Ambil dari trigger: β
β ββββββββββββββββββββββ β
ββββββββββΆβ chat.id β Chat ID ββββββββββββ
β text β Prompt β
ββββββββββββββββββββββKonfigurasi Kritis β
| Komponen | Konfigurasi |
|---|---|
| Telegram Trigger | Credential: paste API token, Event: "On Message" |
| AI Agent β Prompt | Source: "Define Below" β Expression: {{ $json.message.text }} |
| Telegram Send | Text: {{ $json.output }} (output AI Agent) |
| Chat ID | Expression: {{ $node["Telegram Trigger"].json.message.chat.id }} |
| Memory Session Key | Expression: Chat ID (atau username untuk persistensi antar-sesi) |
Masalah Umum & Solusi β
| Masalah | Penyebab | Solusi |
|---|---|---|
| "No prompt specified" | Source masih "Chat Trigger Node" | Ubah ke "Define Below", drag message.text |
| Respons tidak masuk chat yg benar | Chat ID belum diisi | Drag chat.id dari Telegram Trigger |
| Memory tidak bekerja | Session key default | Set session key ke chat ID atau username |
Publish ke Production β
Setelah semuanya bekerja di mode test (Execute Workflow), tekan Publish untuk deploy. Workflow akan berjalan otomatis tanpa perlu klik "Execute" lagi. Untuk menghentikan, pilih Unpublish dari menu titik tiga.
π¬ Bagian 6: Integrasi Slack (Dua Arah β Full OAuth2) β
Slack adalah integrasi paling kompleks hari ini karena menggunakan OAuth2 penuh, setup scopes, dan webhook. Ini adalah latihan terbaik untuk memahami integrasi tingkat lanjut.
Alur Setup Lengkap β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SETUP SLACK BOT β
β β
β SLACK SIDE N8N SIDE β
β βββββββββ ββββββββ β
β β
β 1. Apps & Workflows β
β βββΆ Build (kanan atas) β
β βββΆ Create New App β
β βββΆ From Scratch β
β βββΆ Beri nama + pilih workspace β
β β
β 2. OAuth & Permissions β
β βββΆ Add OAuth Scopes: 3. Create Workflow β
β β’ app_mentions:read βββΆ Slack Trigger β
β β’ channels:history (Bot/App Mention) β
β β’ channels:read βββΆ Paste Bot Token β
β β’ chat:write βββΆ Connection tested β
β β’ im:history β
β β’ users:read β
β βββΆ Install to Workspace β
β βββΆ Copy Bot User OAuth Token β
β β
β 4. Buat Channel + Invite Bot 5. Setup AI Agent β
β βββΆ /invite @botname βββΆ OpenAI model β
β βββΆ Copy Channel ID βββΆ Slack Send Msg β
β (triple dots β Edit Settings) β
β β
β 6. Event Subscriptions 7. Copy Webhook URL β
β βββΆ Enable Events dari n8n Trigger β
β βββΆ Subscribe: app_mention (Test / Production) β
β βββΆ Paste Webhook URL β
β βββΆ "Verified" β
β
β βββΆ SAVE CHANGES! β οΈ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ6 OAuth Scopes yang Diperlukan β
| Scope | Fungsi |
|---|---|
app_mentions:read | Baca pesan yang men-tag bot |
channels:history | Lihat riwayat channel |
channels:read | Baca info channel |
chat:write | Kirim pesan sebagai bot |
im:history | Lihat pesan DM |
users:read | Lihat info anggota workspace |
Trik: Kirim Seluruh JSON ke LLM β
Alih-alih hanya mengirim teks pesan, kamu bisa mengirim seluruh JSON dari Slack ke AI Agent:
Prompt:
"Please respond to this message from Slack:
{{ JSON.stringify($json) }}"LLM cukup cerdas untuk membaca dan memahami struktur JSON, jadi ia bisa mengekstrak sendiri informasi yang relevan β termasuk username, channel, timestamp, dll.
Konfigurasi Output Slack β
| Field | Expression |
|---|---|
| Resource | Message |
| Operation | Send |
| Channel | By ID β paste Channel ID |
| Message Text | {{ $json.output }} |
Deploy ke Production β
Saat deploy ke production, webhook URL berubah! Kamu harus:
- Copy Production URL dari Slack Trigger di n8n
- Kembali ke Slack β Event Subscriptions
- Ganti Request URL dengan production URL
- Pastikan muncul "Verified"
- Tekan Save Changes (sering terlupa!)
- Baru tekan Publish di n8n
π Perbandingan Tiga Integrasi β
| Aspek | Pushover | Telegram | Slack |
|---|---|---|---|
| Arah | Satu arah (β HP) | Dua arah (β) | Dua arah (β) |
| Autentikasi | API Key (2 token) | API Key (BotFather) | Full OAuth2 + Scopes |
| Kesulitan | β Mudah | ββ Sedang | βββ Sulit |
| Webhook? | Tidak | Tidak (built-in) | Ya (manual setup) |
| Trigger | N/A (tool saja) | On Message (otomatis) | Bot/App Mention + Webhook |
| Cocok Untuk | Alert & notifikasi | Chat bot personal | Bot bisnis/tim |
π Konsep Penting: Webhook β
Webhook adalah URL endpoint yang kamu sediakan agar sistem eksternal bisa memberi tahu n8n bahwa sesuatu telah terjadi.
Dua Pola Komunikasi:
1. REQUEST-RESPONSE (n8n β Platform)
ββββββββ HTTP Request βββββββββββ
β n8n β βββββββββββββββββββΆβ Slack β
β β ββββββββββββββββββββ β
ββββββββ Response βββββββββββ
"Kirim pesan ke channel ini"
2. WEBHOOK (Platform β n8n)
ββββββββ HTTP POST βββββββββββ
β n8n β ββββββββββββββββββββ Slack β
β β β β
ββββββββ βββββββββββ
"Hey, ada pesan baru yang mention bot-mu!"β οΈ Penting: Webhook test dan production berbeda URL. Saat publish workflow, pastikan URL di platform eksternal sudah diganti ke production URL.
π Glosarium Hari Ini β
| Istilah | Definisi |
|---|---|
| JSON | Format data key-value universal, diapit { } |
| Expression | Nilai dinamis dalam {{ }} yang dievaluasi saat runtime |
| $json | Shortcut expression untuk data JSON dari node sebelumnya |
| $node["nama"] | Akses data dari node tertentu dalam workflow |
| JSON.stringify() | Ubah objek JSON menjadi string teks |
| API Key | Token sederhana untuk autentikasi β copy & paste |
| OAuth2 | Protokol autentikasi standar dengan scopes & token |
| Scope | Izin spesifik yang diberikan ke aplikasi (read, write, dll.) |
| Webhook | URL endpoint yang dipanggil sistem luar untuk notifikasi |
| BotFather | Bot resmi Telegram untuk membuat dan mengelola bot baru |
| Publish | Deploy workflow n8n ke production (berjalan otomatis) |
β Progress Tracker β
Week 1: Automate with Workflows
=========================================
Day 1 ββββββββββββββββββββ β
AI Agent + Setup
Day 2 ββββββββββββββββββββ β
Teori Agentic AI
Day 3 ββββββββββββββββββββ β
Integrasi Google
Day 4 ββββββββββββββββββββ β
JSON + Auth + 3 Integrasi βββ HARI INI
Day 5 ββββββββββββββββββββ Proyek Bisnis
=========================================
π Progress: 27% kursus selesaiπ Pencapaian Hari Ini β
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π ACHIEVEMENT UNLOCKED β
β β
β β
Memahami JSON: objects, arrays, nesting β
β β
Menguasai expressions n8n ($json, $node) β
β β
3 tingkat autentikasi (API Key β OAuth2) β
β β
Integrasi Pushover (satu arah) β
β β
Bot Telegram dua arah + memory + publish β
β β
Bot Slack OAuth2 + webhook + production β
β β
Deploy pertama ke production! β
βββββββββββββββββββββββββββββββββββββββββββββββββββββ