10 Obsidian Webhook Automation Recipes
Copy-paste webhook recipes for Zapier, Make, n8n, IFTTT with JSON payloads for 5000+ apps
Your Obsidian vault doesn't have to be an isolated island. With webhook automation, you can pipe data from email, Slack, GitHub, RSS feeds, calendar events, and 5000+ other apps directly into your notes — no manual copy-paste required.
This guide gives you 10 ready-to-use webhook recipes for popular automation platforms. Each recipe includes the exact JSON payload format and explains where the data lands in your vault.
How Webhook Automation Works
Here's the flow:
- 1. External service (Zapier, Make, IFTTT, etc.) detects a trigger event
- 2. Webhook POST sends JSON data to your webhook URL
- 3. Obsidian Webhooks Server receives the payload
- 4. Server-Sent Events (SSE) push data to the plugin
- 5. Plugin creates/updates files in your vault
The server parses JSON into YAML frontmatter and Markdown content. You control the filename, folder, and whether to create a new file, append to an existing one, or overwrite.
Setup: For installation and configuration details, see the setup guide or the GitHub repository.
The 10 Recipes
Save Important Emails as Notes
Creates a note in your vault whenever you star/flag an email.
Platform: Zapier
Trigger: Gmail — New Starred Email
Action: Webhooks by Zapier — POST
Destination: inbox/emails/
{
"filename": "Email - {{subject}} - {{date}}",
"folder": "inbox/emails",
"mode": "create",
"content": "# {{subject}}\n\nFrom: {{from_email}}\nDate: {{date}}\n\n{{body_plain}}",
"frontmatter": {
"date": "{{date}}",
"from": "{{from_email}}",
"tags": ["email", "inbox"]
}
}
Use case: Capture important client emails, newsletter highlights, or receipts without switching contexts.
GitHub Issues to Project Tracking
Creates a note for every new GitHub issue in your repository.
Platform: GitHub native webhook (or Zapier)
Trigger: GitHub — New Issue Created
Action: POST to webhook URL
Destination: projects/github-issues/
{
"filename": "Issue #{{issue_number}} - {{issue_title}}",
"folder": "projects/github-issues",
"mode": "create",
"content": "# {{issue_title}}\n\n**Status:** {{state}}\n**Labels:** {{labels}}\n**Assignee:** {{assignee}}\n\n## Description\n{{body}}\n\n**URL:** {{html_url}}",
"frontmatter": {
"date": "{{created_at}}",
"status": "{{state}}",
"repo": "{{repository_name}}",
"issue_number": {{issue_number}},
"tags": ["github", "issue"]
}
}
Use case: Track feature requests, bugs, or sprint backlog items in Obsidian alongside your project notes.
Daily Weather Briefing
Appends today's weather forecast to your daily note.
Platform: IFTTT
Trigger: Weather Underground — Today's Weather Report
Action: Webhooks — Make a Web Request
Destination: daily-notes/{{today}}.md (append mode)
{
"filename": "2026-02-26",
"folder": "daily-notes",
"mode": "append",
"content": "\n## Weather\n- **Temp:** {{temperature}}°C\n- **Condition:** {{condition}}\n- **Precipitation:** {{precip_chance}}%\n- **Wind:** {{wind_speed}} km/h"
}
Use case: Add weather context to your daily planning. Useful for outdoor work, travel, or fitness tracking.
Slack Saved Messages to Reading List
Saves Slack messages you star/bookmark to a reading list in Obsidian.
Platform: Zapier
Trigger: Slack — New Saved Message
Action: Webhooks by Zapier — POST
Destination: inbox/slack/
{
"filename": "Slack - {{channel}} - {{timestamp}}",
"folder": "inbox/slack",
"mode": "create",
"content": "# {{channel}}\n\n**From:** {{user_name}}\n**Date:** {{timestamp}}\n\n{{message_text}}\n\n**Link:** {{message_link}}",
"frontmatter": {
"date": "{{timestamp}}",
"channel": "{{channel}}",
"author": "{{user_name}}",
"tags": ["slack", "reference"]
}
}
Use case: Archive important team discussions, technical explanations, or decision logs.
RSS Feed Articles to Reading List
Creates a note for each new article from your favorite RSS feeds.
Platform: n8n
Trigger: RSS Feed Trigger (poll interval: 1 hour)
Action: HTTP Request — POST webhook
Destination: reading-list/
{
"filename": "Article - {{title}}",
"folder": "reading-list",
"mode": "create",
"content": "# {{title}}\n\n**Source:** {{feed_name}}\n**Author:** {{author}}\n**Published:** {{pub_date}}\n\n{{description}}\n\n**Read article:** [Link]({{link}})",
"frontmatter": {
"date": "{{pub_date}}",
"source": "{{feed_name}}",
"url": "{{link}}",
"tags": ["article", "reading-list"]
}
}
Use case: Aggregate long reads from multiple sources (blogs, newsletters, news sites) in one place.
Google Calendar Events to Daily Notes
Adds new calendar events to your daily note automatically.
Platform: Make (Integromat)
Trigger: Google Calendar — Watch Events (webhook)
Action: HTTP — Make a Request
Destination: daily-notes/{{event_date}}.md (append mode)
{
"filename": "2026-02-26",
"folder": "daily-notes",
"mode": "append",
"content": "\n## Event: {{event_summary}}\n- **Time:** {{start_time}} - {{end_time}}\n- **Location:** {{location}}\n- **Attendees:** {{attendees}}\n- **Description:** {{description}}"
}
Use case: Sync meetings, deadlines, and appointments to your Obsidian planning system.
Twitter/X Bookmarks to Research Notes
Saves bookmarked tweets as individual notes.
Platform: Zapier
Trigger: Twitter — New Bookmarked Tweet
Action: Webhooks by Zapier — POST
Destination: research/bookmarks/
{
"filename": "Tweet - @{{username}} - {{tweet_id}}",
"folder": "research/bookmarks",
"mode": "create",
"content": "# @{{username}}\n\n**Date:** {{created_at}}\n\n{{tweet_text}}\n\n**Link:** {{tweet_url}}",
"frontmatter": {
"date": "{{created_at}}",
"author": "@{{username}}",
"url": "{{tweet_url}}",
"tags": ["twitter", "bookmark"]
}
}
Use case: Curate insights, threads, or research material from Twitter/X without losing track of sources.
Stripe Payment Notifications
Logs successful payments from Stripe to a client tracking note.
Platform: Stripe native webhook (or Zapier)
Trigger: Stripe — charge.succeeded event
Action: POST to webhook URL
Destination: clients/payments/
{
"filename": "Payment - {{customer_name}} - {{invoice_id}}",
"folder": "clients/payments",
"mode": "create",
"content": "# Payment Received\n\n**Customer:** {{customer_name}}\n**Email:** {{customer_email}}\n**Amount:** ${{amount}} {{currency}}\n**Invoice:** {{invoice_id}}\n**Date:** {{created_at}}\n\n**Status:** {{status}}",
"frontmatter": {
"date": "{{created_at}}",
"customer": "{{customer_name}}",
"amount": {{amount}},
"currency": "{{currency}}",
"invoice_id": "{{invoice_id}}",
"tags": ["payment", "stripe", "client"]
}
}
Use case: Maintain a payment ledger in Obsidian alongside client project notes and invoices.
AI Agent Output Logging
Captures responses from Claude, ChatGPT, or custom AI agents for later review.
Platform: Custom script (Python, Node.js, etc.)
Trigger: AI API response received
Action: POST JSON to webhook
Destination: ai-logs/{{model}}/
{
"filename": "AI Log - {{timestamp}} - {{model}}",
"folder": "ai-logs/{{model}}",
"mode": "create",
"content": "# AI Interaction\n\n**Model:** {{model}}\n**Timestamp:** {{timestamp}}\n**Tokens:** {{tokens_used}}\n\n## Prompt\n{{prompt}}\n\n## Response\n{{response}}",
"frontmatter": {
"date": "{{timestamp}}",
"model": "{{model}}",
"tokens": {{tokens_used}},
"cost": {{cost_usd}},
"tags": ["ai", "log"]
}
}
Use case: Archive AI-assisted research, coding sessions, or writing drafts for auditing and refinement. See also: Connect AI Agents to Obsidian.
Voice Notes via Google Assistant
Creates a quick-capture note from a voice command to Google Assistant.
Platform: IFTTT
Trigger: Google Assistant — Say a phrase with a text ingredient ("Add note $")
Action: Webhooks — Make a Web Request
Destination: quick-capture/
{
"filename": "Voice Note - {{timestamp}}",
"folder": "quick-capture",
"mode": "create",
"content": "{{TextField}}\n\n---\nCaptured: {{CreatedAt}}",
"frontmatter": {
"date": "{{CreatedAt}}",
"source": "google-assistant",
"tags": ["voice", "inbox"]
}
}
Use case: Capture ideas, reminders, or meeting notes hands-free while driving, cooking, or walking.
Tips for Building Your Own Recipes
1. Choosing the Right Mode
- •
create— New file for each trigger (emails, issues, bookmarks) - •
append— Add to existing file (daily notes, logs, running lists) - •
overwrite— Replace file content (dashboards, status pages)
2. Formatting JSON Payloads
- • Use
\nfor line breaks in thecontentfield - • Wrap Markdown headings in content:
"# Title\n\nBody text" - • Include
frontmatterfor searchability and metadata queries
3. Folder Organization Strategies
- • By source:
inbox/slack/,inbox/email/,inbox/github/ - • By project:
projects/website/,projects/app/ - • By type:
reading-list/,meeting-notes/,quick-capture/
4. Dynamic Filenames
- • Use timestamps:
"Note - {{timestamp}}" - • Include key identifiers:
"Issue #{{number}} - {{title}}" - • Avoid special characters:
/ : * ? < > |
5. Testing Webhooks
Use curl to test payloads before setting up automation:
curl -X POST https://your-webhook-url.com/webhook \
-H "Content-Type: application/json" \
-d '{
"filename": "Test Note",
"folder": "inbox",
"mode": "create",
"content": "# Test\n\nThis is a test."
}'
Getting Started
- 1. Install the server: Follow the setup guide to self-host or use the hosted version.
- 2. Install the plugin: Search "Webhooks Server" in Obsidian Community Plugins.
- 3. Pick a recipe: Start with email or RSS — they're the easiest to test.
- 4. Customize: Adjust folder paths, filename patterns, and frontmatter fields to match your vault structure.
Webhook automation turns Obsidian into a universal inbox for your digital life. Whether you're tracking GitHub issues, archiving Slack conversations, or logging AI interactions, these recipes give you a starting point to build your own automation workflows.
Frequently Asked Questions
Yes. Each platform sends webhooks to the same server endpoint using your vault key. You can have Zapier handling emails, Make managing calendar events, and n8n processing RSS feeds — all writing to the same vault simultaneously without conflicts.
The server validates JSON structure before queuing. Malformed payloads return a 400 error with details about what's wrong (missing required fields, invalid JSON syntax). The external service receives the error immediately and can retry with corrected data.
The self-hosted version has no limits beyond your server capacity (typical VPS handles 1000+ per hour). The hosted version currently has no rate limits, though fair-use policies may apply for extreme usage (10,000+ webhooks per day).
Yes, but transformation happens in your automation platform (Zapier, Make, n8n), not in the webhook server. Use their built-in filters and data mappers to format JSON before sending. The server accepts and delivers exactly what you POST.
Yes. The server queues webhooks regardless of which device you're using. Mobile uses polling instead of SSE, so delivery takes 30-60 seconds instead of being instant. All recipes work identically once data reaches the plugin.
Other Guides
How It Works
Architecture, setup, integration examples.
8 min readHow to Receive External Data in Obsidian
Complete guide to sending data to Obsidian.
12 min readSelf-Hosted Obsidian Webhooks: Setup Guide
Step-by-step tutorial with Docker.
18 min readConnect AI Agents to Obsidian
Integrate Claude, GPT, and custom agents.
14 min readREST API vs Webhooks
When to use pull vs push architecture.
12 min readInstall Obsidian Webhooks
Download the latest release of the plugin and server.
Download →