Obsidian Webhooks
Guides GitHub Log In
EN | RU
← All Guides

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. 1. External service (Zapier, Make, IFTTT, etc.) detects a trigger event
  2. 2. Webhook POST sends JSON data to your webhook URL
  3. 3. Obsidian Webhooks Server receives the payload
  4. 4. Server-Sent Events (SSE) push data to the plugin
  5. 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

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

07

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.

08

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.

09

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.

10

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 \n for line breaks in the content field
  • Wrap Markdown headings in content: "# Title\n\nBody text"
  • Include frontmatter for 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. 1. Install the server: Follow the setup guide to self-host or use the hosted version.
  2. 2. Install the plugin: Search "Webhooks Server" in Obsidian Community Plugins.
  3. 3. Pick a recipe: Start with email or RSS — they're the easiest to test.
  4. 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.