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
- Go to Settings → Integrations and paste your endpoint URL.
- Select which events to subscribe to (
post.publishedand/orpost.failed). - Click Add webhook. Copy the secret that appears — it is shown only once.
- 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.
- In Zapier, create a new Zap. Choose "Webhooks by Zapier" as the trigger.
- Select Catch Hook. Copy the provided webhook URL.
- Paste that URL into Settings → Integrations in SocialMate.
- Publish a test post in SocialMate to send a sample payload to Zapier.
- Zapier will detect the fields automatically. Add any action step — Slack, Google Sheets, Notion, email, etc.
Connecting to Make (Integromat)
- In Make, create a new scenario. Add a Webhooks module.
- Select Custom webhook. Copy the generated URL.
- Paste that URL into Settings → Integrations in SocialMate.
- Publish a post — Make will parse the JSON payload and show you all available fields.
- Chain any subsequent Make modules to automate your workflow.
Connecting to n8n
- In n8n, add a Webhook node as the trigger. Set method to POST.
- Copy the webhook URL n8n provides (Production or Test URL).
- Paste it into Settings → Integrations in SocialMate.
- Publish a test post — n8n receives the payload and shows the parsed JSON.
- 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.
