π Day 2 β Integrasi Lanjutan: OAuth2, Firecrawl & Structured Outputs β
Week 3 Β· Day 2 Β· 6 Video Topik: Tiga Jenis Autentikasi Recap, Google OAuth2 Full Setup, Google Drive Trigger & PDF Extraction, Firecrawl Web Scraping, Structured Outputs, HTTP Request Node
π Daftar Isi β
- Ikhtisar Integrasi Lanjutan
- Google OAuth2 Full Setup
- Workflow Google Drive Trigger
- Workflow PDF Extraction
- Integrasi Firecrawl
- Structured Outputs β Teknik Krusial
- Demo Lengkap: Agent + Firecrawl + HTTP Request
π Ikhtisar Integrasi Lanjutan β
Day 2 membahas integrasi tingkat lanjut dengan fokus pada platform yang memerlukan konfigurasi autentikasi lebih kompleks. Sebelum menyelam ke detail, berikut rekap tiga jenis autentikasi:
Recap: Tiga Jenis Autentikasi β
| Jenis | Cara Kerja | Contoh |
|---|---|---|
| API Key | Copy-paste kunci rahasia | Firecrawl, OpenAI, Pushover |
| OAuth2 One-Click (Cloud) | n8n sudah siapkan OAuth app | Google Sheets, Gmail (di cloud) |
| OAuth2 Full (Self-Hosted) | Buat OAuth app sendiri di GCP | Google Drive, Gmail (self-hosted) |
Fitur n8n yang Baru Diperkenalkan β
| Fitur | Shortcut | Fungsi |
|---|---|---|
| Projects | β | Mengorganisasi workflow dalam grup terpisah |
| Folders | β | Sub-organisasi di dalam project |
| Sticky Notes | Shift+S | Catatan visual di canvas untuk dokumentasi |
π‘ Fork in the Road: Pengguna cloud bisa kembali ke n8n cloud (OAuth sudah sederhana). Pengguna self-hosted harus ikuti setup OAuth2 full. Untuk webhook di self-hosted, gunakan ngrok sebagai tunnel.
π Google OAuth2 Full Setup β
Ini adalah proses yang harus dijalani pengguna self-hosted untuk mengakses Google APIs. Prosesnya terasa panjang, tapi hanya perlu dilakukan sekali.
Alur Lengkap Step-by-Step β
ββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Google Cloud Console (GCP) β
β β
β 1. Buat Project Baru ("amplify") β
β β β
β βΌ β
β 2. APIs & Services β Library β
β β Enable "Google Drive API" β
β β β
β βΌ β
β 3. OAuth Consent Screen β
β βββ Internal (Google Workspace user) β
β βββ External + Testing (untuk Gmail biasa) β
β β β
β βΌ β
β 4. Credentials β Create OAuth Client ID β
β β Application Type: "Web Application" β
β β β
β βΌ β
β 5. KRITIS: Copy Redirect URI dari n8n β
β β Paste sebagai "Authorized Redirect URI" β
β β β
β βΌ β
β 6. Dapatkan Client ID + Client Secret β
β β Paste ke n8n credential β
β β β
β βΌ β
β 7. Sign in with Google β Allow β
β β "Connection Successful" β
β
ββββββββββββββββββββββββββββββββββββββββββββββββββββDetail Setiap Langkah β
| Step | Lokasi | Aksi |
|---|---|---|
| 1 | GCP Console | Buat project baru bernama "amplify" |
| 2 | APIs & Services β Library | Cari dan enable "Google Drive API" |
| 3 | OAuth Consent Screen | Pilih External, tambahkan test users |
| 4 | Credentials β Create | Pilih "OAuth Client ID", tipe "Web Application" |
| 5 | n8n β Credential Google | Copy OAuth Redirect URI dari form n8n |
| 6 | GCP β Authorized Redirects | Paste URI, lalu copy Client ID + Secret |
| 7 | n8n β Credential | Paste ID + Secret, klik "Sign in with Google" |
Mengapa OAuth2 Begitu Kompleks? β
OAuth2 dirancang untuk keamanan akses pihak ketiga terhadap data pengguna. Kompleksitasnya adalah fitur, bukan bug:
- Pengguna memberikan izin eksplisit (consent screen)
- Aplikasi pihak ketiga tidak pernah melihat password
- Izin bisa dicabut kapan saja
- Scope bisa dibatasi (hanya Drive, hanya read, dll.)
β οΈ Kesalahan Umum: Lupa paste redirect URI dari n8n ke GCP. Tanpa ini, OAuth flow akan gagal total. Selalu copy URI dari n8n terlebih dahulu!
π Workflow Google Drive Trigger β
Workflow pertama yang dibangun: monitor folder di Google Drive dan kirim notifikasi saat ada file baru.
Arsitektur Workflow β
βββββββββββββββββββ ββββββββββββββββββββ
β Google Drive β β Pushover β
β Trigger ββββββΆβ Notification β
β β β β
β π Monitor: β β π± "File baru β
β "Amplify File β β terdeteksi!" β
β Drop" folder β β β
β β±οΈ Every 1 min β β β
β π File Createdβ β β
βββββββββββββββββββ ββββββββββββββββββββKonfigurasi β
| Parameter | Nilai |
|---|---|
| Trigger | Google Drive Trigger |
| Event | File Created |
| Folder | "Amplify File Drop" |
| Poll Interval | Every 1 minute |
| Action | Pushover notification |
| Deploy | Production |
π Workflow PDF Extraction β
Workflow kedua lebih kompleks β mengunduh file dari Drive, mengekstrak teks dari PDF, dan mengirim kontennya via notifikasi.
Arsitektur Workflow β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββββββββββββ
β Google Drive β β Google Drive β β Extract from β β Pushover β
β Trigger βββββΆβ Download File βββββΆβ File (PDF) βββββΆβ Notify β
β β β β β β β β
β File Created β β ID: $json.id β β Auto-parse β β Extractedβ
β β β β β PDF content β β text β
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ ββββββββββββDetail Teknis β
| Node | Konfigurasi |
|---|---|
| Drive Trigger | Monitor folder, event: file created |
| Download File | Expression: $json.id (ID dari trigger) |
| Extract from File | Tipe: PDF, auto-extract text |
| Pushover | Kirim extracted text sebagai notifikasi |
Pengujian β
Sebuah PDF test dengan isi "This is a very important message" berhasil:
- Diupload ke Google Drive
- Terdeteksi oleh trigger
- Didownload
- Diekstrak teksnya
- Dikirim via Pushover β teks muncul di notifikasi β
π‘ Tips Lanjutan: Untuk menangani berbagai tipe file, gunakan if/else routing berdasarkan MIME type. PDF, DOCX, dan tipe file lain bisa diarahkan ke extractor yang berbeda.
π₯ Integrasi Firecrawl β
Firecrawl adalah platform web scraping, crawling, dan searching yang bisa digunakan oleh AI Agent untuk mengambil informasi dari internet.
Fitur Firecrawl β
| Fitur | Fungsi |
|---|---|
| Search | Mencari informasi di internet |
| Scrape | Mengambil konten dari halaman web tertentu |
| Crawl | Menjelajahi seluruh situs secara rekursif |
| Free Tier | 500 halaman gratis |
Instalasi di n8n β
Firecrawl tersedia sebagai community node (bukan built-in):
- Buka n8n β Settings β Community Nodes
- Install "Firecrawl" node
- Setup credential: masukkan API Key dari firecrawl.dev
β οΈ Firecrawl memiliki core node di n8n, tapi bukan tool node untuk AI Agent. Ini menjadi relevan di Day 3 ketika kita menggunakan MCP sebagai solusi.
β Structured Outputs β Teknik Krusial β
Ini adalah salah satu teknik PALING PENTING dalam seluruh kursus. Instruktur menekankan berulang kali bahwa Structured Outputs adalah "senjata rahasia" yang tidak cukup mendapat sorotan.
Apa itu Structured Outputs? β
Structured Outputs memaksa LLM untuk menghasilkan output dalam format JSON yang sesuai dengan schema tertentu β bukan teks bebas, tapi data terstruktur yang bisa langsung diproses oleh workflow.
Cara Mengaktifkan di n8n β
AI Agent Node
βββ "Require specific output format" β ON β
βββ Sub-node: Structured Output Parser
βββ Definisi JSON schemaContoh Schema β
{
"search_query": "internet search query to answer the user's question"
}Ketika LLM menerima schema ini, output-nya dijamin menghasilkan JSON yang conform:
{
"search_query": "best accounting software for consulting firms 2025"
}Mengapa Ini Sangat Powerful? β
Tanpa Structured Outputs Dengan Structured Outputs
βββββββββββββββββββββ βββββββββββββββββββββββββ
"I think you should { "search_query":
search for accounting "accounting software
software..." consulting firms" }
β β
βΌ βΌ
β Teks bebas, β
JSON presisi,
sulit diproses langsung bisa dipakai
oleh node berikutnya oleh node berikutnyaπ Key Insight: Structured Outputs memungkinkan Anda membangun pipeline yang bulletproof β setiap langkah menghasilkan data yang bisa diprediksi, meminimalkan error akibat output LLM yang berubah-ubah.
π Demo Lengkap: Agent + Firecrawl + HTTP Request β
Video terakhir mendemonstrasikan workflow end-to-end yang menggabungkan semua konsep hari ini.
Arsitektur Workflow β
ββββββββββ βββββββββββββββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β Chat ββββΆβ AI Agent (DeepSeek) ββββΆβ Firecrawl ββββΆβ HTTP Request β
βTrigger β β β β Search β β POST to β
β β β + Structured Output: β β β β webhook.site β
β β β {"search_query": "..."} β β Query from β β β
β β β β β JSON output β β Send results β
ββββββββββ βββββββββββββββββββββββββββββ ββββββββββββββββ ββββββββββββββββAlur Data β
- User mengirim pertanyaan via chat
- AI Agent (DeepSeek + Structured Output Parser) menghasilkan search query dalam format JSON
- Firecrawl Search menggunakan
$json.output.search_queryuntuk mencari di internet - HTTP Request (POST) mengirim hasil ke webhook.site sebagai JSON
HTTP Request Node β Generic Node β
| Aspek | Detail |
|---|---|
| Tipe | Generic HTTP Request |
| Method | POST |
| URL | webhook.site (untuk testing) |
| Body | JSON dengan hasil pencarian |
| Fungsi | Mengirim data ke endpoint external apapun |
HTTP Request node adalah "Swiss Army Knife" n8n β bisa berkomunikasi dengan API manapun yang belum memiliki node khusus.
π Ringkasan Tiga Integrasi Hari Ini β
| Integrasi | Autentikasi | Kategori |
|---|---|---|
| Google Drive | OAuth2 Full | File monitoring & extraction |
| Firecrawl | API Key | Web scraping & searching |
| HTTP Request | Varies | Generic API communication |
Ditambah dua teknik core:
- Structured Outputs β constraint output LLM ke JSON schema
- PDF Extraction β mengambil teks dari file PDF
π Tabel Terminologi β
| Istilah | Definisi |
|---|---|
| OAuth2 | Protokol autentikasi untuk akses aman ke data pihak ketiga |
| Redirect URI | URL callback yang dikirim GCP ke n8n setelah user approve |
| Client ID | Identifier publik untuk OAuth application |
| Client Secret | Kunci rahasia untuk OAuth application |
| Consent Screen | Halaman izin yang ditampilkan ke pengguna saat OAuth |
| Structured Output Parser | Sub-node yang memaksa LLM output JSON sesuai schema |
| Firecrawl | Platform web scraping/searching untuk AI |
| webhook.site | Layanan testing untuk menerima HTTP request |
| MIME Type | Identifier tipe file (application/pdf, text/html, dll.) |
| Community Node | Node n8n yang dibuat oleh komunitas, bukan tim resmi |
π Pencapaian Day 2 β
β
Menguasai Google OAuth2 full setup di GCP Console
β
Membangun Google Drive trigger workflow
β
Mengekstrak teks dari PDF secara otomatis
β
Mengintegrasikan Firecrawl untuk web scraping
β
Menguasai Structured Outputs β teknik paling penting
β
Menggunakan HTTP Request node untuk komunikasi API generik
β
Membangun pipeline end-to-end: Chat β Agent β Search β POSTπ― Progres: 80% melalui kursus selesai! Structured Outputs adalah game-changer yang akan terus digunakan di hari-hari berikutnya.