Send Bulk Messages (one account)
li_send_bulk_messagesSend many messages from one account in a single run, one at a time in a single browser session, and wait for the run to finish. Supply exact text per recipient — never generated. Dry-run unless confirmSend=true; anyone on the do-not-contact list is refused. Returns a per-recipient outcome. To answer replies use li_send_reply instead: it returns at once and sends each from the account whose conversation it is.
FAST PATH: pass conversationUrn + participantMemberId (both come straight out of li_list_conversations / li_read_conversations_bulk) and the send addresses that thread directly — one navigation instead of three, ~30s per recipient cheaper, and the recipient is verified against the thread's own markup BEFORE typing. Replies should always carry them.
WITHOUT THE PAIR the route is decided at send time, not by you: where this install already holds the person's member id AND a stored conversation with them on this account, the send opens that conversation anyway; otherwise it opens their profile, which is the only route that can start a NEW conversation. The dry run marks those rows thread-fast-path-or-profile rather than guessing — both routes verify the recipient before typing, and which one runs can change between the preview and the send.
Budget ~60s per recipient without the fast path and ~30s with it, against a 30-minute limit; prefer batches of 15 or fewer, because a run that times out cannot tell you who was already messaged.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Recipients and their exact text, one per person; batches of 15 or fewer are safest | |
| sessionId | No | Sending account id (or use sessionLabel) | |
| confirmSend | Yes | Must be true to send; false returns a dry-run preview | |
| sessionLabel | No | Sending account label | |
| viaMessaging | No | Use the /messaging search flow instead of the per-profile composer. Default FALSE. /messaging finds people by typing a NAME into a typeahead that exposes no slug or URN, so the recipient cannot be verified before sending; the profile composer navigates to /in/<slug>/. Opt in only when the profile composer is blocked. |