Durasi: 30 menit | Block: 2
🅰️ Project A: Admin Order UMKM ⭐⭐
Scenario
Kamu punya bisnis online. Customer inquiry masuk dari berbagai channel. Semua harus tertata.
Flow
[Webhook: Order Form]
→ [Set Node: Format Order]
→ [Google Sheets: Append Row]
→ [If: Amount > 500K]
├── TRUE → [WhatsApp: Priority Notif ke owner]
└── FALSE → [Email: Standard notification]Test Payload
json
{
"nama": "Budi Santoso",
"telepon": "081234567890",
"produk": "Kopi Arabica 1kg",
"jumlah": 2,
"harga_satuan": 350000,
"alamat": "Jl. Merdeka 10, Jakarta"
}Minimum Deliverables
- [ ] Webhook terima data
- [ ] Sheets log terisi
- [ ] Priority notif untuk order besar
- [ ] Basic error handling
🅱️ Project B: Social Media Auto-Post ⭐⭐⭐
Scenario
Bisnis kamu butuh konten rutin di social media. Bikin scheduler yang auto-post.
Flow
[Schedule: Daily 8 AM]
→ [Google Sheets: Read content calendar]
→ [Code Node: Filter today's content]
→ [AI Node: Generate caption if empty]
→ [If: Platform]
├── "instagram" → [HTTP: Post to IG via API]
├── "twitter" → [HTTP: Post to X/Twitter]
└── (fallback) → [Email: Manual post reminder]Sheets Structure
| Date | Platform | Content Type | Image URL | Caption | Status |
|---|---|---|---|---|---|
| 30/05 | product | url... | (auto) | pending |
Minimum Deliverables
- [ ] Schedule trigger jalan
- [ ] Read dari Sheets
- [ ] Caption generation (AI atau template)
- [ ] Platform routing
🅲️ Project C: CRM + Lead Router ⭐⭐⭐
Scenario
leads masuk dari berbagai sumber. Klasifikasi dan route ke sales pipeline.
Flow
[Webhook: Lead Form]
→ [Code Node: Normalize + Score Lead]
→ [Switch: Lead Score]
├── "hot" (>80) → [Slack: #hot-leads] + [Sheets: Priority CRM]
├── "warm" (40-80) → [Sheets: Nurture Queue] + [Email: Welcome]
└── "cold" (<40) → [Sheets: General List] + [Email: Drip Campaign Day 1]Lead Scoring Logic (Code Node)
javascript
const lead = $input.item.json;
let score = 0;
// Source scoring
if (lead.source === 'referral') score += 40;
else if (lead.source === 'ads') score += 20;
else score += 10;
// Engagement scoring
if (lead.pages_viewed > 5) score += 20;
if (lead.time_on_site > 180) score += 15;
// Company size
if (lead.company_size === 'enterprise') score += 25;
else if (lead.company_size === 'smb') score += 15;
const tier = score > 80 ? 'hot' : score > 40 ? 'warm' : 'cold';
return { json: { ...lead, score, tier } };Minimum Deliverables
- [ ] Lead scoring algorithm
- [ ] 3-tier routing
- [ ] CRM logging (Sheets)
- [ ] Appropriate notification per tier
🅳️ Project D: Data Report Otomatis ⭐⭐⭐⭐
Scenario
Setiap hari, generate report dari data tersebar di beberapa sheets/API.
Flow
[Schedule: Daily 9 AM]
→ [Google Sheets: Read orders data]
→ [Google Sheets: Read inventory data]
→ [Merge: Combine by product SKU]
→ [Code Node: Calculate metrics]
→ [Code Node: Format HTML report]
→ [Email: Send formatted report]
→ [Sheets: Log report sent]Report Metrics (Code Node)
javascript
const orders = $input.first().json.orders;
const inventory = $input.first().json.inventory;
const metrics = {
date: new Date().toLocaleDateString('id-ID'),
total_orders: orders.length,
total_revenue: orders.reduce((s, o) => s + o.amount, 0),
top_products: /* ... */,
low_stock_alerts: inventory.filter(i => i.stock < 10),
avg_order_value: /* ... */
};Minimum Deliverables
- [ ] Multi-source data pull
- [ ] Merge + transform data
- [ ] Formatted report (HTML email)
- [ ] Error handling (empty data, API fail)
- [ ] Logging
🎯 General Build Tips
- Start simple — bikin flow dasar dulu, baru tambah complexity
- Test per node — jangan build semua baru test di akhir
- Use placeholder data — kalau API belum ada, pakai Set Node sebagai mock
- Save sering — n8n auto-save tapi jangan risiko kehilangan