Notes & attachments
Two Fields, Rendered Twice
Never copy summary into description
summary is required and capped at 500 characters; description is optional and capped at 5,000. The web UI renders both as separate labelled sections, so posting identical values displays the text twice. It looks like a duplication bug and it is intentional rendering. Present two fields — Subject and Details — and send description only when it has content.
Note content comes back as HTML
Both summary and description return with markup. Strip to plain text before display in a non-HTML surface. The process form's adminNote is the exception — that one renders.
Attachments are a two-party setup, and the platform stores nothing
A forward is delivered straight to the other party's registered endpoint — there is no attachment store, and no endpoint that lists files on a case. Delivery also fans out to your own registered endpoint, so an integration that only ever sends still wants one: without it every forward reports submitterStatus: CONFIG_MISSING and you keep no copy of what you sent.
Configuration is per case and readable before you act: GET …/attachments/config returns the submitter and receiver configurations, POST …/attachments/config/https/analyze proposes a normalized configuration without saving it, and PUT …/attachments/config/https registers one. Check it before offering an attachment action rather than discovering CONFIG_MISSING afterwards. Delivery attempts are not specified here: the file-sharing topic documents one attempt per destination with no automatic retry, which is documented rather than probed — so build the receiver so that a 2xx means durably stored.
Two things the platform will not do for you: it creates no case note announcing the file, and it keeps no history. Both are yours to build.
Full model in TSANET-2026-002
The reference shows description in the wrong place
On the forward call, the GitBook reference currently shows description as a query parameter. The specification puts it in the multipart/form-data body — a required field, capped at 500 characters, alongside files. A request built from the reference omits a required form field. Send it in the form.
Verified against openapi.yaml — POST /v1/collaboration-requests/{token}/attachments, requestBody
Note-visibility modelling across three audiences: Zendesk → Note visibility