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" to false.

Field Type Required Description
profileId string ✅ The LinkedIn profile ID of the recipient.
message string ✅ The message body you want to send.
subject string Ignored
inMail boolean ✅ Must be set to false to indicate it is not an Open InMail message.

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
Id string ✅ LinkedIn conversation thread identifier.
message 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

Link API Reference

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" to false.

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
profileId ✅ string | null LinkedIn profile ID of the recipient
message ✅ string | null The actual message text to send
subject string | null Ignore for regular message
authToken string | null (Optional) Token used internally for advanced auth flows (leave null)
authType string | null (Optional) Auth type metadata (leave null unless instructed)

Response:

{
  "messageId": null,
  "threadId": null
}