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
}