Webhook payload reference, leadsFeed endpoint, and code samples for Zapier, Make, and direct API.
When a webhook URL is set in your Integrations tab, Skathi POSTs a JSON payload for every new Alert and for every comment detected as a lead. Each request is signed with HMAC-SHA256 in the X-Skathi-Signature header using your webhook secret. Failed deliveries (non-2xx) are retried up to 3 times with exponential backoff. Every delivery is logged.
Headers:
Content-Type: application/json X-Skathi-Event: alert.created | lead.detected X-Skathi-Signature: <hex HMAC-SHA256 of body>
{
"event": "alert.created",
"client_email": "you@example.com",
"channel_id": "UCxxxxxxx",
"channel_name": "Your Channel",
"alert": {
"id": "alert_id",
"type": "sales_opportunity | business_contact | crisis | unanswered_vip | new_superfan | video_spike | video_drop",
"severity": "info | important | urgent",
"title": "3 viewers asked about pricing",
"summary": "Three comments with buying intent in the last 24 hours.",
"video_id": "dQw4w9WgXcQ",
"video_title": "How I Built My SaaS",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
},
"sent_at": "2026-10-08T17:35:00.000Z"
}{
"event": "lead.detected",
"client_email": "you@example.com",
"channel_id": "UCxxxxxxx",
"channel_name": "Your Channel",
"lead": {
"youtube_comment_id": "Ugwxxxxxxx",
"author_name": "Sarah Chen",
"author_channel_id": "UCyyyyyyy",
"text": "How much does it cost? My team needs this.",
"published_at": "2026-10-08T15:20:00.000Z",
"sentiment": 0.42,
"video_id": "dQw4w9WgXcQ",
"video_title": "How I Built My SaaS",
"comment_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ&lc=Ugwxxxxxxx",
"intent_keywords": ["price", "how much"]
},
"sent_at": "2026-10-08T17:35:00.000Z"
}Compute HMAC-SHA256 of the raw request body using your webhook secret, then compare to the X-Skathi-Signature header (hex, case-insensitive).
import crypto from 'crypto';
const sig = crypto.createHmac('sha256', WEBHOOK_SECRET)
.update(rawBody)
.digest('hex');
const valid = sig === req.headers['x-skathi-signature'];Pull your leads as JSON or CSV without Zapier. Returns lead comments (is_lead or category=lead_intent) from the last 30 days. Generate an API token in the Integrations tab.
GET /functions/leadsFeed?token=YOUR_API_TOKEN&format=json GET /functions/leadsFeed?token=YOUR_API_TOKEN&format=csv
JSON response:
{
"leads": [
{
"date": "2026-10-08",
"author": "Sarah Chen",
"author_channel_url": "https://www.youtube.com/channel/UCyyyyyyy",
"comment": "How much does it cost?",
"video_title": "How I Built My SaaS",
"video_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"comment_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ&lc=Ugwxxx",
"intent_keywords": "price; how much",
"sentiment": "0.42",
"status": "new",
"replied": "no",
"reply_text": "",
"lead_stage": "new",
"lead_note": "",
"lead_value": ""
}
],
"count": 1
}CSV columns:
date, author, author_channel_url, comment, video_title, video_url, comment_url, intent_keywords, sentiment, status, replied, reply_text, lead_stage, lead_note, lead_value
Create a Zap with "Catch Hook" as the trigger. Paste the Zapier webhook URL into your Integrations tab and click "Send test event". Zapier will capture the payload. Map fields in your action step (e.g. HubSpot Create Contact):
lead.author_name -> Contact First Name lead.text -> Note lead.comment_url -> Note URL lead.intent_keywords -> Lead Source lead.video_title -> Deal Title
Create a Make scenario with "Custom webhook" as the first module. Paste the Make webhook URL into your Integrations tab and click "Send test event". Make will capture the payload. Map fields in your Pipedrive module:
lead.author_name -> Person name lead.text -> Note content lead.video_title -> Deal title lead.intent_keywords -> Label
Set a forward email (e.g. a sales inbox) and a Slack webhook URL in the Integrations tab. Urgent alerts are forwarded to both: the email uses the standard Skathi ALERT template; the Slack message is a 3-line post (title, summary, link).
We use only essential cookies needed for the app to work. Privacy Policy.