SteveSignalsDocs

Event reference

Social post events

The webhook event for LinkedIn, X and Instagram posts: every key, its type and an example for each platform.

A social post event fires when a tracked competitor publishes a post on LinkedIn, X or Instagram. One post is one event.

eventType
social_post
subEventType
linkedin_post · x_post · instagram_post
signalType
social.post (also social.post_updated, social.post_removed in the schema)
Platform field
socialPostResponse (same value as metadata)
Trackers
LinkedIn posts · X · Instagram
relevance
LinkedIn and X are judged (relevant). Instagram is always { "status": "unjudged" }

How to read this page

Every body has the common fields plus one socialPostResponse object, sent twice (also as metadata). It has the item fields and a platform, then the keys of that platform. For X, a number the vendor did not give is null. LinkedIn and Instagram send 0 instead.

Fields every post has

socialPostResponse · all platforms
platform
'linkedin'|'x'|'instagram'
The network. Matches subEventType.
title
string|null
Usually null: posts have no title.
text
string|null
The post text.
url
string|null
A public link to the post.
author
object|null
{ name: string, handle: string | null, url: string | null }.
media
object[]
{ type: 'image' | 'video' | 'document', url: string }. Empty when the post has no media.
metrics
object|null
The raw numbers, as { [name]: number }. The named keys below repeat them.

LinkedIn posts

subEventType: "linkedin_post". reactions, comments and reposts are always numbers. likes and shares come from metrics. The vendor mapping fills them with 0 when it has no count, so in practice they are never null and equal reactions / reposts.

socialPostResponse · linkedin only
postUrn
string
LinkedIn's id for the post (the number from the post's URN).
isRepost
boolean
true when the competitor reshared someone else's post.
reactions
number
All reactions on the post.
comments
number
Comments on the post.
reposts
number
Reposts of the post.
likes
number|null
Likes from metrics. 0 when not given.
shares
number|null
Shares from metrics. 0 when not given.
Event · linkedin_postSample with the exact shape (no real run yet)
json
1{
2 "version": 1,
3 "eventId": "16906cf8-195d-467a-856c-2324f536dd49",
4 "eventType": "social_post",
5 "subEventType": "linkedin_post",
6 "action": "new",
7 "signalType": "social.post",
8 "source": "linkedin",
9 "orgId": "org_3KikADUjsyXrUJ4RJhWpwcp98Yf",
10 "trackerId": "1d349741-f0a6-4b3b-be73-55de78be03a1",
11 "runId": "22b07c0f-926a-480c-9c72-31eccce64d5a",
12 "competitor": {
13 "name": "HubSpot",
14 "domain": "hubspot.com",
15 "subjectKey": "company:hubspot"
16 },
17 "occurredAt": "2026-10-24T15:00:00.000Z",
18 "detectedAt": "2026-10-26T13:20:00.000Z",
19 "sequence": 620,
20 "itemKey": "linkedin-id:7520511234567890123",
21 "relevance": {
22 "status": "relevant",
23 "confidence": 0.83,
24 "reasoning": "HubSpot announces a product launch on its own page.",
25 "summary": "HubSpot launches Breeze Agents for all Starter customers, letting teams build AI agents without code.",
26 "shortSummary": "HubSpot launches Breeze Agents for Starter.",
27 "categories": [
28 "Product update/launch",
29 "AI"
30 ]
31 },
32 "socialPostResponse": {
33 "platform": "linkedin",
34 "title": null,
35 "text": "Introducing Breeze Agents for every HubSpot Starter customer. Build an AI agent in minutes, no code needed.",
36 "url": "https://www.linkedin.com/posts/hubspot_breeze-agents-activity-7520511234567890123/",
37 "author": {
38 "name": "HubSpot",
39 "handle": "hubspot",
40 "url": "https://www.linkedin.com/company/hubspot",
41 "imageUrl": null
42 },
43 "media": [],
44 "metrics": {
45 "likes": 1840,
46 "comments": 96,
47 "shares": 143
48 },
49 "postUrn": "7520511234567890123",
50 "isRepost": false,
51 "reactions": 1840,
52 "comments": 96,
53 "reposts": 143,
54 "likes": 1840,
55 "shares": 143
56 },
57 "metadata": {
58 "platform": "linkedin",
59 "title": null,
60 "text": "Introducing Breeze Agents for every HubSpot Starter customer. Build an AI agent in minutes, no code needed.",
61 "url": "https://www.linkedin.com/posts/hubspot_breeze-agents-activity-7520511234567890123/",
62 "author": {
63 "name": "HubSpot",
64 "handle": "hubspot",
65 "url": "https://www.linkedin.com/company/hubspot",
66 "imageUrl": null
67 },
68 "media": [],
69 "metrics": {
70 "likes": 1840,
71 "comments": 96,
72 "shares": 143
73 },
74 "postUrn": "7520511234567890123",
75 "isRepost": false,
76 "reactions": 1840,
77 "comments": 96,
78 "reposts": 143,
79 "likes": 1840,
80 "shares": 143
81 }
82}

X posts

subEventType: "x_post". Every count can be null.

socialPostResponse · x only
tweetId
string
The tweet id.
tweetType
'original'|'quote'
quote when the post quotes another tweet.
lang
string|null
The language code X detected (en). null when unknown.
likes
number|null
Likes.
replies
number|null
Replies.
retweets
number|null
Retweets.
quotes
number|null
Quote tweets.
bookmarks
number|null
Bookmarks.
views
number|null
Views.
Event · x_postReal event from a Signals run
json
1{
2 "version": 1,
3 "eventId": "f8d49a76-be18-451b-b86d-46c37756b47e",
4 "eventType": "social_post",
5 "subEventType": "x_post",
6 "action": "new",
7 "signalType": "social.post",
8 "source": "x",
9 "orgId": "org_3KikADUjsyXrUJ4RJhWpwcp98Yf",
10 "trackerId": "199a04fb-b188-4691-a358-3e0e4b3440bd",
11 "runId": "77cc65ed-bbff-45c5-944c-a79716ad2da2",
12 "competitor": {
13 "name": "HubSpot",
14 "domain": "hubspot.com",
15 "subjectKey": "hubspot"
16 },
17 "occurredAt": "2026-10-15T14:18:43.000Z",
18 "detectedAt": "2026-10-26T13:17:28.462Z",
19 "sequence": 620,
20 "itemKey": "x-id:2110737134768328915",
21 "relevance": {
22 "status": "relevant",
23 "confidence": 0.72,
24 "reasoning": "Passes Steps 0-2 (HubSpot is the subject) and is newsworthy as a product/feature update (Step 4).",
25 "summary": "HubSpot announces it built new controls to help customers protect budgets while moving fast, linking to more details. This is a product update/feature announcement from HubSpot.",
26 "shortSummary": "HubSpot promotes new budget/speed controls.",
27 "categories": [
28 "Product update/launch"
29 ]
30 },
31 "socialPostResponse": {
32 "platform": "x",
33 "title": null,
34 "text": "Customers shouldn’t have to choose between protecting their budget and moving fast. So HubSpot built controls that let you do both. \n\nLearn more here: https://t.co/tJJRb7brEM https://t.co/yrnxxs7IBD",
35 "url": "https://x.com/HubSpot/status/2110737134768328915",
36 "author": {
37 "name": "HubSpot",
38 "handle": "HubSpot",
39 "url": "https://x.com/HubSpot",
40 "imageUrl": null
41 },
42 "media": [
43 {
44 "type": "video",
45 "url": "https://video.twimg.com/amplify_video/2110737103805984768/vid/avc1/1280x720/tguPJbesedQREQsV.mp4?tag=16"
46 }
47 ],
48 "metrics": {
49 "likes": 12,
50 "replies": 7,
51 "retweets": 4,
52 "quotes": 2,
53 "bookmarks": 5,
54 "views": 2990
55 },
56 "tweetId": "2110737134768328915",
57 "tweetType": "original",
58 "lang": "en",
59 "likes": 12,
60 "replies": 7,
61 "retweets": 4,
62 "quotes": 2,
63 "bookmarks": 5,
64 "views": 2990
65 },
66 "metadata": {
67 "platform": "x",
68 "title": null,
69 "text": "Customers shouldn’t have to choose between protecting their budget and moving fast. So HubSpot built controls that let you do both. \n\nLearn more here: https://t.co/tJJRb7brEM https://t.co/yrnxxs7IBD",
70 "url": "https://x.com/HubSpot/status/2110737134768328915",
71 "author": {
72 "name": "HubSpot",
73 "handle": "HubSpot",
74 "url": "https://x.com/HubSpot",
75 "imageUrl": null
76 },
77 "media": [
78 {
79 "type": "video",
80 "url": "https://video.twimg.com/amplify_video/2110737103805984768/vid/avc1/1280x720/tguPJbesedQREQsV.mp4?tag=16"
81 }
82 ],
83 "metrics": {
84 "likes": 12,
85 "replies": 7,
86 "retweets": 4,
87 "quotes": 2,
88 "bookmarks": 5,
89 "views": 2990
90 },
91 "tweetId": "2110737134768328915",
92 "tweetType": "original",
93 "lang": "en",
94 "likes": 12,
95 "replies": 7,
96 "retweets": 4,
97 "quotes": 2,
98 "bookmarks": 5,
99 "views": 2990
100 }
101}

Instagram posts

subEventType: "instagram_post". Instagram is not judged, so relevance is unjudged.

socialPostResponse · instagram only
postId
string
Instagram's post id.
isVideo
boolean
true for a video or reel.
likes
number|null
Likes. 0 when the vendor gave none.
comments
number|null
Comments. 0 when the vendor gave none.
views
number|null
Views. 0 for non-video posts or when the vendor gave none.
Event · instagram_postReal event from a Signals run
json
1{
2 "version": 1,
3 "eventId": "dcaf6b01-6ed4-4ef3-a9f4-f4ddc41fb1d7",
4 "eventType": "social_post",
5 "subEventType": "instagram_post",
6 "action": "new",
7 "signalType": "social.post",
8 "source": "instagram",
9 "orgId": "org_3KikADUjsyXrUJ4RJhWpwcp98Yf",
10 "trackerId": "6c7f4548-a964-4a10-b4f5-b03914c960af",
11 "runId": "060d4f48-05bd-4a2d-bdd2-49083d540a33",
12 "competitor": {
13 "name": "HubSpot",
14 "domain": "hubspot.com",
15 "subjectKey": "hubspot"
16 },
17 "occurredAt": "2026-10-20T19:09:06.000Z",
18 "detectedAt": "2026-10-26T13:17:30.899Z",
19 "sequence": 629,
20 "itemKey": "instagram-id:4012298449630656615",
21 "relevance": {
22 "status": "unjudged"
23 },
24 "socialPostResponse": {
25 "platform": "instagram",
26 "title": null,
27 "text": "When you’re the entire org chart, you need a system to keep it all together. HubSpot Starter helps you find your best leads, close them faster, and keep customers coming back. All in one place. \n\nLearn more at the link in bio.",
28 "url": "https://www.instagram.com/p/DeujC6PFfhn/",
29 "author": {
30 "name": "hubspot",
31 "handle": "hubspot",
32 "url": "https://www.instagram.com/hubspot",
33 "imageUrl": null
34 },
35 "media": [
36 {
37 "type": "video",
38 "url": "https://scontent-mad1-1.cdninstagram.com/o1/v/t2/f2/m86/AQOxao6fhfGTgnrmCPELUeuuBT1zC4TrLmY3lvV0hVFoLOzt233F7pM6_AWmJWmQRzV9DnFKyRPacuo9hTfCa1oPTTSQtAAdmaLa-fo.mp4?_nc_cat=103&_nc_sid=5e9851&_nc_ht=scontent-mad1-1.cdninstagram.com&_nc_ohc=NOCrti1sibUQ7kNvwH92VW7&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uQ0xJUFMuQzMuNzIwLmRhc2hfYmFzZWxpbmVfMV92MSIsInhwdl9hc3NldF9pZCI6MTg2NDE2NDA5MDcwMjA5NjQsImFzc2V0X2FnZV9kYXlzIjo1LCJ2aV91c2VjYXNlX2lkIjoxMDA5OSwiZHVyYXRpb25fcyI6MjcsInVybGdlbl9zb3VyY2UiOiJ3d3cifQ%3D%3D&ccb=17-1&vs=13f66ffdf037b3f6&_nc_vs=HBksFQIYUmlnX3hwdl9yZWVsc19wZXJtYW5lbnRfc3JfcHJvZC8yMUNCRTk4RDUzQ0U0NzBEOTE1OEZBQTQwMkFCNDlFMV92aWRlb19kYXNoaW5pdC5tcDQVAALIARIAFQIYUWlnX3hwdl9wbGFjZW1lbnRfcGVybWFuZW50X3YyLzE4RTMzNjdBNTYzQTQzNjBBNjA4QUNGN0QyQzlEOURBX2F1ZGlvX2Rhc2hpbml0Lm1wNBUCAsgBEgAoABgAGwKIB3VzZV9vaWwBMRJwcm9ncmVzc2l2ZV9yZWNpcGUBMRUAACbI6tiEqJ6dQhUCKAJDMywXQDsVP3ztkWgYEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HZeadAQA&_nc_gid=EvGS_nC7ATwIsnI810S_Eg&_nc_ss=70980&_nc_zt=28&oh=00_AQPq8Lu7OqZ-NZMcTENnV-_DHZb33u2yEBa6tYfZx7iOYA&oe=6AE14160"
39 },
40 {
41 "type": "image",
42 "url": "https://scontent-mad1-1.cdninstagram.com/v/t51.82787-15/858356033_18641641639020964_2039087082001370692_n.jpg?stp=dst-jpg_e15_tt6&_nc_cat=102&ig_cache_key=NDAxMjI5ODQ0OTYzMDY1NjYxNTE4NjQxNjQxNjM2MDIwOTY0.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLnhwaWRzLjEwODAuc2RyLnZpZGVvX2RlZmF1bHRfY292ZXJfZnJhbWUuQzMifQ%3D%3D&_nc_ohc=UevngH0Fu-4Q7kNvwERHVLB&_nc_oc=Adqzr4Gkrjd6yHaW6I125yA7gGyt5UQuKLUlXeX6aXUX7AxQ05yJWqEvSAsw8tYVVfg&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-mad1-1.cdninstagram.com&_nc_gid=EvGS_nC7ATwIsnI810S_Eg&_nc_ss=7a20f&oh=00_AQN_bEOu-aHoo2nXRij51_3Je4OBLvUDNY7yRkd760l-9w&oe=6AE52968"
43 }
44 ],
45 "metrics": {
46 "likes": 216,
47 "comments": 31,
48 "views": 13632
49 },
50 "postId": "4012298449630656615",
51 "isVideo": true,
52 "likes": 216,
53 "comments": 31,
54 "views": 13632
55 },
56 "metadata": {
57 "platform": "instagram",
58 "title": null,
59 "text": "When you’re the entire org chart, you need a system to keep it all together. HubSpot Starter helps you find your best leads, close them faster, and keep customers coming back. All in one place. \n\nLearn more at the link in bio.",
60 "url": "https://www.instagram.com/p/DeujC6PFfhn/",
61 "author": {
62 "name": "hubspot",
63 "handle": "hubspot",
64 "url": "https://www.instagram.com/hubspot",
65 "imageUrl": null
66 },
67 "media": [
68 {
69 "type": "video",
70 "url": "https://scontent-mad1-1.cdninstagram.com/o1/v/t2/f2/m86/AQOxao6fhfGTgnrmCPELUeuuBT1zC4TrLmY3lvV0hVFoLOzt233F7pM6_AWmJWmQRzV9DnFKyRPacuo9hTfCa1oPTTSQtAAdmaLa-fo.mp4?_nc_cat=103&_nc_sid=5e9851&_nc_ht=scontent-mad1-1.cdninstagram.com&_nc_ohc=NOCrti1sibUQ7kNvwH92VW7&efg=eyJ2ZW5jb2RlX3RhZyI6Inhwdl9wcm9ncmVzc2l2ZS5JTlNUQUdSQU0uQ0xJUFMuQzMuNzIwLmRhc2hfYmFzZWxpbmVfMV92MSIsInhwdl9hc3NldF9pZCI6MTg2NDE2NDA5MDcwMjA5NjQsImFzc2V0X2FnZV9kYXlzIjo1LCJ2aV91c2VjYXNlX2lkIjoxMDA5OSwiZHVyYXRpb25fcyI6MjcsInVybGdlbl9zb3VyY2UiOiJ3d3cifQ%3D%3D&ccb=17-1&vs=13f66ffdf037b3f6&_nc_vs=HBksFQIYUmlnX3hwdl9yZWVsc19wZXJtYW5lbnRfc3JfcHJvZC8yMUNCRTk4RDUzQ0U0NzBEOTE1OEZBQTQwMkFCNDlFMV92aWRlb19kYXNoaW5pdC5tcDQVAALIARIAFQIYUWlnX3hwdl9wbGFjZW1lbnRfcGVybWFuZW50X3YyLzE4RTMzNjdBNTYzQTQzNjBBNjA4QUNGN0QyQzlEOURBX2F1ZGlvX2Rhc2hpbml0Lm1wNBUCAsgBEgAoABgAGwKIB3VzZV9vaWwBMRJwcm9ncmVzc2l2ZV9yZWNpcGUBMRUAACbI6tiEqJ6dQhUCKAJDMywXQDsVP3ztkWgYEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HZeadAQA&_nc_gid=EvGS_nC7ATwIsnI810S_Eg&_nc_ss=70980&_nc_zt=28&oh=00_AQPq8Lu7OqZ-NZMcTENnV-_DHZb33u2yEBa6tYfZx7iOYA&oe=6AE14160"
71 },
72 {
73 "type": "image",
74 "url": "https://scontent-mad1-1.cdninstagram.com/v/t51.82787-15/858356033_18641641639020964_2039087082001370692_n.jpg?stp=dst-jpg_e15_tt6&_nc_cat=102&ig_cache_key=NDAxMjI5ODQ0OTYzMDY1NjYxNTE4NjQxNjQxNjM2MDIwOTY0.3-ccb7-5&ccb=7-5&_nc_sid=58cdad&efg=eyJ2ZW5jb2RlX3RhZyI6IkNMSVBTLnhwaWRzLjEwODAuc2RyLnZpZGVvX2RlZmF1bHRfY292ZXJfZnJhbWUuQzMifQ%3D%3D&_nc_ohc=UevngH0Fu-4Q7kNvwERHVLB&_nc_oc=Adqzr4Gkrjd6yHaW6I125yA7gGyt5UQuKLUlXeX6aXUX7AxQ05yJWqEvSAsw8tYVVfg&_nc_ad=z-m&_nc_cid=0&_nc_zt=23&_nc_ht=scontent-mad1-1.cdninstagram.com&_nc_gid=EvGS_nC7ATwIsnI810S_Eg&_nc_ss=7a20f&oh=00_AQN_bEOu-aHoo2nXRij51_3Je4OBLvUDNY7yRkd760l-9w&oe=6AE52968"
75 }
76 ],
77 "metrics": {
78 "likes": 216,
79 "comments": 31,
80 "views": 13632
81 },
82 "postId": "4012298449630656615",
83 "isVideo": true,
84 "likes": 216,
85 "comments": 31,
86 "views": 13632
87 }
88}

null is not 0

If the vendor did not give a number, the key is null. A real zero is 0. Do not turn null into 0 in your analytics: it means "unknown". LinkedIn and Instagram counts are never null: a missing count is sent as 0.