ClimbAI
Integrations

Webhook (Zapier, Make, n8n, custom)

Receive every finished article as a signed JSON webhook — exact payload, headers, signature verification, and a Zapier walkthrough.

Updated 2026-09-13

For any site without a native integration, Climb AI delivers each finished article as one signed HTTPS POST to a URL you control — as HTML, Markdown and plain fields, so a Zapier zap, a Make scenario, an n8n workflow, or your own route can each take what they need.

  1. 1
    Create an endpoint
    A Zapier "Catch Hook" trigger, a Make/n8n webhook trigger, or a route on your own site — public HTTPS only; Climb AI rejects http:// and internal/private hosts.
  2. 2
    Add it in Climb AI
    In site setup, choose Webhook and paste the URL. Leave the secret blank to have one generated (shown once, starts with whsec_), or paste your own.
  3. 3
    Verify with a ping
    Climb AI sends a signed ping event and requires a 2xx response before saving the connection.

What is sent

HeaderValue
Content-Typeapplication/json
X-ClimbAI-Eventarticle.published (or ping for the verification test)
X-ClimbAI-DeliveryA stable ID per article — art_<articleId> — so you can dedupe retries
X-ClimbAI-Signaturet=<unix timestamp>,v1=<HMAC-SHA256 hex digest>
{
  "id": "art_66f1c2...",
  "event": "article.published",
  "createdAt": "2026-09-13T10:15:00.000Z",
  "data": {
    "id": "66f1c2...",
    "title": "How to Choose a Climbing Harness",
    "slug": "how-to-choose-a-climbing-harness",
    "html": "<h1>...</h1><p>...</p>",
    "markdown": "# How to Choose a Climbing Harness\n\n...",
    "excerpt": "A quick guide to fit, weight and gear loops.",
    "seo": { "metaTitle": "...", "metaDescription": "...", "focusKeyword": "climbing harness" },
    "featuredImageUrl": "https://.../featured.webp",
    "ogImageUrl": "https://.../og.webp",
    "scheduledFor": null,
    "website": { "id": "...", "url": "https://example.com", "name": "Example Co" }
  }
}
article.published body
function verify(secret, rawBody, header) {
  const { t, v1 } = Object.fromEntries(header.split(',').map(kv => kv.split('=')));
  if (Math.abs(Date.now() / 1000 - t) > 300) return false; // 5-min tolerance
  const expected = require('crypto').createHmac('sha256', secret).update(`${t}.${rawBody}`).digest('hex');
  const a = Buffer.from(expected, 'hex'), b = Buffer.from(v1, 'hex');
  return a.length === b.length && require('crypto').timingSafeEqual(a, b);
}
Verify in Node.js (same scheme as Stripe)
Verify against the raw request body, before any JSON parsing re-serializes it — re-stringifying changes whitespace and breaks the signature check.

What to return

Return a 2xx status within 15 seconds. Optionally reply with { "url": "https://yoursite.com/the-post" } if you know the live URL — Climb AI records it as the article's published URL; any other 2xx body is fine, it just won't know the URL.

Redirects are treated as failures (not followed). A failing delivery retries up to 3 times with exponential backoff starting at 5 seconds; if all attempts fail, the article is marked "Publishing Failed" with the reason shown in the UI.

Zapier Catch Hook walkthrough

  1. 1
    Create a Zap
    Choose Webhooks by Zapier as the trigger, event Catch Hook.
  2. 2
    Copy the URL
    Paste Zapier's generated webhook URL into Climb AI's Webhook integration setup.
  3. 3
    Test and build
    Trigger a test send from Climb AI; Zapier captures the JSON as sample data you can map into the rest of the Zap using data.html, data.markdown, or the SEO fields.

Frequently asked questions

Only for articles on a site connected via Webhook, at their scheduled publish date — the same moment a native integration would publish.

Related
  • Export articles (HTML, Markdown, JSON) Download any article as HTML, Markdown or JSON straight from the editor — the JSON is the same object your webhook receives.
  • Connect your site What each onboarding step asks for, what gets auto-filled, and where to pick a publishing platform.
  • Notifications Which events notify you in-app or by email, and how to turn each category on or off.
Ready to try it on your own site?

5-day free trial, nothing charged until day 6, 30-day money-back after that.

5-day free trial · 30-day money-back · price locked for life

Still stuck? hello@climbai.io

Try Now For $0.00