Skip to content

Add translations field to conversation_part and ticket_part (Preview) - #621

Merged
cathalging merged 5 commits into
mainfrom
cathal/openapi-translations-field
Aug 21, 2026
Merged

Add translations field to conversation_part and ticket_part (Preview)#621
cathalging merged 5 commits into
mainfrom
cathal/openapi-translations-field

Conversation

@cathalging

Copy link
Copy Markdown
Contributor

Why?

Admin reply parts can now be delivered in multiple locales, and the new conversation.admin.replied.translated and ticket.admin.replied.translated webhook topics carry those translations. The Preview spec did not model that data, so integrators had no schema for it.

How?

Adds a nullable translations map (keyed by locale code, with an original key naming the source locale) to the Preview conversation part and ticket part schemas, leaving the existing reply text untouched.

Notes for reviewers

The field is Preview-only, so it is added to descriptions/0 alone and not to any stable 2.x version. Example value: { "original": "en", "en": "Hello", "fr": "Bonjour" }. A companion PR in intercom/developer-docs syncs the same schema addition into the developer-docs Preview mirror and adds a changelog entry.

Generated with Claude Code

…_part

Model the new `translations` object on the Preview conversation_part and
ticket_part schemas. It is a map keyed by locale code: the special `original`
key holds the source locale code of the reply, and every other key is a locale
code whose value is the reply text translated into that locale, e.g.
{ "original": "en", "en": "Hello", "fr": "Bonjour" }.

This backs the new `conversation.admin.replied.translated` and
`ticket.admin.replied.translated` webhook topics. The existing `body` field is
unchanged and stays in the original source language. The field is Preview-only
(descriptions/0), so it is gated by the Preview API version.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cathalging
cathalging marked this pull request as ready for review August 21, 2026 11:20
…ples

Declares `original` as required on the conversation_part and ticket_part
translations schemas, since it is always present in the payload. Also
adds translations to the existing admin-authored comment/reply examples
(retrieveConversation, updateConversationPart) so the new field is
demonstrated in inline responses.
…plyTicket

replyTicket only had note and quick_reply examples, neither a legitimate
carrier of translations (note is internal-only, quick_reply here has no
reply body text). Adds a customer-facing admin comment reply example,
matching the ticket_reply schema's documented comment support.
Corrects every translations example (retrieveConversation,
updateConversationPart, the new replyTicket comment example) and both
schema-level example blocks to wrap translated text in the same HTML as
body, per production payload shape. Also clarifies the schema
description to state values are HTML matching body's format.
replyTicket's 200 response uses ticket_reply, not ticket_part, so the
Admin reply example's translations field had no schema definition backing
it. Adds the same translations property (required original, HTML values,
ticket.admin.replied.translated topic) already present on conversation_part
and ticket_part.
@cathalging
cathalging merged commit 217abbb into main Aug 21, 2026
3 checks passed
@cathalging
cathalging deleted the cathal/openapi-translations-field branch August 21, 2026 12:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants