Durasi: 10 menit | Block: 4
⏰ Schedule Trigger (Cron)
Jenis Schedule
| Tipe | Cron Expression | Kapan Jalan |
|---|---|---|
| Setiap menit | * * * * * | Monitoring real-time |
| Setiap jam | 0 * * * * | Hourly sync |
| Setiap hari 9 pagi | 0 9 * * * | Daily report |
| Setiap Senin 8 pagi | 0 8 * * 1 | Weekly summary |
| Setiap tanggal 1 | 0 9 1 * * | Monthly billing |
n8n Schedule Node
Node: Schedule Trigger
- Mode: Cron
- Cron Expression: 0 9 * * * (setiap hari jam 9)
- Timezone: Asia/Jakarta🏗️ Build: Daily Sales Report
[Schedule: Setiap hari jam 9 pagi]
→ [Google Sheets: Read today's orders]
→ [Code Node: Calculate summary]
→ [Send Email/WhatsApp: Daily report]👤 Human-in-the-Loop (Approval Flow)
Kenapa Perlu Approval?
Tanpa approval: AI auto-send reply → bisa salah → rugi reputasi
Dengan approval: AI draft reply → human review → approve/reject → sendWait Node = Pause Workflow
[Webhook: New Inquiry]
→ [AI Node: Draft Reply]
→ [Slack: Send draft for approval]
→ [Wait Node: Wait for Webhook (approval/rejection)]
├── Approved → [Send WhatsApp: Reply to customer]
└── Rejected → [Slack: Log rejection + reason]Wait Node Config
Node: Wait
- Mode: Webhook
- Path: approval-callback
- Resume: on webhook call
Webhook URL: https://[n8n]/webhook/approval-callbackApproval Interface Options
Option A: Slack Button (Simplest)
Slack message dengan button:
┌─────────────────────────────────┐
│ 📩 New Inquiry dari Budi │
│ "Mau tanya harga produk X" │
│ │
│ AI Draft Reply: │
│ "Halo Budi, harga produk X..." │
│ │
│ [✅ Approve] [❌ Reject] │
└─────────────────────────────────┘Option B: Simple Web Page
html
<form action="https://[n8n]/webhook/approval-callback" method="POST">
<input type="hidden" name="id" value="\{{ execution_id }}">
<input type="hidden" name="action" value="approve">
<button type="submit">✅ Approve</button>
</form>
<form action="https://[n8n]/webhook/approval-callback" method="POST">
<input type="hidden" name="id" value="\{{ execution_id }}">
<input type="hidden" name="action" value="reject">
<textarea name="reason" placeholder="Alasan reject (opsional)"></textarea>
<button type="submit">❌ Reject</button>
</form>📊 Real-World Approval Scenarios
| Workflow | Approval Gate | Kenapa |
|---|---|---|
| Auto-reply customer | Review AI draft sebelum send | Quality control |
| Payment processing | Confirm transfer > Rp 1M | Fraud prevention |
| Social media post | Approve konten sebelum post | Brand safety |
| Data deletion | Confirm sebelum hapus data | Irreversible action |
| Discount code | Approve diskon > 20% | Margin protection |
⚡ Pro Tips
- Set timeout di Wait Node — jangan biar wait selamanya. 24 jam timeout, lalu auto-reject.
- Log semua approval decisions — audit trail.
- Escalation path — kalau ga di-approve dalam X jam → notif ke level atas.
- Default action — kalau timeout, apa yang terjadi? Approve atau reject?