Payload Reference
Every webhook delivery uses this structure. Common fields are consistent across platforms. Platform-specific fields are documented below.
Common fields (all platforms)
| Field | Type | Description |
|---|---|---|
platform | string | "facebook" | "instagram" | "whatsapp" |
event | string | "message.received" | "conversation.started" | "status.update" |
timestamp | number | Unix timestamp (seconds) of when the event occurred |
webhook_id | string | Your SocialHook webhook configuration ID |
conversation_id | string | Stable ID for the conversation thread |
message | object | Message content object (varies by platform and type) |
WhatsApp-specific fields
| Field | Type | Description |
|---|---|---|
from | string | Sender phone number in E.164 format (+15550001234) |
profile.name | string | Sender's WhatsApp display name |
message.type | string | "text" | "image" | "audio" | "video" | "document" | "location" | "sticker" |
message.body | string | Message text (for type="text") |
message.media_url | string | URL to download media (for image/audio/video/document) |
Facebook-specific fields
| Field | Type | Description |
|---|---|---|
from.id | string | Sender's Facebook user ID (PSID) |
from.name | string | Sender's Facebook display name |
page_id | string | ID of the Facebook Page that received the message |
message.text | string | Message text content |
message.attachments | array | Array of attachment objects for images, videos, etc. |
Instagram-specific fields
| Field | Type | Description |
|---|---|---|
from.id | string | Sender's Instagram user ID |
from.username | string | Sender's @username |
account_id | string | ID of the Instagram Business account |
message.text | string | DM text content |
story_id | string | Story ID when the message is a story reply (optional) |