Send Regular Message (Follow-up)
Use the Send Message endpoint to send Message with Classic and Sales Navigator Inboxes
NOTE :
A single LinkedIn profile may have two separate conversation threads with your account
When building your logic:
-
Always check both Classic and SN inboxes during sync.
-
Treat threads independently when sending messages or syncing replies.
-
Use the appropriate endpoints based on the conversation source.
Classic LinkedIn
Check if account has a conversationId
using POST /api/v1/conversations/sync
if you don’t have a existing chat with member please use
Create a new LinkedIn conversation.
-
Precondition
-
Your LinkedIn account must already be connected.
-
You should be connected with recipient, and do not have another conversations (allowed to have another conversations created by open inmail)
-
Include the
X-AccountId
header in the request. -
You must provide the
profileId
of the profile you want to message. -
To send a regular message:
-
Insert your custom text into the
"message"
field. -
Set
"inMail"
tofalse
.
-
Field |
Type |
Required |
Description |
---|---|---|---|
|
string |
✅ |
The LinkedIn profile ID of the recipient. |
|
string |
✅ |
The message body you want to send. |
|
string |
Ignored |
|
|
boolean |
✅ |
Must be set to |
POST/api/v1/conversations
curl https://api.salesflow.io/public/v1/conversations \
--request POST \
--header 'X-AccountId: 1234567890' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"profileId": "target_profile_id",
"message": "your_message",
"inMail": false
}'
RESPONSE EXAMPLE :
{
"conversationId": "2-aabbccdd",
"messageId": "aabbccdd",
"createdAt": "2025-08-08T08:30:00Z"
}
if you have already existing "conversationId", use
Send a message to an existing LinkedIn conversation.
Precondition
-
Conversation should have not disabled “REPLY” feature
-
If conversation was created by sending open inmail from your side, ensure that conversation state is “ACCEPTED”.
This endpoint allows sending a new message to an existing conversation thread identified by its ID.
POST /api/v1/conversations/{id}/messages
Field |
Type |
Required |
Description |
---|---|---|---|
|
string |
✅ |
LinkedIn conversation thread identifier. |
|
string |
✅ |
The message body you want to send. |
curl 'https://api.salesflow.io/public/v1/conversations/{id}/messages' \
--request POST \
--header 'X-AccountId: 1234567890' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"message": "your_message"
}'
Response :
{
"createdAt": "2025-08-08T08:30:30Z",
"messageId": "aabbcc"
}
Sales Navigator
Precondition
-
Your LinkedIn account must already be connected.
-
You should be connected with recipient, and do not have another conversations (allowed to have another conversations created by open inmail)
-
Include the
X-AccountId
header in the request. -
You must provide the
profileId
of the profile you want to message. -
To send a regular message:
-
Insert your custom text into the
"message"
field. -
Set
"inMail"
tofalse
.
POST/api/v1/sales-nav/conversations
curl https://api.salesflow.io/public/api/v1/sales-nav/conversations \
--request POST \
--header 'X-AccountId: 1234567890' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"profileId": "",
"message": "",
"subject": null,
"authToken": null,
"authType": null
}'
Field |
Required |
Type |
Description |
---|---|---|---|
|
✅ |
string | null |
LinkedIn profile ID of the recipient |
|
✅ |
string | null |
The actual message text to send |
|
string | null |
Ignore for regular message |
|
|
string | null |
(Optional) Token used internally for advanced auth flows (leave null) |
|
|
string | null |
(Optional) Auth type metadata (leave null unless instructed) |
Response:
{
"messageId": null,
"threadId": null
}