Misar IO Docs
Misar.BlogFeatures

Integrations

Connect MisarBlog to n8n, Zapier, Make, and any HTTP endpoint using outbound article webhooks.

Overview

MisarBlog fires outbound webhooks for every article event (article.published, article.updated, article.deleted). Configure a single HTTPS URL in your dashboard and route events to any platform.


n8n

Create a Webhook Trigger

In n8n, create a new workflow and add a Webhook trigger node. Set the HTTP method to POST.

Copy the webhook URL

Copy the unique webhook URL n8n provides and activate the trigger.

Paste into MisarBlog

Go to misar.blog/dashboard/integrations, paste the URL into the Webhook URL field, and click Save.

Add downstream nodes

Connect nodes to post to Slack, update a Notion database, schedule Buffer posts, and more.

Route by event type

Add an IF node that checks {{ $json.event }} to handle article.published, article.updated, and article.deleted differently in the same workflow.

Every request includes the X-Webhook-Event header with the event name (e.g. article.published). Use it in n8n's Header Auth or IF node conditions for instant routing without parsing the body.


Zapier

Create a new Zap

In Zapier, create a new Zap and choose Webhooks by Zapier as the trigger app.

Select "Catch Hook"

Set the trigger event to Catch Hook and click Continue.

Copy the webhook URL

Copy the unique webhook URL Zapier generates.

Paste into MisarBlog

Go to misar.blog/dashboard/integrations, paste the URL, and click Save.

Send a test payload

Publish a test article to send a live payload to Zapier. Zapier will detect the fields automatically.

Set up your action

Use article fields (title, slug, tags, canonical_url) in your Zap action steps and turn the Zap on.

Common Zap ideas:

Post new articles to a Slack channel
Add articles to a Notion content calendar
Schedule Buffer posts from canonical_url
Add reader digest emails via Mailchimp on article.published
Log article updates to an Airtable base

Make (formerly Integromat)

Add a Webhook module

In Make, create a new scenario and add the Webhooks → Custom webhook module as the trigger.

Copy the webhook URL

Click Add to create a new webhook and copy the URL Make provides.

Paste into MisarBlog

Go to misar.blog/dashboard/integrations, paste the URL, and click Save.

Determine data structure

Publish a test article. Make will auto-detect the payload structure from the received webhook — click Re-determine data structure if needed.

Add downstream modules

Chain modules to update a Google Sheet, create Airtable records, or post to social platforms.


Custom HTTP Endpoint

Any server that accepts HTTPS POST requests with a JSON body works. See the Webhook Reference for the full payload schema.

import { type NextRequest, NextResponse } from "next/server";

interface WebhookPayload {
  event: "article.published" | "article.updated" | "article.deleted";
  timestamp: string;
  article: {
    id: string;
    slug: string;
    title: string;
    excerpt: string | null;
    content_html: string | null;
    tags: string[] | null;
    published_at: string | null;
    updated_at: string | null;
    canonical_url: string | null;
  };
  author: {
    username: string;
    display_name: string | null;
  };
}

export async function POST(req: NextRequest) {
  const event = req.headers.get("x-webhook-event");
  const payload = (await req.json()) as WebhookPayload;

  switch (event) {
    case "article.published":
      // sync to your CMS, notify subscribers, etc.
      console.log("New article:", payload.article.title);
      break;
    case "article.updated":
      console.log("Article updated:", payload.article.slug);
      break;
    case "article.deleted":
      console.log("Article removed:", payload.article.id);
      break;
  }

  return NextResponse.json({ ok: true }); // respond within 10 s
}
from fastapi import FastAPI, Request

app = FastAPI()

@app.post("/webhook")
async def receive_webhook(request: Request):
    event = request.headers.get("x-webhook-event")
    payload = await request.json()

    if event == "article.published":
        print("New article:", payload["article"]["title"])
    elif event == "article.updated":
        print("Updated:", payload["article"]["slug"])
    elif event == "article.deleted":
        print("Deleted:", payload["article"]["id"])

    return {"ok": True}

Supported Platforms

n8n (self-hosted or cloud)
Zapier
Make (Integromat)
Any HTTPS endpoint (Next.js, Express, FastAPI, Laravel, etc.)