---
title: n8n Workflows
area: automation
tags: [automation, integrations]
created: 2026-03-18
updated: 2026-03-25
status: active
related: [[Infrastructure/Architecture]], [[Infrastructure/Automation/Cron Jobs]], [[Infrastructure/Services/Docker Services]]
---

# n8n Workflows

Running on `n8n-agent` at port `18808`. See [[Infrastructure/Services/Docker Services]] for service details.

## Division of labor

- **n8n:** tasks where n8n has a native node (email/IMAP, calendar, webhooks, API integrations)
- **OpenClaw/OS cron:** shell-based / local tasks — no SSH bridge complexity
- When in doubt: does n8n have a native node for this? Yes → n8n. No → cron.

---

## Workflows

### Inbox Triage - wills_portal
- **ID:** `9sFwRyUDz51csAp7`
- **Status:** ✅ Active
- **Trigger:** Schedule (every 15 minutes)
- **Purpose:** Reads unseen IMAP emails from `wills_portal`, filters with static rules + local LLM triage (Qwen2.5-14B), tags by priority (P1/P2/P3), sends digest to Telegram, and writes individual email notes to Obsidian vault at `Notes/YYYY-MM-DD Subject.md`
- **Flow:** Read IMAP → Static filter → LLM judge → Merge → Format & Send to Telegram + Write to Vault (parallel)
- **Obsidian note frontmatter:** includes `from`, `priority` (high/medium/low), `signal_reason`, tags `[email, imap, priority-*]`
- **Status:** ✅ Active
- **Type:** Webhook
- **Purpose:** Test/ping endpoint — verified end-to-end
- **Path:** `/webhook/openclaw-ping`

### Gmail to Obsidian Notes
- **ID:** `fd0yacHqJHZNOw8l`
- **Status:** ✅ Active
- **Trigger:** Gmail Trigger — polls hourly for unread IMPORTANT emails
- **Purpose:** Two-stage triage (static filter → Qwen2.5-14B local LLM) then writes signal emails as Obsidian notes in `Notes/YYYY-MM-DD Subject.md`
- **Flow:** Gmail Trigger → Static Filter → LLM Judge → Format Note → Write to Vault → Notify Telegram
- **Obsidian note frontmatter:** includes `from`, `priority` (high/medium/low), `signal_reason`, tags `[email, gmail, priority-*]`
- **Output:** Writes to vault via Obsidian REST API → Telegram ping with priority

### Calendar to Obsidian Notes
- **ID:** `QRCCdHNXZUHc2Oz4`
- **Status:** ✅ Active
- **Trigger:** Schedule — every 6 hours
- **Purpose:** Fetches upcoming Google Calendar events (next 7 days) and creates notes in `Notes/YYYY-MM-DD Event.md` with frontmatter, time, location, attendees, and a notes section
- **Credential:** `Google Calendar account` (OAuth2)

---

_Add new workflows here as they are created._
