Send a LinkedIn Message
li_send_messageSend ONE message to one 1st-degree connection (or open profile) and WAIT for the result: the call stays open while the browser opens their profile, types and sends, which can take minutes when other work is queued. To answer replies use li_send_reply instead (returns at once with job ids, takes many people, sends each from the right account); for many prepared messages from one account use li_send_bulk_messages. Dry-run unless confirmSend=true — confirm the exact recipient and text with the user first. Refused for anyone on the do-not-contact list. Returns ok and the worker's result. Never resend after a timeout: check li_job_result or li_conversation_history first. Pair with li_read_conversation to draft a contextual, non-deceptive message.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Exact message text to send (supplied, never generated at send time) | |
| sessionId | No | Account id from li_list_accounts. Needed (or sessionLabel) when you have more than one account; never guessed. | |
| profileUrl | Yes | Recipient profile URL (https://www.linkedin.com/in/<slug>); the fsd-id URL from li_list_conversations also resolves | |
| confirmSend | Yes | Must be true to send; false returns a dry-run preview | |
| sessionLabel | No | Account by label, LinkedIn name, profile slug or member id (li_list_accounts). Needed (or sessionId) when you have more than one account; never guessed. | |
| debugArtifactsDir | No | Ignored; accepted only so older callers do not fail validation. |