Skip to main content

Setting Up Your Adobe Workfront Connector

This article guides Workfront administrators through setting up the Smartling connector, including creating a Smartling project, configuring Workfront credentials with a dedicated user, creating custom forms for translation requests, connecting Smartling to Workfront, and configuring connector settings.

Important: This connector is a paid product. For pricing information, please reach out to your Smartling Customer Success Manager.

Prerequisites

Before beginning the configuration, ensure you have:

  • Smartling account with project creation permissions (Account Owner or Project Manager role)

  • Workfront account with administrator privileges

  • Ability to create new users in Workfront (recommended for creating a dedicated user for the connector)

  • Basic understanding of Workfront custom forms and projects


Step 1: Create a Smartling Connector project

1.1 Create the project

  1. Select the Project type “Connector”

  2. Select "Workfront" as your connecting platform

  3. Choose your desired linguistic package or create a new one, and add the source and target languages.

Once the project has been created, ensure that all workflows, linguistic assets, and team members are set up correctly. In particular, we recommend checking that the default workflows for all of your target languages are set up according to your preferences. If desired, these workflows will be used automatically for all translation requests with the connector.

1.2 Download public key

The Smartling integration provides a public key, which is required for establishing secure communication between Smartling and Workfront.

  • Navigate to the Settings tab in your new Smartling project

  • Click Workfront Settings

    settings-tab.png

  • Click Connect to Workfront

  • Locate and click "Download public key here" at the top of the dialog

    public-key.png

  • Save the file as “certificate_pub.crt” to your local machine. You'll need it in Step 2.
    ​

Step 2: Configure Workfront credentials

2.1 Create a dedicated integration user

The Smartling connector uses the Workfront API to interact with Workfront projects and documents. You will need to create an OAuth application and API key. The connector will execute all actions on behalf of the Workfront user account used to create the OAuth application. For security and audit purposes, we strongly recommend creating a dedicated user account for the Smartling integration.

Contact your Workfront administrator to create the user account. To configure the credentials for the Smartling integration, the newly created user must have Workfront administrator privileges.

We recommend using "Smartling" as the first name and "Connector" as the last name for this user account.

Important: The dedicated integration user must not be used to make changes in Workfront and cannot be used for any other Workfront processes beyond the operation of the Smartling connector.

Info: All connector actions appear as being performed by this user in Workfront’s audit logs. Therefore, it is recommended to name the user "Smartling Connector" to easily identify connector activity.

Tip: If you have any questions or need further assistance, please refer to the Workfront documentation.

2.2 Create OAuth2 application

Please log in to Workfront or "Log In As" the user who will be used for the Smartling connector. Their name will be visible as the documents uploader.

The Smartling integration uses server authentication (JWT flow) to connect to the Workfront API. Please complete the steps described in the Workfront documentation. Below you can find an example of how to fill in the form.

  • Name for the new application: Smartling Connector

  • Create a Client Secret by clicking the “Add client secret” button. We recommend adding a note to this secret in the format “Project <aabbcc>”

    client-secret.png

  • Copy the “Client Secret”; you will need it later to configure Smartling

  • Add a public key (upload the “certificate_pub.crt” file from Step 1.2)

    public-key2.png

  • After adding the key, you may notice that the input boxes are empty. Don't worry, the key was added correctly, and the values will be displayed after you save the OAuth app and refresh the page.

    public-keys3.png

  • Click the “Save” button and refresh the page

2.3 Collect required information

After saving, gather the following information from the OAuth2 application page:

Note: Keep these values in a secure location; you'll need them for Step 4.

Step 3: Set up a custom form in Workfront

Custom forms enable users to specify translation requirements directly within Workfront projects or tasks.

Below is an example of a custom form with Smartling fields. You can create a new custom form or extend an existing one.

custom-form.png


3.1 Create the custom form

  1. Navigate to Setup > Custom Forms

  2. Click "New Custom Form"

  3. Select "Project" or "Task" (depending on your workflow)

  4. Name the form: "Smartling Request Translation" (customizable)

3.2 Add form fields

Add the following fields. For each field, the Label is the display text users see on the form (customizable); the Name is the technical identifier read by the connector.

Field

Type

Default Name

Required

Smartling Project

Single-Select Dropdown

smartlingProjectId

Yes

Target Languages

Multi-Select Dropdown

smartlingTargetLocales

Yes

Job Name

Single Line Text

smartlingJobName

No

Job Authorization

Single-Select Dropdown or any text field

smartlingJobAuthorization

No

Job Description

Paragraph Text or any text field

smartlingJobDescription

No

Locale Workflow Override

Paragraph Text

smartlingLocaleWorkflows

No

Rush Job

Single-Select Dropdown or any text field

smartlingJobRush

No

Notification Team

Multi-Select Dropdown (or any text field)

(any name)

No

Field configuration notes:

  • Smartling Project: choices are Smartling project names (label) paired with their project UIDs (value)

    workfront-smartling-project-field.png

  • Target Languages: choices are locale display names (label) paired with locale codes (value)

    workfront-target-locales-field.png

  • Job Name

    workfront-smartling-job-name-field.png

  • Job Authorization: add choices with values true and false

    workfront-job-auto-authorize-field.png

  • Job Description

    workfront-job-description-field.png

  • Locale Workflow Override: one entry per line in localeCode:workflowUid format; overrides default locale workflows per request

    workfront-locale-workflows-field.png

  • Rush Job: add choices with values true and false

    workfront-job-rush-field.png

  • Notification Team: holds the Workfront team name(s) to notify on job events; the field name is mapped in Step 5.2

    workfront-notification-team-field.png


Step 4: Connect Smartling to Workfront

4.1 Establish the connection

  • Return to your Smartling project

  • Navigate to “Workfront Settings” in the Smartling project and click Connect to Workfront. Enter the credentials collected in Step 2.3:

    • Workfront URL

    • Client ID

    • Client Secret

    • Customer ID

    • User ID

    connect-to-workfront.png
  • Click Test Connection and then save it

  • Complete the configuration in the second step of the dialog

4.2 Complete connection setup

After a successful connection, a second dialog appears with core operational settings:

Setting

Description

Job Name Template

Template for Smartling job names. Supports ${object.field} tokens resolved at runtime. See the token reference below.

Mode

Translated documents in Projects: connector monitors Workfront projects.
​Translated documents in Tasks: connector monitors Workfront tasks.

Status key when requesting translation

The Workfront object status that triggers a translation request (e.g., Current). Only objects transitioning to this status via webhook will be picked up.

connection-step2.png

Click Save to complete the connection.

Job name template token reference:

Available tokens depend on the asset type being translated.

Token

Description

Projects mode

Tasks mode

${project.id}

Workfront project ID

✓

✓

${project.name}

Workfront project name

✓

✓

${project.referenceNumber}

Workfront project reference number

✓

✓

${project.objCode}

Object code (PROJ)

✓

✓

${task.id}

Workfront task ID

—

✓

${task.name}

Workfront task name

—

✓

${task.taskNumber}

Task number within the project

—

✓

${task.referenceNumber}

Workfront task reference number

—

✓

${task.objCode}

Object code (TASK)

—

✓

${portfolio.id}

Workfront portfolio ID

✓ (if linked)

✓ (if linked)

${portfolio.name}

Workfront portfolio name

✓ (if linked)

✓ (if linked)

${portfolio.objCode}

Object code (PORT)

✓ (if linked)

✓ (if linked)

Example templates:

${project.name}
${project.name} - ${task.name}
WF-${project.referenceNumber}

4.3 Configure language mappings

As soon as you connect Smartling to your Workfront environment, you will notice an additional configuration in the Workfront Settings. You must enter Workfront language codes into the left column of the Language Configuration. Do not forget to save your changes.
​
​Important: When you configured the smartlingTargetLocales field in Workfront, you filled out two input boxes for each language. The first was the label (for example, "de-Germany"), followed by the name ("de-DE"). The Smartling Language Configuration form should be filled out with the language name.

The following is an example of how a typical configuration looks.

language-configuration.png

Step 5: Configure connector settings

After connecting, open Workfront Settings in your Smartling project. Settings are organized into tabs.

5.1 General

Core settings controlling how content flows from Workfront into Smartling.

Setting

Description

Job name template

Template for Smartling job names. Supports ${object.field} tokens (see token reference in Step 4.2). Can be updated here after initial setup.

Auto-authorize content

Default authorization behavior when the Job authorization field on the request form is not set up or is not populated. When enabled, newly imported content is automatically authorized for translation.

5.2 Request form

Maps the Workfront custom form (created in Step 3) to the connector. The connector reads translation parameters from these fields at request time.

Setting

Description

Custom form name

Name of the Workfront custom form attached to translation requests. If this form is not assigned to the project or task, the request will be ignored.

Smartling project field

Form field name that holds the Smartling project identifier

Target language field

Form field name that holds target locale codes

Locale workflow field

Form field name for per-request locale workflow overrides. If not set, falls back to Locale workflows in Content settings (5.7). If that is also empty, project default workflows are used.

Job name field

Form field name that holds a per-request job name template. If not set or left empty on the form, falls back to the Job name template in General settings (5.1).

Job description field

Form field name that holds the job description

Job authorization field

Form field name whose boolean value marks the job as auto-authorized. If not set or left empty on the form, falls back to Auto-authorize content in General settings (5.1).

Rush job field

Form field name that flags a request as a Rush Job. A Rush Job targets ~50% faster turnaround and is available for Smartling Language Services-managed workflow steps. If not set or left empty on the form, it is treated as false.

Notification team field

Form field name that holds the Workfront team to notify on job events. If not set, notifications will not tag any team.

Authorized team

Workfront team name whose submissions will be processed by Smartling. If specified and the submitter does not belong to this team, the Workfront object status will be rolled back. Leave empty to accept submissions from all teams.

Tip: Field names in this tab must match the Name values (not Labels) of the corresponding Workfront custom form fields.

5.3 File filters

Defines which Workfront files Smartling picks up for translation, and where translated files are written back.

Important: At least one file filter must be configured. Without a filter, no documents will be uploaded for translation. Filters are evaluated in order, and the first matching filter wins.

Each filter is a JSON object. The default configuration picks up all files from Source Files and delivers translations to Translated Files:

{
  "fileType": null,
  "includes": [
    "Source Files/*.*"
  ],
  "excludes": [],
  "translationPath": "${originalFile.path.replaceAll('^Source Files/', 'Translated Files/')}/${originalFile.baseName}_${locale}.${originalFile.extension}",
  "directives": {}
}

Field

Description

fileType

Smartling file type to assign to matched files. If null, the connector infers the type from the file extension; if the extension is unrecognized, the file will not be submitted for translation.

includes

List of glob patterns matching source files to pick up (e.g., Source Files/*.*)

excludes

List of glob patterns for files to skip (e.g., Source Files/*.xlsx)

translationPath

Groovy expression defining where translated files are written. Tokens: ${originalFile.path}, ${originalFile.baseName}, ${originalFile.extension}, ${locale}

directives

Map of Smartling API directives applied to files matched by this filter. Supported directives are file-type-specific; refer to the Supported File Types documentation for each type. Only meaningful when fileType is explicitly set.

Multiple filters can be configured to handle different file types or folders with different translation paths.

PDF files require special handling. See PDF Files. Smartling automatically converts PDFs to Microsoft Word format for translation, so translated files are delivered as .docx. The translationPath must reflect this:

{
  "fileType": "PDF",
  "includes": [
    "Source Files/*.pdf"
  ],
  "excludes": [],
  "translationPath": "${originalFile.path.replaceAll('^Source Files/', 'Translated Files/')}/${originalFile.baseName}_${locale}.${originalFile.extension}.docx",
  "directives": {}
}

Smartling Excel files (xlsx_template) support column-level directives for controlling translation behavior:

{
  "fileType": "xlsx_template",
  "includes": [
    "Source Files/*.xlsx"
  ],
  "excludes": [],
  "translationPath": "${originalFile.path.replaceAll('^Source Files/', 'Translated Files/')}/${originalFile.baseName}_${locale}.${originalFile.extension}",
  "directives": {
    "smartling.character_limit_column": "C",
    "smartling.instruction_column": "B",
    "smartling.locale_column_header_format": "${locale.id}",
    "smartling.no_translate_hidden_elements": "rows,columns,sheets"
  }
}


5.4 DTP

Folder settings for DTP/Reference Materials workflows.

Setting

Description

Reference materials folder

Name of the Workfront folder whose files are uploaded as attachments to the Smartling translation job for translators to reference (e.g., Related Files).

DTP folder

Name of the Workfront folder where job attachments added by translators (post-translation) are synced (e.g., Translated Files).

Leave both fields empty if your workflow does not use DTP or reference materials.

5.5 Job field mapping

Copies values from Workfront custom fields into Smartling job custom fields at job creation time.

Click + Add mapping to add a row. Each row contains:

Column

Description

Workfront field

Name of the Workfront custom form field to read from

Smartling field

Name of the Smartling job custom field to write to

Value mode

Raw Value: copies the stored value as-is.
​Dropdown Label: uses the display label of a dropdown choice instead of its stored value.

5.6 Tracking tasks

When enabled, the connector creates a tree of Workfront tasks that mirrors Smartling translation job progress.

Task tree structure (per Workfront object per job):

Tracking Smartling
├── Job Created                                    ← marked complete immediately
└── Language Summation - {locale}                  ← one per target locale
    ├── TSP Translation Progress - Translation - {locale}
    └── TSP Translation Progress - Upload file to Workfront - {locale}


​Settings:

Setting

Description

Enabled

Toggle to activate tracking task creation

Job form

JSON defining the Workfront custom form template applied to the root translation job task

Locale form

JSON defining the Workfront custom form template applied to each locale-specific task

Form template structure:

{
  "name": "Smartling Tracking Form",
  "mapping": {
    "Smartling Job Name": "${jobName}",
    "Smartling Job Cancelled": "${jobCanceled}"
  }
}
  • name: exact name of the Workfront custom form (category) to attach to the tracking task

  • mapping: map of Workfront field name to value template; templates support ${placeholder} syntax


​Available tokens:

Token

Value

${jobName}

Smartling job name

${translationJobUid}

Smartling job UID

${smartlingProjectId}

Smartling project ID

${sourceLocale}

Source locale code

${targetLocales}

All target locales as a comma-separated string

${targetLocales:array}

All target locales as a JSON array

${targetLocale}

Current locale (locale-form only)

${jobCanceled}

true if the job was canceled

Full example including a rich-text field with a clickable link to the Smartling job:

{
  "name": "Smartling Tracking Form",
  "mapping": {
    "Smartling Job Name": "${jobName}",
    "Smartling Job Number": "${translationJobUid}",
    "Smartling Job Link": "{\"blocks\":[{\"key\":\"sl001\",\"text\":\"SmartlingJob\",\"type\":\"unstyled\",\"depth\":0,\"inlineStyleRanges\":[],\"entityRanges\":[{\"offset\":0,\"length\":13,\"key\":0}],\"data\":{}}],\"entityMap\":{\"0\":{\"type\":\"LINK\",\"mutability\":\"MUTABLE\",\"data\":{\"url\":\"https://dashboard.smartling.com/app/projects/${smartlingProjectId}/account-jobs/${smartlingProjectId}:${translationJobUid}\"}}}}",
    "Smartling Job Cancelled": "${jobCanceled}",
    "Target Languages": ["${targetLocales:array}"]
  }
}

Note: Rich text fields (e.g., MKT Smartling Links) use Workfront's draft-js JSON format. The URL is constructed using the ${smartlingProjectId} and ${translationJobUid} tokens.

Tracking tasks are created when a Smartling job is created and updated as translation progresses.

5.7 Content settings

Setting

Description

External source locale

Source language locale code (default: en-US). Currently used as the value of the ${sourceLocale} token in tracking task templates.

Locale workflows

JSON map of Smartling locale codes to workflow UIDs. Overrides the project-default workflow for each locale. Leave empty {} to use project defaults.

Locale workflows format:

{
  "de-DE": "2b91c391d71a",
  "fr-FR": "3c82d402e82b"
}

You can find a workflow's UID by navigating to the Settings tab in your project > Workflows > click the ellipsis menu for a workflow and select Edit > the UID is listed under the Name field.

Additional Smartling settings

Talk to your Customer Success Manager or Solution Architect about options regarding auto-authorization, translation retrieval type, file versioning, and capturing custom placeholders. For more details, see the Smartling Hosted Connector Configuration Overview.

Did this answer your question?