replyt.|docs
Back to app →

Webhooks

Replyt can notify any external URL when new mentions are found — compatible with Zapier, Make, and custom backends.

What webhooks do

After the daily scan inserts new mentions for a project, Replyt sends a POST request to every active webhook configured for that project. The payload contains the full list of new mentions found in that run.

Use webhooks to:

  • Get a Slack or Discord notification when a high-intent thread appears
  • Push mentions into a CRM, Notion database, or Airtable
  • Trigger a custom automation in Make or Zapier
  • Send an SMS alert when a competitor mention is found

Creating a webhook

Use the REST API to create, list, and delete webhooks. All requests require authentication (your logged-in session cookie or a Bearer token).

Create

POST /api/webhooks
Content-Type: application/json

{
  "url": "https://hooks.zapier.com/hooks/catch/12345/abcdef",
  "label": "Zapier — Slack alert",
  "project_id": "your-project-uuid",  // optional — omit to receive all projects
  "secret": "your-signing-secret"      // optional — for HMAC verification
}

List

GET /api/webhooks

Delete

DELETE /api/webhooks/:id

Toggle active

PATCH /api/webhooks/:id
Content-Type: application/json

{ "is_active": false }
💡Omit project_id to receive events from all your projects in one webhook. Or create one webhook per project if you need per-project routing.

Payload format

The webhook body is a JSON object sent with Content-Type: application/json:

{
  "event": "new_mentions",
  "project_id": "550e8400-e29b-41d4-a716-446655440000",
  "timestamp": "2026-04-28T10:05:00.000Z",
  "count": 3,
  "mentions": [
    {
      "title": "How do you track which Reddit comments drive signups?",
      "url": "https://reddit.com/r/indiehackers/comments/abc123/...",
      "channel_type": "reddit",
      "subreddit": "indiehackers",
      "matched_keyword": "track reddit signups",
      "score": 142,
      "relevance_score": 9
    }
  ]
}

Fields

  • event — always "new_mentions" for now.
  • project_id — UUID of the project the mentions belong to.
  • timestamp — ISO 8601 datetime of when the webhook was fired.
  • count — total number of new mentions in this batch.
  • mentions — array of mention objects. Each has title, URL, channel, keyword, score, and relevance score.

HMAC signature verification

If you provide a secret when creating the webhook, Replyt sends a signature header with every request so you can verify the payload wasn't tampered with:

X-Replyt-Signature: sha256=3f8a7b2c...

To verify in Node.js:

import { createHmac } from 'node:crypto'

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

Zapier setup

Zapier's Webhooks by Zapier app makes it easy to receive Replyt events:

  • In Zapier, create a new Zap and choose Webhooks by Zapier → Catch Hook as the trigger.
  • Copy the Zapier webhook URL (starts with https://hooks.zapier.com/...).
  • Create a Replyt webhook via POST /api/webhooks using that URL.
  • Trigger a test scan (or wait for the daily scan) to send a test payload.
  • In Zapier, click "Test trigger" — it should receive the mention data.
  • Add your action (Slack message, Notion page, Gmail, etc.) using the mention fields.
💡In Zapier, use a Filter step to only process mentions where relevance_score is ≥ 8. This way only the highest-intent threads trigger your action.

Make (Integromat) setup

  • In Make, create a new scenario and add a Webhooks → Custom webhook module.
  • Copy the Make webhook URL and create a Replyt webhook with it.
  • Click "Redetermine data structure" in Make, then trigger a scan.
  • Make will auto-detect the JSON structure from the incoming payload.
  • Add downstream modules: Slack, Google Sheets, Airtable, Notion, etc.

Reliability notes

  • Replyt fires each webhook with a 8-second timeout. If your endpoint is slow or unreachable, the webhook is dropped silently (logged in server logs but not retried).
  • Webhooks are fired per-project after each successful batch insert. If a scan finds 0 new mentions, no webhook is sent.
  • Failed deliveries are not retried — ensure your endpoint is stable and returns a 2xx response quickly.
← PREVIOUSBilling & PlansNEXT →FAQ