Notifications

Monitor Reddit
and Send Alerts via Webhook

Point Reddscan at any URL and we POST JSON on every Reddit match — full payload with intent class, fit score, matched keywords, the Reddit URL, and the dashboard URL. Built for developers who want Reddit matches flowing into Zapier, n8n, a CRM, or a custom app. The webhook payload ships the complete match detail because the consumer is code, not a person.

R
Reddscan
··8 min read
TL;DR
Paste a webhook URL into a Reddscan monitor and we POST full-match JSON to that URL on every detection. The payload includes intent class, fit score, matched keywords, the Reddit URL, the Reddscan dashboard URL, and timestamps. Build Zapier zaps, n8n workflows, custom Python / Node receivers — anything that accepts HTTP POST. HMAC-SHA256 signed so you can verify the request came from Reddscan.
Complete payload
every match field included
Webhook consumer is code, not a person
HMAC-signed
every delivery
Verify the request came from Reddscan
$9 Pass
webhook on every plan
No paywall on channel access

Why use webhook for Reddit alerts

Webhook is the only Reddscan notification channel where the consumer is code, not a person. Slack, Discord, Telegram, and email are user-facing — they fire a notification a human triages by clicking through to the Reddscan dashboard. Webhook is the developer integration — your downstream code receives the full match JSON and does whatever you need: writes to a CRM, kicks off an automation, scores against your own ML model, fans out to a custom internal app.

Three common reasons teams choose webhook over the native channels:

  • CRM integration. Pipe buying-intent matches directly into HubSpot, Pipedrive, Attio, Salesforce as a new lead record.
  • Custom automation. Zapier or n8n catches the webhook and chains downstream actions — Slack ping + Notion entry + email to the assigned rep.
  • Custom dashboards or analytics. Store every match in your own database for cohort analysis, conversion attribution, or cross-product reporting.

The JSON payload Reddscan sends

Every match POSTs the same shape to your webhook URL. Content-Type: application/json; signed with X-Reddscan-Signature for verification.

POST · reddscan-webhook-payload.json
{
  "event": "match.created",
  "timestamp": "2026-05-13T14:42:18Z",
  "match": {
    "id": "mch_8f3a2e1c",
    "subreddit": "SaaS",
    "author": "MarketingMagnet",
    "title": "Looking for an alternative to [Tool X]...",
    "url": "https://reddit.com/r/SaaS/comments/...",
    "type": "post",
    "intent": "buying_intent",
    "fit_score": 94,
    "matched_keywords": [
      "alternative to",
      "looking for"
    ],
    "score": 28,
    "num_comments": 11,
    "created_at": "2026-05-13T14:28:04Z"
  },
  "monitor": {
    "id": "mon_7c1d4e9b",
    "name": "SaaS competitor pain"
  },
  "dashboard_url": "https://reddscan.com/dashboard/matches/mch_8f3a2e1c"
}

Field-by-field:

  • event — always match.created for new matches.
  • match.intent — one of buying_intent, pain_point, research, support_question, noise. Paid tiers and 10-Day Pass only; legacy free accounts omit this field.
  • match.fit_score — integer 0-100, AI relevance score against your product. Paid tiers and 10-Day Pass only.
  • match.url — the Reddit post / comment URL.
  • dashboard_url — direct link into the Reddscan dashboard for triage.

How to set it up (3 steps)

  1. Step 1

    Set up a webhook receiver

    Create a Zapier "Catch Webhook" trigger, an n8n Webhook node, or a custom endpoint on your own server (Express / FastAPI / Flask / Next.js API route — anything that accepts HTTP POST). Copy the URL.

  2. Step 2

    Connect the webhook in Reddscan

    In your Reddscan dashboard, open the monitor and paste the URL into Notifications → Webhook. Reddscan generates an HMAC signing secret you'll use to verify requests. Save.

  3. Step 3

    Send a test and parse the payload

    Click Send Test. Your receiver gets the full match JSON within seconds. Parse, route, persist as needed in your downstream code.

Integration examples

Three common ways teams consume the Reddscan webhook. Each route assumes you've already connected the webhook URL inside Reddscan.

Zapier: Reddit match → Slack DM + Notion entry

The no-code path. In Zapier, create a new Zap with Catch Webhook as the trigger. Zapier gives you a webhook URL — paste it into Reddscan. Test the connection; Zapier captures a sample payload. From there, add downstream steps: Filter by match.intent = "buying_intent", Slack: Send DM to the assigned rep with the dashboard URL, Notion: Create Page in your CRM database with the Reddit URL and the rep name. Five minutes end to end, no code.

n8n: self-hosted automation

The self-hosted path. In n8n, add a Webhook node configured for POST + JSON body. Copy its URL into Reddscan. Chain downstream nodes: IF to filter by intent, HTTP Request to write to your CRM, Slack to ping the team, Postgres / MySQL to persist the match in your own database for analytics. n8n is the right choice if you need the automation to run on your own infrastructure rather than Zapier's.

Python Flask: custom receiver

The developer path. Spin up a small Flask app to receive the webhook, verify the signature, and dispatch to your downstream code. Minimal example:

reddscan_webhook_receiver.py
import hashlib
import hmac
import os

from flask import Flask, request, abort

app = Flask(__name__)

# the signing secret Reddscan shows in your webhook settings
WEBHOOK_SECRET = os.environ['REDDSCAN_WEBHOOK_SECRET']


def verify_signature(raw_body, signature_header):
    """
        verify the HMAC-SHA256 signature on the incoming request
    """

    expected = hmac.new(
        key = WEBHOOK_SECRET.encode(),
        msg = raw_body,
        digestmod = hashlib.sha256
    ).hexdigest()

    return hmac.compare_digest(expected, signature_header)


@app.route('/reddscan/webhook', methods=['POST'])
def reddscan_webhook():

    signature = request.headers.get('X-Reddscan-Signature', '')
    raw_body = request.get_data()

    if not verify_signature(raw_body, signature):
        abort(401, 'invalid signature')

    payload = request.get_json()

    if payload['event'] != 'match.created':
        return ('', 204)

    match = payload['match']

    # only act on buying-intent matches
    if match.get('intent') == 'buying_intent':

        # write to your CRM, send a DM, kick off automation -- whatever
        print(f"new buying-intent match in r/{match['subreddit']}: {match['url']}")

    return ('', 200)


if __name__ == '__main__':
    app.run(port=5000)

Three things to note: the signature verification rejects spoofed requests, the match.created event filter ignores any non-match events Reddscan adds later, and the intent filter shows the pattern for routing only the high-value matches into your downstream code.

Tips for webhook reliability

  • Always verify the signature. Without HMAC verification, anyone who knows your webhook URL can POST fake payloads. The verification check is one function and a few lines — no excuse to skip it.
  • Respond fast, dispatch async. Return 200 immediately after parsing the payload, then dispatch the heavy work (DB writes, CRM API calls, Slack pings) to a background queue. Reddscan retries on slow / failed responses; respond fast to avoid duplicate deliveries.
  • Filter on intent class on your side. Reddscan sends every match the monitor catches. If your downstream code only cares about buying-intent posts, filter on match.intent before doing the expensive work.
  • Log every delivery. Reddscan's dashboard shows delivery status, but logging on your side helps diagnose downstream failures (CRM API rate limits, DB outages, etc.) independently.

Other notification channels

Webhook is one of five channels Reddscan supports — all available on every plan including the $9 10-Day Pass.

FAQ

Keep reading

Got a question in mind?

Reach out to us, and we will answer you as fast as we can.

Contact Us

Ready to turn Reddit into your best growth channel?

Start finding high-intent buyers today. Grab a $9 10-Day Pass and try every Starter feature with no subscription commitment.

10-Day Pass unlocks every Starter feature