campaignstack_send_message
Ask CampaignStack to send one message into a LinkedIn conversation the owner's connected account is already part of, optionally with attachments given as public URLs. Takes a conversationRef { platform, id } from campaignstack_get_conversations. Read the thread with campaignstack_get_conversations using ids and include.messages first. If the last message is the owner's and the other person has not answered since, do not send: say so, and send only if the user confirms they want to follow up again. This reaches a real person. Before calling it, tell the user exactly who it goes to and read the wording back to them, and wait for an explicit yes. The send is dispatched asynchronously and the response carries a messageEntityUrn; campaignstack_get_conversations reports delivery. Pass sendAt to hold the message and send it later instead of now; it is cancelled if the other person replies first, so read the wording and the time back and wait for a yes. campaignstack_get_conversations with include.scheduledMessages lists pending ones; campaignstack_edit_conversations cancels or edits one. One person per call. There is no bulk form, and calling this in a loop over a list is not the supported way to reach a list: add the leads with campaignstack_edit_lead_list and run a workflow over it with campaignstack_trigger_workflow, which paces the sends and applies the review step the workspace configured. Business hours do not apply. A message past the account's daily message limit is still sent, and the result carries a warning to pass on to the user. A paused account, or messaging LinkedIn has challenged, refuses the send.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| sendAt | No | ISO 8601 with a UTC offset. Omit to send now. With it, the message is held and sent at that time instead (1 minute to 180 days out) - cancelled automatically if the other person replies first. Read the wording and the time back to the user and wait for a yes before calling this with sendAt set. | |
| attachments | No | Up to 5 files to attach (images or documents). Downloaded server-side and validated against the LinkedIn attachment policy. | |
| workspaceId | No | Workspace ID. Omit it when this connection reaches one workspace: a workspace key (cs_) is bound to its own, and a user key (csu_) or connected app whose person belongs to exactly one workspace defaults to that one. Required only when the person belongs to several; the error then lists them, and campaignstack_whoami reports them too. | |
| idempotencyKey | No | Optional. A key you choose for this one send. Calling again with the same key returns the send already made instead of sending twice (use it when a call timed out); a key reused for a different send is refused. Without a key, the same words to the same person within a few minutes are refused as a repeat. | |
| conversationRef | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sendAt | No | ||
| status | No | ||
| warning | No | ||
| messageEntityUrn | No | ||
| scheduledMessageId | No |