Sending messages to connections
Use send_message to message your 1st-degree connections. Two ways to target it:
chat_idsends into an existing conversation (get it fromlist_conversations)provider_idstarts a brand new conversation with a connection
Messages support text up to 8,000 characters, file and image attachments (up to 10MB each, .mp4 video capped at 5MB), and native voice notes via voice_note_url that render as a playable waveform in the recipient's inbox. Pass a campaign_id to attribute the message to a campaign.
Sends are protected by a daily messaging limit of 150 by default, shared with InMail and voice notes, resetting at midnight UTC. Anyone on your block list is refused with a blacklisted error before anything is sent.
People outside your network
send_message only works on existing connections. For everyone else, use send_inmail if your account has InMail credits (Premium, Sales Navigator, or Recruiter). InMail takes the recipient as a provider ID, slug, or URL, a body up to 1,900 characters, and an optional subject up to 200 characters. Check get_inmail_balance first so you never burn a send attempt on an empty balance. The alternative path is send_invitation first, then message after they accept.
Common mistakes:
- Messaging a 2nd-degree contact and getting an error. Check crispy_context in search results (the is_connection field) before choosing message vs. invitation.
- Sending near-identical text to many people in a row. Vary your copy, repeated identical messages are a known automation tell.
Pro tip: before drafting, pull the thread with get_messages so your agent replies with full context, and check the their_turn flag in list_conversations to prioritize people actually waiting on you.