[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2777":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":14,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":15,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":20,"hasPages":20,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":16,"starSnapshotCount":16,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},2777,"n8n-Actual-Automation","hail2victors\u002Fn8n-Actual-Automation","hail2victors","6 n8n workflows for Actual Budget — AI transaction categorization, envelope auto-funding, and weekly budget briefing via Telegram","",null,"JavaScript",124,10,1,3,0,4,8,44.92,false,"main",[],"2026-06-12 04:00:15","# n8n Personal Finance Automation Bundle\n### Actual Budget Edition — v1.0\n\n> **Built and maintained by a real person running this stack daily.**\n> If something's broken or confusing, [open an issue](..\u002F..\u002Fissues) — I respond within 48 hours.\n\n[![Buy Me a Coffee](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FBuy%20Me%20a%20Coffee-☕-yellow)](https:\u002F\u002Fko-fi.com\u002Fhail2victors)\n\n---\n\n## What's in This Repo\n\n| File | Description |\n|---|---|\n| `workflows\u002F00 🔍 Actual Budget - Discovery (Run Once).json` | **Run first.** Fetches all your account\u002Fcategory IDs |\n| `workflows\u002F01 📅 Sunday Financial Briefing.json` | Weekly AI-generated budget summary via Telegram |\n| `workflows\u002F02 💸 Monthly Auto-Fund Envelopes.json` | Auto-funds your budget categories on the 1st of each month |\n| `workflows\u002F03 🏷️ AI Transaction Categorizer.json` | Three-tier AI categorizer that learns your spending patterns |\n| `workflows\u002F04 💵 Friday Paycheck Summary.json` | Weekly paycheck detection + month-to-date budget snapshot |\n| `workflows\u002F05 🔄 Monthly Rule Digest.json` | Monthly analysis of categorization patterns, logged to Notion |\n| `BRIDGE_SETUP.md` | SimpleFIN bridge setup guide (Docker Compose) |\n\n---\n\n## Prerequisites\n\nBefore importing anything, make sure you have all of these running:\n\n### Required\n- **n8n** — self-hosted (Docker recommended) or n8n Cloud\n  - Minimum version: `1.0`\n  - [Install guide → n8n.io\u002Fdocs](https:\u002F\u002Fdocs.n8n.io\u002Fhosting\u002F)\n- **Actual Budget** — self-hosted or Actual Budget Cloud\n  - HTTP API must be enabled (default in self-hosted)\n  - Note your **sync ID** and **server URL** — you'll need both\n  - [Actual Budget docs](https:\u002F\u002Factualbudget.org\u002Fdocs\u002F)\n- **SimpleFIN Bridge + actual-auto-sync** — for automatic bank transaction sync\n  - ~$15\u002Fyear for SimpleFIN, connects most US banks\n  - **Full setup → see `BRIDGE_SETUP.md`**\n  - Without this running, workflows will see no new transactions\n\n### Required for AI workflows (01, 03, 05)\n- **Anthropic API account** — pay-per-use, ~$0.01 per 100 transactions\n  - [console.anthropic.com](https:\u002F\u002Fconsole.anthropic.com)\n\n### Optional — Notion (Workflow 05 logging only)\n- **Notion account + API key** — free, but not required\n  - [notion.so\u002Fmy-integrations](https:\u002F\u002Fwww.notion.so\u002Fmy-integrations)\n  - Only needed if you want rule suggestions logged to a Notion database\n  - If you skip this, Workflow 05 still runs and sends its digest via Telegram\n  - See [Removing Notion from Workflow 05](#removing-notion-from-workflow-05)\n\n### Optional (for notifications)\n- **Telegram Bot** — free, takes 5 minutes via @BotFather\n  - You need: Bot Token + your personal Chat ID\n\n---\n\n## Setup Overview\n\nComplete these steps in order.\n\n1. [Configure n8n credentials](#step-1-configure-n8n-credentials)\n2. [Set up the SimpleFIN bridge](#step-2-set-up-the-simplefin-bridge)\n3. [Import workflows](#step-3-import-workflows)\n4. [Run Workflow 00 — Discovery](#step-4-run-workflow-00--discovery) ← do this before configuring anything else\n5. [Configure each workflow](#step-5-configure-each-workflow)\n6. [Test and activate](#step-6-test-and-activate)\n\n---\n\n## Step 1: Configure n8n Credentials\n\nIn n8n → **Settings → Credentials**, create the following. To name a credential, click the name at the top of the credential dialog — it's editable inline.\n\n> **Already have Anthropic or Notion credentials?** Reuse them. When importing a workflow, n8n will prompt you to select a credential for each node — pick your existing one from the dropdown. No need to create duplicates.\n\n---\n\n### Actual Budget Bridge\nThe only service without an n8n native credential type. Use Custom Auth.\n\n- Type: `Custom Auth`\n- Name: `Actual Budget Bridge`\n- JSON:\n```json\n{\n  \"headers\": {\n    \"x-bridge-key\": \"YOUR_BRIDGE_KEY\"\n  }\n}\n```\n\n---\n\n### Anthropic API (Workflows 01, 03, 05)\nn8n has a native Anthropic credential type — use it, not Custom Auth.\n\n- Type: `Anthropic`\n- Name: `Anthropic API`\n- Field: API Key → your `sk-ant-api03-...` key\n\nGet your key at: [console.anthropic.com](https:\u002F\u002Fconsole.anthropic.com)\n\n> **Using OpenRouter instead of Anthropic?** See [Swapping AI Providers](#swapping-ai-providers).\n\n---\n\n### Notion API (Workflow 05 only)\nn8n has a native Notion credential type — use it, not Custom Auth.\n\n- Type: `Notion API`\n- Name: `Notion API`\n- Field: Internal Integration Secret → your `ntn_...` key\n\nGet your key at: [notion.so\u002Fmy-integrations](https:\u002F\u002Fwww.notion.so\u002Fmy-integrations)\n\n---\n\n### Telegram Bot (all workflows)\nn8n has a native Telegram credential type — use it.\n\n- Type: `Telegram API`\n- Name: `Telegram Bot`\n- Field: Access Token → your bot token from @BotFather\n\n---\n\n## Step 2: Set up the SimpleFIN Bridge\n\nSee **`BRIDGE_SETUP.md`** for the complete Docker Compose setup.\n\nThe bridge must be running before any workflow will see your transactions. The n8n workflows communicate with Actual Budget on port 5006 — the bridge runs separately and keeps Actual Budget populated.\n\n---\n\n## Step 3: Import Workflows\n\nIn n8n → **Workflows → Add Workflow → Import from file**\n\nImport each `.json` file from the `workflows\u002F` folder. **Do not activate any workflow yet** — configure first, test second, activate last.\n\n---\n\n## Step 4: Run Workflow 00 — Discovery\n\n**Do this before touching any other Config node.** Every workflow needs account and category IDs specific to your Actual Budget instance.\n\nOpen Workflow 00 and edit the **Config** node — fill in only these two values:\n\n```javascript\nbridgeUrl: 'http:\u002F\u002Factual-bridge:3788',  \u002F\u002F your Actual Budget bridge URL\nbridgeKey: 'REPLACE_WITH_YOUR_BRIDGE_KEY',\n```\n\nClick **Test workflow**. The output shows a formatted table of every account and category in your budget, with their IDs. Keep this open — you'll reference it constantly in the next step.\n\n---\n\n## Step 5: Configure Each Workflow\n\nEvery workflow has a single **Config** node at the top. Edit only that node. All other nodes pull values from it automatically.\n\n### Workflow 01 — Sunday Financial Briefing\n\nRuns every Sunday at 7pm. Sends an AI-generated budget summary to Telegram.\n\n```javascript\nbridgeUrl:      'http:\u002F\u002Factual-bridge:3788',\ntelegramChatId: 'YOUR_TELEGRAM_CHAT_ID',\n```\n\nNo other configuration required — credentials are handled by n8n's credential store.\n\n---\n\n### Workflow 02 — Monthly Auto-Fund Envelopes\n\nRuns on the 1st of each month at 6am. Automatically funds your Actual Budget categories based on your `fundingTemplate`.\n\nKey values to set in the Config node:\n\n```javascript\nmonthlyIncome: 0,  \u002F\u002F your expected monthly net (take-home) income\n```\n\nThen fill in the `fundingTemplate` array. For each category:\n- Copy the `categoryId` from your Workflow 00 output\n- Set the `amount` to your monthly budget for that category\n- Use `type: 'fixed'` for set amounts, `type: 'remainder'` for your debt attack \u002F overflow category\n\nThe template ships with placeholder entries covering the most common budget categories. Delete any that don't apply to you and add any that are missing.\n\n---\n\n### Workflow 03 — AI Transaction Categorizer\n\nRuns every 4 hours. Fetches uncategorized transactions and uses Claude to categorize them automatically.\n\n**Confidence tiers:**\n- `AUTO_APPLY_THRESHOLD` (default 0.85) — applies the category automatically\n- `AUTO_RULE_THRESHOLD` (default 0.95) — applies AND creates a permanent payee rule in Actual Budget (that payee is never sent to Claude again)\n- Below `AUTO_APPLY_THRESHOLD` — sends a Telegram alert for manual review\n\n**Fill in the categories array** using your Workflow 00 output. Each entry:\n```javascript\n{ id: 'GET_FROM_WF00', name: 'Groceries supermarket warehouse club' },\n```\n- `id`: the category ID from Discovery\n- `name`: a descriptive label sent to Claude — the more descriptive, the more accurate\n\nThe template ships with ~28 common categories. Adjust to match your actual budget.\n\n---\n\n### Workflow 04 — Friday Paycheck Summary\n\nRuns every Friday at 6pm. Checks for a paycheck deposit and sends a budget snapshot.\n\n```javascript\ncheckingAccountId: 'GET_FROM_WF00',  \u002F\u002F your primary checking account ID\nexpectedPaycheck:  0,     \u002F\u002F your typical net paycheck amount\npaycheckTolerance: 200,   \u002F\u002F wiggle room in dollars (covers tax\u002Fbenefit changes)\ntelegramChatId:    'YOUR_TELEGRAM_CHAT_ID',\n```\n\n---\n\n### Workflow 05 — Monthly Rule Digest\n\nRuns on the 1st of each month at 7pm. Analyzes 60 days of transactions, uses Claude to spot categorization patterns, and sends a digest via Telegram. Notion logging is optional — see [Removing Notion from Workflow 05](#removing-notion-from-workflow-05).\n\n```javascript\nnotionDatabaseId: 'REPLACE_WITH_YOUR_NOTION_RULES_DB_ID', \u002F\u002F leave blank if not using Notion\ntelegramChatId:   'YOUR_TELEGRAM_CHAT_ID',\n```\n\n**Notion database setup (skip if not using Notion):**\n\nCreate a database in Notion with these properties:\n\n| Property | Type |\n|---|---|\n| Name | Title |\n| Suggestion | Text |\n| Month | Text |\n| Status | Select (New \u002F Applied \u002F Dismissed) |\n\nShare the database with your Notion integration, then copy the database ID into `notionDatabaseId`.\n\nFill in `accountIds` with your on-budget account IDs from Workflow 00 (checking + all credit cards you track in Actual).\n\n---\n\n## Step 6: Test and Activate\n\nTest in this order — manual trigger each one before activating:\n\n| # | Workflow | What to verify |\n|---|---|---|\n| 00 | Discovery | Output shows your accounts and categories with IDs |\n| 03 | Categorizer | Uncategorized transactions get categories applied |\n| 01 | Briefing | Telegram message arrives with budget summary |\n| 02 | Auto-Fund | Categories get funded (run on a test basis — check Actual after) |\n| 04 | Paycheck | Message arrives; paycheck detected if a deposit exists this week |\n| 05 | Rule Digest | Notion entry created (if using); Telegram message sent |\n\nOnce a workflow tests successfully, toggle it **Active**. The schedule takes over from there.\n\n---\n\n## Removing Notion from Workflow 05\n\n### Option A — Disable the nodes (5 minutes)\n\nThe Telegram digest still runs in full — you just won't get Notion logging.\n\n1. Import Workflow 05 as normal\n2. In the workflow canvas, find these two nodes and **disable** each one (right-click → Disable):\n   - `Get Rules Memory`\n   - `Create Notion Entry`\n3. The workflow routes around them automatically via the existing `If` node\n\n---\n\n### Option B — Remove the Notion nodes entirely (10 minutes)\n\n1. Import Workflow 05\n2. Delete these nodes from the canvas:\n   - `Get Rules Memory`\n   - `Create Notion Entry`\n3. Rewire the connections:\n   - Connect `Detect Patterns` → `Ask Claude`\n   - Connect `Parse Suggestions` → `Build Telegram Digest`\n\n---\n\n### Option C — Replace Notion with another logging destination\n\nSwap the `Create Notion Entry` node for any n8n-compatible node:\n- **Google Sheets** — append row node\n- **Airtable** — create record node\n- **Plain text file** — Write Binary File node to a mounted volume\n- **n8n static data** — built-in key-value store (no external service)\n\nThe data shape coming out of `Parse Suggestions` stays the same regardless of destination.\n\n---\n\n## Swapping AI Providers\n\nThe workflows ship configured for Anthropic Claude (`claude-haiku-4-5` — fast and cheap).\n\n### Option 1 — OpenRouter (use any model)\n\nSingle API key, access to Claude, GPT-4o, Gemini, Mistral, and more.\n\n**Credential:**\n- Type: `Custom Auth`\n- Name: `Anthropic API` ← use this exact name\n- JSON:\n```json\n{\n  \"headers\": {\n    \"Authorization\": \"Bearer sk-or-...\",\n    \"HTTP-Referer\": \"https:\u002F\u002Fgithub.com\u002Fhail2victors\u002Fn8n-Actual-Automation\"\n  }\n}\n```\n\n**Ask Claude node change** — update URL and body format in Workflows 01, 03, 05:\n- URL: `https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1\u002Fchat\u002Fcompletions`\n- Body format: OpenAI chat completions (`{\"model\": \"...\", \"messages\": [...]}`)\n\n> Note: Swapping requires a body format change in 3 nodes across 3 workflows — about 20 minutes of work.\n\n### Option 2 — Stay with Anthropic, change the model\n\n| Model | Speed | Cost | Best for |\n|---|---|---|---|\n| `claude-haiku-4-5` | Fastest | ~$0.01\u002F100 tx | Categorization (default) |\n| `claude-sonnet-4-5` | Balanced | ~$0.15\u002F100 tx | Briefing summaries |\n\n---\n\n## Known Limitations & Caveats\n\n### This is not a plug-and-play app\nSetup requires comfort with n8n, Docker, reading error logs, and copying IDs between tools. If you've never used n8n before, budget a few hours for the learning curve.\n\n### Actual Budget version compatibility\nTested against Actual Budget 24.x and the `actual-auto-sync` bridge. If something breaks on a newer version, [open an issue](..\u002F..\u002Fissues).\n\n### Bridge container name\nEvery Config node uses `bridgeUrl: 'http:\u002F\u002Factual-bridge:3788'`. The hostname must match your Docker container name exactly. Update `bridgeUrl` in every Config node if yours differs.\n\n### Importing updated workflows\nWhen importing a new version, **delete the old workflow first** before importing the replacement. Importing alongside an existing workflow causes n8n to rename node names with a number suffix (e.g. `Config + Funding Template1`), silently breaking all expressions that reference that node.\n\n### n8n Cloud execution limits\nWorkflow 02 (Auto-Fund) loops over every category in your funding template. On n8n Cloud plans with execution time limits, a large template may hit those limits. Self-hosted has no such constraint.\n\n### Workflow 02 runs on the 1st regardless of income timing\nIf your paycheck lands after the 1st, the funding runs against your existing balance. Adjust the schedule trigger if needed.\n\n### Workflow 03 — first run flags everything\nThe AI Categorizer has no learned rules on first run. Most transactions will flag for manual review — that's normal. After 2–3 weeks, 90%+ categorize automatically.\n\n### AI categorization accuracy depends on category names\nDescriptive names like `\"Restaurants fast food coffee delivery\"` perform significantly better than `\"Misc\"` or `\"Food\"`. Take 10 minutes to write good category names in your Config node.\n\n### Workflow 05 Notion logging is optional\nIf you don't use Notion, disable those two nodes — the Telegram digest runs unchanged. Adapting to other tools (Joplin, Obsidian, etc.) is possible but outside the scope of this repo.\n\n---\n\n## Troubleshooting\n\n### \"Cannot connect to Actual Budget bridge\"\n- Confirm `bridgeUrl` matches your container name exactly\n- Both n8n and the bridge must be on the same Docker network\n- Check the bridge is running: `docker logs actual-auto-sync`\n\n### No transactions appearing\n- Confirm SimpleFIN bridge has synced: `docker logs actual-auto-sync`\n- New bank connections can take 24–48 hours to populate\n- Manually trigger a sync in Actual Budget to confirm\n\n### \"Bad Request: chat not found\" from Telegram\n- Your chat ID is wrong or missing in the Config node\n- Message `@userinfobot` on Telegram to get your correct chat ID\n- Send your bot `\u002Fstart` before it can message you\n\n### \"Bad Request: chat_id is empty\" from Telegram\n- `telegramChatId` in the Config node is blank or still a placeholder\n- Check for renamed nodes if you imported over an existing workflow without deleting first\n\n### AI categorization is consistently wrong\n- Make category `name` values more descriptive in the Config node\n- Lower `AUTO_APPLY_THRESHOLD` to 0.75 to build rules faster\n- Raise to 0.90+ for more manual review and higher accuracy\n\n### Workflow 05 Notion entries not appearing\n- Confirm your Notion integration has access to the database (Share → Invite integration)\n- Check the database ID is the 32-character hex string with no dashes\n- The Telegram digest still arrives even if Notion logging fails\n\n### Workflow runs fine manually but fails on schedule\n- Confirm the workflow is set to **Active**\n- Verify the schedule trigger shows a valid next run time\n\n---\n\n## Getting Updates\n\nWatch this repo to get notified of new releases — click **Watch → Custom → Releases** in the top right.\n\n**To update a workflow:**\n1. Note your current Config node values (screenshot or text file)\n2. Deactivate the existing workflow in n8n\n3. **Delete the old workflow** — do not import alongside it\n4. Download the new JSON from this repo\n5. Import and re-enter your Config values\n6. Test with manual trigger, then re-activate\n\nYour data in Actual Budget is never affected by workflow updates.\n\n---\n\n## Contributing\n\nFound a bug? Have an improvement? [Open an issue](..\u002F..\u002Fissues) or submit a pull request. All contributions welcome.\n\nIf this saved you time, a ⭐ on the repo is appreciated and helps others find it.\n\n---\n\n## License\n\nMIT — free to use, modify, and share. See [LICENSE](LICENSE) for details.\n\n---\n\n*n8n Personal Finance Automation Bundle v1.0*\n*Compatible with: n8n 1.x, Actual Budget 24.x+*","该项目提供了一套针对Actual Budget的n8n工作流，实现了AI交易分类、自动资金分配和通过Telegram发送每周预算简报等功能。其核心功能包括基于人工智能的三层次交易分类器、每月自动为预算类别注资以及定期财务摘要生成。技术上，项目利用了JavaScript语言编写，并依赖于n8n平台来执行自动化任务，同时支持与Anthropic API集成以增强AI处理能力。适用于希望提高个人财务管理效率，尤其是那些使用Actual Budget进行日常记账并对自动化工具感兴趣的人群。此外，它还提供了详细的安装指南，确保用户可以顺利地在本地或云环境中部署这些自动化流程。",2,"2026-06-11 02:51:12","CREATED_QUERY"]