nv.sendMessage
This action allows you to send a message to a person in Sales Navigator.
In the SDK this is the nvSendMessage method. It takes the parameters below except label and then, which exist only in workflow JSON. It returns no data: a failed action comes back in errors, with one of the error types below.
Unlike sendMessage, this method cannot manage the conversation in the same call: to archive or unarchive it, call nvManageConversation separately with the conversation's threadId.
In the CLI this is linkedin navigator message send – the command is below, under Parameters.
Constraints
⏺️ Root Start: allowed, when
personUrlorthreadIdparameter is provided.
⬆️ Parent Actions: nv.openPersonPage.
⬇️ Child Actions: N/A.
Parameters
{
"actionType": "nv.sendMessage",
"label": "person1",
"personUrl": "https://www.linkedin.com/in/person1",
"text": "Hi! I'd love to connect and discuss some ideas.",
"subject": "Let's Connect!"
}In AI assistants, the MCP server runs this action as the nv_send_message tool.
In the CLI this is linkedin navigator message send:
linkedin navigator message send <person-url> <text> --subject <subject>
linkedin navigator message send --thread-id <thread-id> <text>| Arg | Required | Description |
|---|---|---|
person-url | conditional | LinkedIn profile URL of the recipient. Omit it when --thread-id is provided |
text | yes | Message text (up to 1900 characters) |
| Flag | Type | Required | Description |
|---|---|---|---|
--subject | string | unless --thread-id is given | Message subject line (up to 80 characters), required when starting a new conversation |
--thread-id | string | no | Reply into an existing conversation thread instead of passing person-url |
label(optional) – custom label for tracking this action in workflow completion.personUrl(required for root start unlessthreadIdis provided, forbidden for parent start) – public or hashed LinkedIn URL of the person you want to send a message to.threadId(optional) – identifier of an existing conversation thread to reply into, as returned by inbox polling, or read from the address bar of an open conversation — the<id>inlinkedin.com/sales/inbox/<id>. Provide eitherpersonUrlorthreadId; if both are given,threadIdtakes precedence.text– message text, must be up to 1900 characters.subject– subject line, must be up to 80 characters. Required when starting a new conversation; ignored when replying into an existing thread viathreadId.
Result options
- Successful message sending:
{
"actionType": "nv.sendMessage",
"label": "person1",
"success": true
}label– included only if specified in the action parameters.
- Failed message sending:
{
"actionType": "nv.sendMessage",
"label": "person1",
"success": false,
"error": {
"type": "personNotFound",
"message": "The provided URL is not an existing LinkedIn person."
}
}label– included only if specified in the action parameters.error.type– enum with the following possible values:personNotFound– provided URL is not an existing LinkedIn person.noSalesNavigator– your account does not have Sales Navigator subscription.messagingNotAllowed– sending a message to the person is not allowed. This could happen for several reasons:- Your monthly Sales Navigator message limit has been reached.
- LinkedIn has restricted your ability to send messages to the person, for example, due the person’s privacy settings.