Realtime Event Listener (Beta)
The realtime event listener taps into LinkedIn's realtime notification system for a connected account and sends webhook events as soon as We-Link receives them from LinkedIn.
Use this when your application needs immediate updates for inbox activity instead of periodic polling.
Supported Platforms
Realtime event listener currently supports LinkedIn and Recruiter.
Supported Events
| Event | Description |
|---|---|
REAL_TIME_MESSAGE | A new message is received (include message edits) |
REAL_TIME_MESSAGE_SEEN | A message was seen |
REAL_TIME_MESSAGE_REACTION | A reaction was added or removed on a message |
REAL_TIME_STREAM_STARTED | When the LinkedIn Live listener stream starts (or restarts) for a connected account |
REAL_TIME_STREAM_ENDED | When the LinkedIn Live listener stream ends for a connected account |
Choose webhook events to recieve
- Go to Settings
- Open Webhook
- Add a new webhook, or edit an existing webhook
- Go to Triggers
- Enable the realtime events you want to receive

Enable Listener
Users need to manually enable which account to listen to using the API. Use the following endpoints to manage the listener:
Webhook Events
New Message
Event name: REAL_TIME_MESSAGE
{
"result": {
"accountId": "string",
"full_name": "string",
"first_name": "string",
"last_name": "string",
"public_identifier": "string",
"profile_id": "string",
"image": "string",
"headline": "string",
"id": "string",
"thread_id": "string",
"time": "number",
"body": "string",
"direction": "string", // INBOUND or OUTBOUND
"attachments": [
{
"title": "string",
"url": "string",
"file_size": "number",
"media_type": "string"
}
]
},
"event": "REAL_TIME_MESSAGE",
"hash": "string",
"requestId": "string"
}
Message Seen
Event name: REAL_TIME_MESSAGE_SEEN
{
"result": {
"accountId": "string",
"seen_at": "number",
"full_name": "string",
"first_name": "string",
"last_name": "string",
"profile_id": "string",
"id": "string"
},
"event": "REAL_TIME_MESSAGE_SEEN",
"hash": "string",
"requestId": "string"
}
Message Reaction
Event name: REAL_TIME_MESSAGE_REACTION
{
"result": {
"accountId": "string",
"reaction_added": "boolean",
"full_name": "string",
"first_name": "string",
"last_name": "string",
"profile_id": "string",
"id": "string",
"count": "number",
"emoji": "string",
"direction": "string", // INBOUND or OUTBOUND
},
"event": "REAL_TIME_MESSAGE_REACTION",
"hash": "string",
"requestId": "string"
}
Stream Started
Event name: REAL_TIME_STREAM_STARTED
{
"result": {
"accountId": "string",
"status": "STREAM_STARTED",
"accountType": "REGULAR",
"reason": "string"
},
"event": "REAL_TIME_STREAM_STARTED",
"hash": "string",
"requestId": "string"
}
Stream Ended
Event name: REAL_TIME_STREAM_ENDED
{
"result": {
"accountId": "string",
"status": "STREAM_ENDED",
"accountType": "REGULAR",
"reason": "string",
"errorCode": "string",
"explanation": "string"
},
"event": "REAL_TIME_STREAM_ENDED",
"hash": "string",
"requestId": "string"
}
| Event | Description |
|---|---|
LN_AUTH_FAILED | Failed to authenticate linkedin account |
RECRUITER_AUTH_FAILED | Failed to authenticate recruiter account |
MANUAL_STOPPED | Event listener manually stopped |
When to Use It
- Use realtime events for new inbox messages, seen receipts, and reaction changes.
- Use message reply tracking when you only need to know whether a specific outbound message received a reply.
- Verify the
hashvalue before processing webhook payloads.