Create Basecamp Message
basecamp_create_messageCreates a new message in a Basecamp message board. Specify board ID and subject; optionally add HTML content and set status to active or draft.
Instructions
Create a new message in a Basecamp message board.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Message status. Use "active" to publish, "drafted" to save as an unpublished draft. | active |
| content | No | HTML message content. HTML rules for content: * Allowed tags: p, span, h2, h3, h4, br, strong, em, strike, code, a (with href attribute), pre, ol, ul, li, blockquote, mark, figure, figcaption, table, tbody, tr, th, td, div, bc-attachment. * Wrap every paragraph in <p>...</p>, and put <p><br></p> between one paragraph and the next. Both parts are necessary: newlines and blank lines in your HTML are discarded, and Basecamp shows no space around a <p> on its own, so two paragraphs with nothing between them are shown as one block of text. Do not rely on line breaks in your HTML to separate paragraphs. * Headings: use <h2>, <h3>, <h4> as appropriate. * Inline code: <code>text</code>. Preformatted blocks: <pre>text</pre>. * Ordered lists: <ol><li>...</li></ol>. Unordered: <ul><li>...</li></ul>. * Tables: <table><tbody><tr><th>Heading</th>...</tr><tr><td>Cell</td>...</tr></tbody></table> * To mention a person: <bc-attachment person-id="{ person.id }"></bc-attachment>. Put the tag where the name must show in the text, for example "Thanks <bc-attachment person-id="123"></bc-attachment> for the fix". The person gets a notification. If the ID is not a person, the tool returns an error and writes nothing. Get person IDs from basecamp_list_people, or from the people in other responses (assignees, creators). * Single image: <bc-attachment sgid="{ attachment.attachable_sgid }"></bc-attachment> * Image gallery: wrap multiple <bc-attachment sgid="..." presentation="gallery"> in a <div>. * A bc-attachment needs an attachable_sgid. For a file that is already in Basecamp, take the sgid from the HTML content of the message, comment or card that shows it, or use basecamp_list_recordings. For a file that is not in Basecamp yet, such as an image at an external URL or a screenshot on disk, upload it with basecamp_create_attachment and use the sgid that it returns. There is no <img> tag, so an external image URL can never be embedded directly: upload it, or accept that it stays a plain link. * Basecamp auto-enriches bc-attachment tags after saving (adds url, href, filename, content-type, etc.) — you never need to write those. * When you see an existing, already-enriched <bc-attachment> tag (e.g. from a previous list/get call), leave its inner HTML alone. Before any content_append/content_prepend/search_replace runs, it is automatically collapsed back to its minimal form (sgid, presentation, caption, and content-type for mentions) — you don't need to strip it yourself, and doing so manually is unnecessary and risks mismatched find strings. * Background highlights: <mark style="background-color: var(--highlight-bg-N);">...</mark> * Text color highlights: <span style="color: var(--highlight-N);">...</span> * For both, N is 1 (yellow), 2 (amber), 3 (red), 4 (pink), 5 (purple), 6 (blue), 7 (teal), 8 (near-white), or 9 (light gray). | |
| subject | Yes | Message subject/title | |
| message_type_id | No | Optional message type/category ID | |
| message_board_id | Yes | Basecamp resource identifier |