12 KiB
name, description, compatibility
| name | description | compatibility |
|---|---|---|
| n8n-automation | n8n workflow design and configuration for Chiron system automation. Use when: (1) designing automated workflows, (2) setting up Cron triggers, (3) configuring webhooks, (4) integrating Obsidian with n8n, (5) setting up ntfy notifications. Triggers: n8n, workflow, automation, webhook, cron, schedule. | opencode |
n8n Automation
Design and configure n8n workflows for Chiron productivity system automation.
Chiron n8n Workflows
Workflow 1: Daily Morning Briefing
Trigger: Cron 07:00 (Mon-Fri)
Purpose: Generate morning briefing with calendar events, Basecamp todos, and tasks.
Steps:
- Get calendar events (Proton Calendar or Google Calendar)
- Get Basecamp todos (HTTP Request to Basecamp API)
- Read today's tasks from Obsidian vault
- Format morning briefing
- Write daily note at
~/CODEX/daily/YYYY/MM/DD/YYYY-MM-DD.md - Send ntfy notification: "Morning briefing ready"
n8n Nodes:
- Schedule Trigger (Cron
0 7 * * 1-5) - HTTP Request (Google Calendar API)
- HTTP Request (Basecamp API)
- Read/Write File (Obsidian vault)
- Code (formatting)
- HTTP Request (ntfy)
Output: Daily note created, ntfy notification sent
Workflow 2: Basecamp to Obsidian Sync
Trigger: Webhook from Basecamp
Events: todo_created, todo_completed, comment_created, message_created
Purpose: Log Basecamp activity to Obsidian for reference.
Steps:
- Receive webhook payload
- Extract event type, project, content
- Format activity log entry
- Append to
~/CODEX/01-projects/work/_basecamp-activity.md
n8n Nodes:
- Webhook (triggered by Basecamp)
- Code (extract and format)
- Read/Write File (append to Basecamp activity log)
Output: Activity logged to Obsidian
Workflow 3: Outline Wiki Mirror
Trigger: Cron 22:00 daily
Purpose: Export updated Outline documents to Markdown and save to vault.
Steps:
- Get recently updated documents from Outline API
- For each document:
- Export as Markdown
- Save to
~/CODEX/03-resources/work-wiki/[doc-name].md
- Document sync in daily note
n8n Nodes:
- Schedule Trigger (Cron
0 22 * *) - HTTP Request (Outline API)
- Read/Write File (Obsidian vault)
- Code (loop and format)
Output: Outline docs synced to vault as Markdown
Workflow 4: Claude Code Webhook Handler
Trigger: Webhook at /webhook/chiron
Actions:
notify→ Send ntfy notificationcreate_task→ Create task in Obsidian vaultlog_learning→ Create learning note in vaultsync_basecamp→ Trigger Basecamp sync workflow
Purpose: Allow external systems to trigger Chiron workflows.
Steps:
- Receive webhook payload with action parameter
- Switch on action:
notify: Send ntfy notification with messagecreate_task: Create task intasks/inbox.mdlog_learning: Create learning in00-inbox/learnings/sync_basecamp: Trigger Basecamp sync workflow
- Return success response
n8n Nodes:
- Webhook (manual trigger)
- Code (action routing)
- Read/Write File (Obsidian vault)
- HTTP Request (ntfy)
Output: Action executed, confirmation returned
Workflow 5: Weekly Review Generator
Trigger: Cron Sunday 18:00
Purpose: Generate weekly review from daily notes and send notification.
Steps:
- Read daily notes for the week (Monday-Sunday)
- Collect completed tasks, wins, challenges
- Generate weekly review using template
- Write to
~/CODEX/daily/weekly-reviews/YYYY-W##.md - Send ntfy notification: "Weekly review ready"
n8n Nodes:
- Schedule Trigger (Cron
0 18 * * 0) - Read File (multiple daily notes)
- Code (aggregation)
- Write File (weekly review)
- HTTP Request (ntfy)
Output: Weekly review generated, ntfy notification sent
Workflow 6: Mobile Task Reminders
Trigger: Cron every hour
Purpose: Send due tasks to mobile device via ntfy.
Steps:
- Search Obsidian vault for tasks due today
- Format task list
- Send ntfy notification with task summary
n8n Nodes:
- Schedule Trigger (Cron
0 * * *) - Read File (search tasks)
- Code (format and search)
- HTTP Request (ntfy)
Output: ntfy notification with today's tasks
Workflow Design Guidelines
General Principles
- Minimal dependencies - Each workflow should work independently
- Error handling - Graceful degradation if external services fail
- Logging - Log all actions for debugging
- Idempotency - Workflows should be safe to run multiple times
- Testing - Test manually before enabling Cron triggers
File Operations
Always use absolute paths:
~/CODEX/→/home/username/knowledge/- Expand
~before file operations
File permissions:
- Write operations: Ensure write access to vault
- Read operations: Files should exist or handle gracefully
- Directory creation: Create parent directories if needed
API Integrations
Basecamp API:
- Endpoint:
https://3.basecampapi.com/[account]/projects.json - Authentication: OAuth2 or API token
- Rate limiting: Respect API limits (check headers)
- Error handling: Retry with exponential backoff
Outline API:
- Endpoint: Outline API base URL
- Authentication: API key
- Export format: Markdown
- Filtering: Updated in last 24 hours
Proton Calendar:
- Endpoint: Proton Calendar API
- Authentication: API token
- Time range: Today's events only
- Timezone: Use user's timezone (Europe/Berlin)
ntfy:
- Endpoint:
https://ntfy.sh/[topic] - Authentication: Token or basic auth
- Message format: Plain text or Markdown
- Priority: Default, urgent for time-sensitive notifications
Webhook Configuration
Setup steps:
-
Expose n8n webhook (if self-hosted):
- Domain:
n8n.example.com - Path:
/webhook/chiron - SSL: HTTPS required
- Domain:
-
Configure Basecamp webhooks:
- URL:
https://n8n.example.com/webhook/chiron - Events: todo_created, todo_completed, comment_created, message_created
- Secret: Shared secret for validation
- URL:
-
Security:
- Validate webhook secret
- Rate limit webhook endpoints
- Log all webhook calls
Cron Triggers
Syntax: minute hour day month weekday
Examples:
# Daily at 7 AM, Mon-Fri
0 7 * * 1-5
# Daily at 10 PM
0 22 * * *
# Weekly Sunday at 6 PM
0 18 * * 0
# Hourly
0 * * * *
n8n Cron Node settings:
- Enable: Toggle on/off for testing
- Timezone: Europe/Berlin
- Test run: Manual trigger button
Integration with Chiron Skills
Delegates to:
obsidian-management- File operations for reading/writing vaulttask-management- Task extraction and formatquick-capture- Quick capture for webhook-created tasksdaily-routines- Daily note creation for morning briefings
Delegation rules:
- File operations →
obsidian-management - Task creation →
task-management - Quick capture →
quick-capture - Daily note creation →
daily-routines
Quick Reference
| Action | Workflow | Trigger | Frequency |
|---|---|---|---|
| Morning briefing | Workflow 1 | Cron 07:00 Mon-Fri | |
| Basecamp sync | Workflow 2 | Webhook (on change) | |
| Outline mirror | Workflow 3 | Cron 22:00 daily | |
| Webhook handler | Workflow 4 | Manual (API calls) | |
| Weekly review | Workflow 5 | Cron Sunday 18:00 | |
| Task reminders | Workflow 6 | Cron hourly |
File Paths
Obsidian vault:
~/CODEX/
├── daily/
│ ├── YYYY/
│ │ └── MM/
│ │ └── DD/
│ │ └── YYYY-MM-DD.md # Morning briefings
│ └── weekly-reviews/
│ └── YYYY-W##.md # Weekly reviews
├── 01-projects/work/
│ └── _basecamp-activity.md # Basecamp activity log
├── tasks/
│ └── inbox.md # Webhook-created tasks
└── 00-inbox/learnings/ # Webhook-created learnings
Error Handling
API Failure
- Log error with timestamp
- Use cached data if available
- Send ntfy notification: "API failed, using cache"
- Retry with exponential backoff
File Write Failure
- Log error
- Check disk space
- Check file permissions
- Send ntfy notification: "Failed to write to vault"
Webhook Authentication Failure
- Reject invalid requests (401)
- Log suspicious attempts
- Rate limit source IP
- Send alert notification
Testing
Manual Testing
Before enabling Cron triggers:
-
Test each workflow:
- Manual trigger in n8n UI
- Verify file creation
- Verify API calls
- Check ntfy notifications
-
Integration testing:
- Trigger Basecamp webhook (create todo)
- Verify appears in Obsidian
- Test morning briefing workflow
- Verify daily note created
-
Load testing:
- Test with multiple daily notes
- Verify weekly review aggregation
- Test webhook with concurrent requests
Monitoring
Add monitoring workflows:
- Health check - Verify n8n is running (Cron every 5 min)
- Success rate - Track workflow success/failure (daily summary)
- Error alerts - Send ntfy on critical failures
- Performance - Track workflow execution time
Best Practices
Workflow Design
- Keep workflows simple and focused
- Use environment variables for configuration
- Document dependencies and requirements
- Version control workflow JSON files
API Integration
- Respect rate limits and backoff
- Cache responses when appropriate
- Handle pagination for large datasets
- Use appropriate authentication (OAuth2 vs API keys)
Notifications
- Don't spam with ntfy
- Use appropriate priority (urgent vs default)
- Include actionable information
- Test notification delivery
Security
- Never hardcode API keys in workflow JSON
- Use environment variables or n8n credentials
- Validate webhook secrets
- Rate limit public endpoints
- Log all external access
Example Workflow JSON
{
"name": "Daily Morning Briefing",
"nodes": [
{
"type": "n8n-nodes-base.schedule-trigger",
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 7 * * 1-5"
}
]
}
}
},
{
"type": "n8n-nodes-base.httprequest",
"parameters": {
"method": "GET",
"url": "https://calendar.googleapis.com/v3/calendars/primary/events",
"authentication": "predefinedCredentialType",
"nodeCredentialType": {
"id": "proton-calendar-token"
}
}
},
{
"type": "code",
"parameters": {
"jsCode": "// Format calendar events\nreturn events.map(e => e.summary);\n"
}
},
{
"type": "n8n-nodes-base.writefile",
"parameters": {
"fileName": "/home/username/knowledge/daily/2026/01/27/2026-01-27.md",
"data": "={{ $json.events }}",
"mode": "overwrite"
}
},
{
"type": "n8n-nodes-base.httprequest",
"parameters": {
"method": "POST",
"url": "https://ntfy.sh/chiron-tasks",
"authentication": "predefinedCredentialType",
"nodeCredentialType": {
"id": "ntfy-token"
}
}
}
]
}
Troubleshooting
Workflow Not Triggering
- Check Cron expression syntax
- Verify timezone settings
- Check n8n execution logs
- Test manual trigger
API Rate Limits
- Reduce polling frequency
- Implement caching
- Use batch operations
- Contact provider for higher limits
File Sync Issues
- Check vault directory exists
- Verify file permissions
- Check available disk space
- Verify path format (absolute vs relative)
Resources
references/n8n-workflow-guide.md- Detailed n8n workflow design patternsreferences/api-integration.md- Basecamp, Outline, Proton Calendar API docsreferences/webhook-security.md- Webhook security best practices
Load references when:
- Designing new workflows
- Troubleshooting integration issues
- Setting up monitoring