Webhook payload reference

Complete payload schemas for every data type. Use this as a reference when building your receiving endpoint or configuring a downstream system to parse incoming webhook data.

Written By Kevin Lawrie

Last updated About 23 hours ago

General structure

All webhook payloads are delivered as HTTP POST requests with Content-Type: application/json. Every payload includes a timestamp (ISO 8601) and a webhook_name identifying which webhook sent it.


Posts (LinkedIn)

Event: new_post

{ "timestamp": "2025-03-16T12:00:00.000Z", "webhook_name": "Your Webhook Name", "data": [{ "id": "uuid", "content": "Full post text content", "author": { "name": "Jane Smith", "username": "jane-smith-acme", "profile_url": "https://linkedin.com/in/jane-smith-acme", "headline": "VP of Marketing at Acme Co", "company": "Acme Co", "profile_picture": "https://..." }, "engagement": { "likes": 142, "comments": 23, "shares": 8 }, "signal": { "id": "signal-uuid", "name": "Your Signal Name" }, "url": "https://linkedin.com/posts/...", "created_at": "2025-03-16T11:00:00.000Z", "platform": "linkedin" }] } 

Reddit posts

Platform: reddit

Same outer structure as LinkedIn posts. Reddit-specific fields replace LinkedIn fields:

{ "data": [{ "username": "redditor_handle", "text": "Post content", "company_name": "subreddit_name", "like_count": 42, "comments_count": 8, "post_url": "https://www.reddit.com/r/...", "posted_at": "2025-03-16T11:00:00.000Z", "platform": "reddit", "post_urn": "t3_abc123" }] } 

YouTube videos

Platform: youtube

{ "data": [{ "video_id": "dQw4w9WgXcQ", "title": "Video Title", "description": "Full description", "url": "https://www.youtube.com/watch?v=...", "channel": { "name": "Channel Name", "handle": "@channelhandle", "url": "https://www.youtube.com/@channelhandle", "subscribers": 12500, "verified": true }, "engagement": { "views": 125000, "likes": 8500, "comments": 420 }, "video_length": "3:45", "is_sponsored": false, "date_posted": "2025-03-16T10:00:00.000Z", "has_transcript": true, "platform": "youtube" }] } 

Reactions (batched)

Event: batch_reactions_export Delivered in batches of up to 50 reactions per HTTP call.

{ "type": "reactions", "event": "batch_reactions_export", "signal": { "id": "signal-uuid", "name": "Signal Name" }, "batch": { "id": "batch_reactions_1731672000000", "size": 50, "reactions": [{ "reaction_type": "like", "reacted_at": "2025-03-16T11:30:00.000Z", "profile": { "name": "John User", "headline": "Head of Sales at TechCorp", "linkedin_url": "https://linkedin.com/in/...", "profile_picture": "https://...", "urn": "ACoAAA123456" }, "post": { "url": "https://linkedin.com/posts/...", "text": "Full post text", "author": { "name": "Post Author", "username": "post-author", "headline": "CEO at Company" }, "total_reaction_count": 247, "comments_count": 23 } }] } } 

Comments (batched)

Event: batch_comments_export Delivered in batches of up to 50 comments per HTTP call.

{ "type": "comments", "event": "batch_comments_export", "signal": { "id": "signal-uuid", "name": "Signal Name" }, "batch": { "id": "batch_comments_1731672000000", "size": 50, "comments": [{ "text": "Great insights! Thanks for sharing.", "commented_at": "2025-03-16T11:45:00.000Z", "reactions": 12, "profile": { "name": "Jane Commenter", "headline": "Marketing Professional", "linkedin_url": "https://linkedin.com/in/...", "profile_picture": "https://...", "urn": "ACoAAA123456" }, "post": { "url": "https://linkedin.com/posts/...", "text": "Full post text", "author": { "name": "Post Author", "headline": "VP Marketing at InnovateCorp" }, "total_reaction_count": 150, "comments_count": 45 } }] } } 

Enriched contacts

Event: contact_export

{ "timestamp": "2025-03-16T12:00:00.000Z", "event_type": "contact_export", "origin": "export", "data": [{ "signal": { "id": "signal-uuid", "name": "Signal Name", "source": "keyword_monitoring" }, "contact": { "personal": { "first_name": "Jane", "last_name": "Smith", "email": "jane@example.com", "email_status": "valid", "headline": "VP of Marketing", "bio_summary": "...", "linkedin_url": "https://linkedin.com/in/...", "skills": ["Digital Marketing", "B2B Strategy"], "mobile_phone": "+1-415-555-0156" }, "location": { "city": "San Francisco", "country": "United States", "location_full": "San Francisco, California, United States" }, "current_position": { "job_title": "VP of Marketing", "employment_type": "Full-time", "company_name": "Acme Co" }, "company": { "name": "Acme Co", "linkedin_url": "https://linkedin.com/company/acme", "website_domain": "acme.com", "industry": "Software", "staff_count_range": "51-200", "funding_rounds": 3, "last_funding_type": "Series B", "last_funding_year": 2023 }, "education": { "school_name": "University Name", "degree": "BSc", "field_of_study": "Marketing" }, "engagement": { "original_post": { "text": "Post content", "url": "https://linkedin.com/posts/...", "author": { "name": "...", "headline": "..." } }, "user_interaction": { "reaction": { "reaction_type": "like", "reacted_at": "..." }, "comment": { "text": "Their comment", "commented_at": "..." } } } } }] } 

Origin values:

  • export — sent automatically by Signal on enrichment

  • ai_agent — sent by AI Agent webhook action

  • contact_export_ui — sent manually from Contacts manager


Job changes

{ "job_change": { "profile": { "first_name": "Jane", "last_name": "Smith", "headline": "VP of Marketing at New Corp", "email": "jane@example.com", "linkedin_url": "https://linkedin.com/in/..." }, "previous": { "title": "Director of Marketing", "company": "Old Corp" }, "current": { "title": "VP of Marketing", "company": "New Corp" }, "signal": { "name": "Job Change Signal" }, "detected_at": "2025-03-16T12:00:00.000Z" } } 

AI Agent payloads

All AI Agent webhook payloads add an ai_analysis block to the standard data type payload:

{ "type": "post", "event": "ai_agent_post_analysis", "post": { ... }, "ai_analysis": { "agent_name": "Buyer Intent Agent", "response": "TRUE", "custom_message": "Buyer intent detected for Jane Smith at Acme Co", "processed_at": "2025-03-16T12:00:00.000Z" } } 

The type field will be post, contact, or comment depending on the agent's data target.


Limits

Limit Value

Reactions per HTTP call

50

Comments per HTTP call

50

Contacts per manual export batch

150

Delay between contact pushes (manual)

1 second

Consecutive failures before auto-disable

3

Webhook URL protocol

HTTPS required