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.
{ "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— alwaysmatch.createdfor new matches.match.intent— one ofbuying_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)
- 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.
- 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.
- 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:
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.intentbefore 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.
Monitor Reddit and Get Slack Alerts in Real Time
Drop a Slack webhook URL into Reddscan; matches arrive as styled attachments.
Monitor Reddit and Get Discord Alerts in Real Time
Drop a Discord webhook URL into Reddscan; matches arrive as rich embeds.
Monitor Reddit and Get Telegram Alerts in Real Time
Pair the Reddscan bot once; matches push to your phone within minutes.
Monitor Reddit and Get Email Alerts in Real Time
The default Reddscan channel. Subject lines carry intent + subreddit.
FAQ
Keep reading
What is Reddscan?
The full walkthrough — AI intent scoring, the five channels, how it compares.
Reddit API Alternatives in 2026
The underlying infrastructure question — Reddscan handles the Reddit-API layer so you do not have to.
How to Find Customers on Reddit
The flagship lead-generation playbook.