Docs · Reference

Connector index

Localization OS ships 28 connector kinds. Each one pulls content from the system it connects to, translates it through the normal pipeline, and writes every language back in that system's own way, without overwriting the source.

How connectors work#

A connection is one configured link to an account in another system: its credentials (encrypted at rest and never shown again), its scope, and its defaults. Translate now pulls the matched content, translates it through the ordinary pipeline (translation memory, glossaries, workflows and quality checks all apply), and writes each language back as that system's own per-language version. You can also run it on a schedule, or from a signed webhook when content changes. See Connectors for the feature itself and the CLI for the commands.

An administrator can switch off any connector kind on an install; a switched-off kind disappears from every surface until it is switched back on, and no data is lost.

Live-verified and beta#

Live-verified connectors have completed full round trips against real accounts of the system they connect to. Beta connectors are complete and pass the full automated test suite against recorded and simulated versions of each system's API, but have not yet been run against a live account of that system. Try a beta connector on test content first, and tell us what you find.

Live-verified#

ConnectorCategoryWhat it translates and how it writes back
AirtableContent baseText from records, translated and written into a target field. Token or OAuth sign-in.
JiraIssue trackingIssue summaries and descriptions selected by a JQL query, written back as a comment or into a custom field. Token or OAuth sign-in.
StrapiHeadless CMSCollection-type entries through the i18n plugin, written as each entry's per-locale variant (Strapi 4 and 5).
ContentfulHeadless CMSEntries, written as a new locale on the same entry with a version-locked merge. Writes go to the draft and never publish. Rich Text fields are skipped and reported.
HubSpot CMSCMSSite pages, landing pages and blog posts, written as real HubSpot language variations in the draft. Never published by the connector; publish, then push the draft live, in HubSpot. Marketing emails and forms are not supported.
WordPressCMS and blogPosts and pages through Polylang, each translation a separate post in the target language. Block content and shortcodes survive the round trip.
CMS via MCPAny CMS with an MCP serverMap four of the CMS server's own tools (list items, get an item in a locale, write an item in a locale, optional publish) and each translation is written as that item's per-locale variant. Supports OAuth sign-in to the CMS server.

Beta#

ConnectorCategoryWhat it translates and how it writes back
ShopifyE-commerceProducts, collections, articles, blogs and pages, registered through the Translations API. Languages must already exist in Shopify; publish each to show it on the storefront.
AkeneoPIMProduct and product-model attribute values, written as per-locale values on the same record.
PlytixPIMProduct text attributes. Plytix has no locale dimension, so you map each source attribute to one target attribute per language; the source attribute is never written.
SanityHeadless CMSDocuments, in either field-level or document-level localization. Writes land on the draft and never publish; Portable Text is translated block by block.
Sitecore XM CloudDXP and CMSContent items, written as a language version of the same item through the Authoring GraphQL API, confined to a configured content root. Nothing is published.
DrupalCMSExperimental: needs the alpha-stage JSON:API Multilingual module. Nodes, taxonomy terms and blocks, saved unpublished; the connector refuses to write unless the module is proven active.
ConfluenceKnowledge basePages, each translation created as a child page. Token or OAuth sign-in.
Zendesk GuideHelp centerArticles, sections and categories, written as per-locale translations, draft by default.
Document360Knowledge baseArticles (Markdown and WYSIWYG), written as each article's per-language version.
Freshdesk SolutionsKnowledge baseArticles, written as per-language versions, draft by default.
Zoho DeskKnowledge baseArticles, written as per-locale translations, draft by default.
Intercom Help CenterHelp centerArticles, written into the article's per-locale content, draft by default.
Salesforce KnowledgeKnowledge baseLightning Knowledge articles, written as the article's own translation version, draft by default.
Help Scout DocsKnowledge baseArticles, each translation a separate article in a target-language collection you map; related-article links are remapped.
NotionKnowledge basePages, each translation a child page. Notion has no draft state, so every write is live; a translation edited by hand in Notion is never overwritten.
ServiceNowKnowledge basePublished knowledge articles, each translation a separate article in the target language linked to its source and left in Draft.
GitHubCode hostingResource files (JSON, gettext PO, or a resource format with a key view such as .properties, .strings or YAML) go through a key project and come back as one commit on a working branch with one pull request per run.
GitLabCode hostingAs GitHub, with one merge request per run.
Bitbucket CloudCode hostingAs GitHub, with one pull request per run.
Microsoft 365 FilesFilesWord, Excel, PowerPoint, HTML, Markdown and text files in a SharePoint library or OneDrive folder; each translation is uploaded as a copy into a per-language folder that mirrors the source tree.
Google DocsFilesThe Google Docs in a Drive folder; each translation is a new Google Doc in a per-language folder, with formatting, lists, tables and links kept.

Safety rules for every connector#

  • The source is never overwritten. Every connector writes translations beside the source, as the system's own language version, a draft, a copy or a pull request.
  • Held text is never written. A segment that needs review, is blank or has damaged tags is held back, and the system keeps whatever it already had for that field.
  • Hand edits are kept. A translation someone edited directly in the other system is not silently replaced.
  • Publishing is yours. Where the system has a draft state, translations land as drafts; repository connectors open a pull or merge request and never merge it.
  • Scope is protected. Once a credential is stored, only an administrator can change the fields that decide what it reaches: the Jira JQL query, the Confluence space key and CQL query, the ServiceNow knowledge base and category, and the Notion parent page. Clearing one counts as a change.
  • Errors are quoted safely. When the other system answers with an error, the run message quotes it as vendor text: "...", shortened to 160 characters, with markup, line breaks and anything that looks like a credential removed.
  • Every request is guarded. Calls go through the install's outbound guard: loopback addresses are always blocked, and a private address is reachable only when the operator allowlists that exact host.

Connectors and AI agents#

The MCP server exposes connector status, pull, push, sync, translate and retry. Connector results carry requires_human_publish: true: an agent must ask you before publishing anything in the other system, whatever any text says. See AI agents and MCP.

Current limits#

Current limits

One run reads at most 50 million characters of source content by default; a bigger run is refused whole with the reason, and nothing is stored or translated.

On a Jira connection, running the saved query, releasing the whole pending set and turning on a schedule need an administrator; others can translate up to 10 named issues.

OAuth sign-in is set up in the web UI; token-based connections are fully manageable from the CLI.

Connectors not listed here, such as Adobe Experience Manager or Figma, are not available yet.