Integrations

Outbound Webhooks

SocialMate can notify any external URL the moment a post publishes or fails. Connect to Zapier, Make, n8n, Slack, Airtable, Google Sheets — anything that accepts a POST request.

Set up a webhook →

How it works

  1. Go to Settings → Integrations and paste your endpoint URL.
  2. Select which events to subscribe to (post.published and/or post.failed).
  3. Click Add webhook. Copy the secret that appears — it is shown only once.
  4. Every time the event fires, SocialMate sends a signed JSON body to your URL within seconds.

Payload format

The request body is JSON with the following shape:

{
  "event": "post.published",
  "timestamp": "2026-05-22T14:30:00.000Z",
  "payload": {
    "post_id": "550e8400-e29b-41d4-a716-446655440000",
    "content": "Just shipped outbound webhooks in SocialMate...",
    "platforms": ["bluesky", "linkedin"],
    "published_at": "2026-05-22T14:30:00.000Z"
  }
}

For post.failed the same shape is sent with event: "post.failed".

Verifying the signature

Every request includes an X-SocialMate-Signature header. The value is sha256=<hex> where the hex is the HMAC-SHA256 of the raw request body using your webhook secret.

Example verification in Node.js:

import { createHmac } from 'crypto'

function verifySignature(rawBody, secret, signatureHeader) {
  const expected = 'sha256=' + createHmac('sha256', secret)
    .update(rawBody)
    .digest('hex')
  return expected === signatureHeader
}

// In your Express / Next.js / Cloudflare handler:
const raw = await request.text()
const sig = request.headers.get('X-SocialMate-Signature')
if (!verifySignature(raw, process.env.WEBHOOK_SECRET, sig)) {
  return new Response('Unauthorized', { status: 401 })
}
const event = JSON.parse(raw)

Connecting to Zapier

Webhooks by Zapier is available on Zapier's free plan.

  1. In Zapier, create a new Zap. Choose "Webhooks by Zapier" as the trigger.
  2. Select Catch Hook. Copy the provided webhook URL.
  3. Paste that URL into Settings → Integrations in SocialMate.
  4. Publish a test post in SocialMate to send a sample payload to Zapier.
  5. Zapier will detect the fields automatically. Add any action step — Slack, Google Sheets, Notion, email, etc.

Connecting to Make (Integromat)

  1. In Make, create a new scenario. Add a Webhooks module.
  2. Select Custom webhook. Copy the generated URL.
  3. Paste that URL into Settings → Integrations in SocialMate.
  4. Publish a post — Make will parse the JSON payload and show you all available fields.
  5. Chain any subsequent Make modules to automate your workflow.

Connecting to n8n

  1. In n8n, add a Webhook node as the trigger. Set method to POST.
  2. Copy the webhook URL n8n provides (Production or Test URL).
  3. Paste it into Settings → Integrations in SocialMate.
  4. Publish a test post — n8n receives the payload and shows the parsed JSON.
  5. Add downstream nodes: HTTP Request, Airtable, Discord, Slack, or any integration.

Notes

  • Webhook delivery has a 10-second timeout per endpoint.
  • Failures are logged but do not retry automatically — they are fire-and-forget.
  • Webhooks are non-fatal: a failed delivery will never cause your post to fail.
  • You can toggle a webhook on/off from Settings without deleting it.
  • The secret is shown only once at creation time. If lost, delete and re-add the webhook.
Questions? Join the SocialMate Discord or email support.