Integrations

Marketo (TMS)

Available for

  • Enterprise plan (not available for LSP plans)

Get in touch with Sales for licensing questions.

Available for

  • Enterprise plan (Legacy)

Get in touch with Sales for licensing questions.

Marketo is automation software designed for account-based marketing and other marketing services.

Marketo connector allows the downloading of source content and uploading of translations to/from a Marketo server for the following content types:

  • Emails

  • Email templates

  • Files

  • Forms

  • Landing pages

  • Landing page templates

  • Segmented dynamic content

  • Snippets (including landing pages and emails)

Segmentation

Content from all segments is imported into one job for language-neutral segmentation (e.g. gender). Content from each segment is then imported into separate jobs for language-specific segmentation (e.g. preferred language). These translations are stored within the original document as segmented dynamic content.

Mapping between segments and target languages is configured in the connector settings. Multiple segments can share the same target language. Each connector instance supports only one source segment. To deliver translations to multiple target languages while preserving per-segment content, configure a separate connector for each segment.

Target languages configured on the Marketo connector must exactly match the target languages configured in the project template or service that uses the connector to ensure other functionalities, such as Submitter portal, work correctly.

Mapping a segment as a delivery target overwrites that segment's existing content with the translated content of the source segment. To create distinct assets instead of overwriting segment content, select one of the following under Create translations in connector settings.

  • as separate documents: creates a copy for each target language. Segment-specific content is not preserved.

  • as copies with translated segments: creates a copy for each target language and translates all segment variants inside it.

Translating All Segment Variants

Select as copies with translated segments under Create translations in connector settings to translate every segment variant of the dynamic content in one pass. Phrase TMS creates a separate copy of the original asset for each target language, named original-name [language] (for example, Black Friday Promo [de-de]). Every segment variant is translated inside that copy, and the default segment is listed first. Static content is kept in each copy.

This option applies to emails, landing pages, and snippets. A segmentation name, a source segment, and a segment-to-language mapping are not required. Because each target language is stored in its own copy, one connector covers all segments.

The original asset remains unchanged. Translations are not stored within the original asset as segmented dynamic content.

Template Restrictions

Localized templates and assets have the same name as the original-name [language] (e.g. Black Friday Promo [de-de]). A localized asset references a localized version of an object (template, snippet, etc.) provided the object exists in that language. If not, it references the original object.

Only approved templates can be referenced. If the template is localized, the connector automatically moves it to the approved state.

Excluding Modules from Translation

To exclude Marketo modules from translation, add data-translate attributes to the module's first HTML tag and set the respective variable that controls its visibility either to false, 0, none, or hidden.

Example:

<div class="mktoText" id="leftsidebar" mktoname="Left Sidebar">
  <h3 data-translate="${leftSitebar}">This heading will be excluded</h3>
  <p>This paragraph will be excluded too</p>
</div>

Variables translation and mapping

  • Available when Create translations -> as separate documents or as copies with translated segments is selected in connector settings.

  • Variables mappings are specified in connector settings. In the variable name, set the Marketo variable name without the enclosing ${} and in the value field, set the required value that should be used in translated asset. In the value field, the {targetLang} (target asset language), {targetLangDir} (target asset language direction: ltr, rtl) macros can be used.

  • All string variables in landing pages that are not mapped in connector settings are translated.

  • Variables translation is not supported for emails. Only global variables (variables not scoped to a module) are mapped, and only if a variable with the same name exists in the email.

Configure In-Context Preview

The In-context preview feature offers a real-time preview of original or translated text in both the CAT web editor and CAT desktop editor.

Tables, columns, various graphics, formatting, and fonts (if installed by users) are supported. The feature is meant to provide context when translating and is not a perfect representation of the original or completed document; some visual differences are expected. It can also be influenced by enabling/disabling Allow loading of external content in editors option in Access and Security settings.

Phrase requirements:

  • Pass through the enterprise firewall to access the on-premise installation.

  • Authenticate into the authoring environment.

Firewall configuration for on-premise installation:

  • Installation must be accessible from the Phrase server IP addresses. Refer to Phrase Servers IP Addresses for the current list.

  • Domain name must be able to be resolved externally.

Note

Some HTML tags present a risk and the CAT editor removes them from this HTML when displaying the preview. This is to ensure user's data privacy and security.

Examples of removed tags include FORM, IFRAME, SCRIPT, SVG, VIDEO, EMBED, OBJECT or background-image CSS properties.

Marketo dynamic-content-image-segment blocks store text as alt or label text for an image. This text has no visible anchor in the rendered email, so the In-context preview cannot highlight it directly and instead highlights the nearest visible occurrence of matching text.

Marketo dynamic content jobs can merge multiple segment variants (Default, 50-100k, 2-50k, <2k) into a single MXLIFF file. In-context preview renders only the Default variant. Segments belonging to the other variants appear in the grid without a corresponding element in the preview. All segments remain translatable and export correctly.

Use Cases

There are a number of use cases for the connector:

  • Project managers can add files directly to projects from an online repository.

  • Set up the submitter portal to allow Submitters to add files to requests directly from the online repository.

  • Use automated project creation (APC) to have new projects automatically created when a change in the last modified date is detected for monitored files or a folder.

    Marketo Settings

    1. Enable REST APIs in the Marketo account.

      See Marketo documentation for instructions.

    2. Go to Admin and click on LaunchPoint in the Integration section.

    3. Create a new service or view details of an existing service.

    4. Copy and save your Client ID and Client Secret.

    5. Close the dialog box and navigate back to the Integration section of the Admin page.

    6. Select Web Services.

    7. Copy the subdomain from the Identity URL in the REST API section (e.g. 000-MJB-007).

    Phrase TMS Settings

    1. From the Settings Setup_gear.png page, scroll down to the Integrations section.

    2. Click on Connectors.

      The Connectors page opens.

    3. Click New connector.

      The Create connector page opens.

    4. Change the Type to Marketo and provide a name for the connector.

    5. Provide the following information:

      • Marketo API key

        Enter Marketo Client ID.

      • Marketo API secret

        Enter Marketo Client Secret.

      • Marketo API identity URL

        Enter the first part of the Marketo Identity URL

      • If requested by Technical Support team, select Log debug information.

      • Create translations options:

        • If not using language-specific segmentation to store target translations, select as separate documents.

        • If using language-specific segmentation, select as segmented dynamic content, and click Test connection.

          Provide Segmentation name and mapping requirements from the dropdown lists and indicate which segment contains the source content.

        • To translate all segment variants in a separate copy for each target language, select as copies with translated segments. No segmentation name or mapping is required.

      • Select Translate tokens to include tokens in translation.

      • Select Translate snippets to include snippets in translation.

      • Optionally, configure Workspaces. This is needed if the Marketo account has multiple workspaces or if the API user is restricted to a single workspace. Enter the exact workspace name as it appears in Marketo under Admin/Users & Roles/Workspaces. This is case-sensitive and must match exactly. Leave blank to use the account’s default workspace.

      • Optionally, configure Marketo variables. Map Marketo variables to fixed values in translated assets. This section is not shown when Create translations as segmented dynamic content is selected. For each variable:

        • In the first field, enter the Marketo variable name without the enclosing ${}.

        • In the second field, enter the value to use in the translated asset. The macros {targetLang} (target asset language) and {targetLangDir} (target asset language direction, ltr or rtl) are supported.

          A new row is added automatically after a variable is filled in.

    6. If not verified in the previous step, click Test connection.

      A checkmark will appear if the connection was successful. A red exclamation point will appear if it wasn't. Hover over the icon to see additional details.

    7. Click Save.

      The connector is added to the list on the Connectors page.

    Was this article helpful?
    ★ ★ ★ ★ ★

    Sorry about that! In what way was it not helpful?

    The article didn’t address my problem.
    I couldn’t understand the article.
    The feature doesn’t do what I need.
    Other reason.

    Note that feedback is provided anonymously so we aren't able to reply to questions.
    If you'd like to ask a question, submit a request to our Support team.
    Thank you for your feedback.