Send Message
upwork__send_messageCreate rooms and send messages. Freelancers (TALENT): cannot initiate a proposal room or send the first message on a proposal — the client must contact you first. To reply, use an existing room from list_freelancer_proposals action=get_room or get_messages action=find_room (context_type=proposal). If no room exists yet, tell the user the client needs to message first.
WRITE OPERATION — REQUIRES EXPLICIT USER CONFIRMATION. You MUST present full action details and receive explicit approval before executing. Each write requires separate confirmation even if the user said "approve all".
Actions:
create_room: Create a group room. Params: input (object, required — RoomCreateInputV2).
send: Send a message to a room. Params: room_id (string, required), message (string, required unless file_attachments is set; max 10240 characters — if the user's text is longer, ask them to shorten it rather than sending it truncated). file_attachments (array, optional — each item needs file_id and file_name from start_attachment_upload; include image_id when present).
send_to_user: Send a message to a user (auto-creates 1-on-1 room if needed). Starting a conversation with a freelancer you are not yet connected to uses one of a limited number of new connections per day; the response includes remaining_connections. Optionally attach a job via job_posting_id to share it — the recipient gets a link plus a job id their assistant can open with find_jobs get. Params: user_id (string, required), org_id (string, required — recipient's org ID), job_posting_id (string, optional), message (string, required unless file_attachments is set; max 10240 characters — if the user's text is longer, ask them to shorten it rather than sending it truncated). file_attachments (array, optional — each item needs file_id and file_name from start_attachment_upload; include image_id when present).
message_proposal: Send a message to a proposal applicant (auto-creates room if needed). Params: job_posting_id (string, required), proposal_id (string, required), message (string, required unless file_attachments is set; max 10240 characters — if the user's text is longer, ask them to shorten it rather than sending it truncated). file_attachments (array, optional — each item needs file_id and file_name from start_attachment_upload; include image_id when present).
edit: Edit a sent message. Params: room_id (string, required), story_id (string, required), message (string, required unless file_attachments is set; max 10240 characters — if the user's text is longer, ask them to shorten it rather than sending it truncated).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | The operation to perform | |
| params | No | Action-specific parameters (see allOf branches per action when present) | |
| org_uid | Yes | Your Upwork org_uid from list_accounts |