Orchestrator

Action Bundles

Content is machine translated from English by Phrase Language AI.

Action bundles are groupings of pre-existing actions within the Orchestrator that reflect specific business process steps. They are designed to allow non-technical users, such as Localization Managers and Project Managers, to create workflows without requiring an in-depth understanding of the Phrase API stack.

Action bundles are configured like a standard action, requiring parameters for execution.

Since they contain multiple actions, action bundles consume more Orchestrator actions. This is indicated by a numeric value in the top-right hand corner of the action in the workflow editor.

Users can find and use existing action bundles in the Actions tab of the editor, but cannot create new ones (contact the support team to request a new bundle). When searching for actions, enable the Prioritize Action Bundles option to show action bundles first in the list. A bold blue icon indicates the difference between a regular action and a bundle.

Using an action bundle

To use an action bundle, follow these steps:

  1. Drag a selected action bundle onto a workflow.

    The action bundle appears in the workflow.

  2. Click on the action bundle and select the parameters tab.

  3. Click Edit parameters.

    Required parameters for the action bundle are displayed.

  4. Provide required parameters and click Save parameters.

    Parameters are saved to the action bundle and displayed.

  5. Click Edit parameters again if changes are required.

Available bundles

Add or update a translation

Description:

This action bundle is the equivalent of clicking into a translation field in the Strings editor and typing a translation into the field (overwriting anything that pre-existed).

Input parameters:

  • Project ID

    The Strings project ID to get the locales of.

  • Locale ID

    The Locale ID to identify the language version to be added.

  • Key ID

    The Key ID to identify the key to edit.

  • Translated String

    The string to add to the selected translation.

Output:

{
  "projectId": "f6dfee6466384379606b6158a410cd46",
  "translation": {
    "content": "Highlights of Phrase NextMT",
    "created_at": "2024-11-21T15:13:46Z",
    "excluded": false,
    "id": "91ad609cbd7d57e17cbf24432ba3d661",
    "key": {
      "data_type": "string",
      "id": "c7e7924dbb16527eaa0d892a8f0fd0fd",
      "name": "key3",
      "plural": false,
      "tags": [
        "35-2024",
        "upload-20240830_150155",
        "job-4C4F8EE9"
      ]
    },
    "locale": {
      "code": "en-CA",
      "id": "086fe5acddd58c52a5f8b5d9ec4c5a21",
      "name": "en-ca"
    },
    "placeholders": [],
    "plural_suffix": "",
    "state": "unverified",
    "unverified": true,
    "updated_at": "2024-11-21T15:18:09Z"
  }
}

Assign and notify provider

Input parameters:

  • Access token

    For authentication.

  • Email template UID

  • list_of_job_uids

    • list

  • Project template UID

  • Project UID

    An array including project ID(s) entered manually or referenced from the trigger.

Output:

{
  "jobs": [
    {
      "uid": "string"
    }
  ],
  "emailTemplate": {
    "id": "string"
  },
  "cc": [
    "string"
  ],
  "bcc": [
    "string"
  ]
}

Check if all target locales of a Strings job are completed

Description:

This action bundle checks if all Strings job target locales are completed. If so, it returns true, if not it returns false.

Input parameters:

  • Access token

    For authentication.

  • Project ID

    For listing all job target locales from within a specific project.

  • Job ID

    For listing all job target locales.

Output:

true 
OR
false

Export content from Strings projects to online repository

Description:

This action bundle takes the project ID(s), and based on those and the output of listing repository syncs, identifies the repository syncs IDs the export is subsequently triggered for in a loop. The outcome of the action bundle is the list of repository syncs for which the export was triggered.

Input parameters:

  • Access token

    For authentication.

  • Project IDs

    An array including project ID(s) entered manually or referenced from the trigger.

  • Strings account ID

    Strings ORG ID required for listing the repository syncs.

Output:

[
  {
    "auto_import": false,
    "created_at": "2024-11-22T12:24:38Z",
    "id": "6315b3fd21d7735d0735f1d496b3832f",
    "status": "running",
    "type": "export"
  },
  {
    "auto_import": false,
    "created_at": "2024-11-22T12:24:39Z",
    "id": "928298761a94a979e1eb6c01948b2041",
    "status": "running",
    "type": "export"
  }
]

Fetch job UIDs for target languages

Input parameters:

  • Access Token

    For authentication.

  • File name

  • loop_variable

  • list

  • Project UID

Output:

[ 
{ "uid": "string" }
…
 ]

Get job UID list

Input parameters:

  • input_array

  • UID Path

Output:

[
  { "uid": "string" },
  { "uid": "string" }
.
.
]

Get locales of a project

Description:

This action bundle hides the paging need for List Locales API endpoint. It also adds the project ID to the payload to enable more robust looping.

Input parameters:

  • Project ID

    The Strings project ID to get the locales of.

  • Strings access token

Output:

{
  "locales": [
    {
      "code": "en",
      "default": true,
      "id": "77e27f1d896629b0641063652572c038",
      "name": "en"
    },
    {
      "code": "fr",
      "default": false,
      "id": "2e8fb31c39957bb557bb96c0228960bf",
      "name": "fr"
    }
  ],
  "projectId": "f6dfee6466384379606b6158a410cd46"
}

Identify jobs for target locales

Input parameters:

  • Access token

    For authentication.

  • File name

  • Project UID

  • Target locales

Output:

[
  { "uid": "string" },
  { "uid": "string" }
.
.
]

List translations by locale

Description:

This action bundle hides the paging need for List translations by locale API endpoint. It also adds the project ID to the payload to enable more robust looping.

Input parameters:

  • Project ID

    The Strings project ID to get the translations of.

  • Locale ID

    The Strings locale ID within the project to get the translations of.

  • q

    The Strings query.

  • Sort

  • Strings access token

Output:

{
  "projectId": "f6dfee6466384379606b6158a410cd46",
  "translations": [
    {
      "content": "This is new translation - six",
      "created_at": "2024-11-21T14:34:06Z",
      "excluded": false,
      "id": "0dbb663df544008df7e47176f8ec0444",
      "key": {
        "data_type": "string",
        "id": "15798c1dcc05e2d955d2de1959778347",
        "name": "key1",
        "plural": false,
        "tags": []         
      },
      "locale": {
        "code": "en-CA",
        "id": "086fe5acddd58c52a5f8b5d9ec4c5a21",
        "name": "en-ca"
      },
      "placeholders": [],
      "plural_suffix": "",
      "state": "unverified",
      "unverified": true,
      "updated_at": "2024-11-21T14:55:48Z"
    }
  ]
}

Lock Segments

Input parameters:

  • Access token

    For authentication.

  • Job UID

  • Project UID

  • Segment IDs

Output:

{
  "jobs": [
    {
      "uid": "string",
      "status": "ACCEPTED",
      "providers": [
        {
          "type": "string",
          "id": "string",
          "uid": "string"
        }
      ],
      "targetLang": "string",
      "workflowLevel": 0,
      "workflowStep": {
        "name": "string",
        "id": "string",
        "uid": "string",
        "order": 0,
        "lqaEnabled": true
      },
      "filename": "string",
      "dateDue": "2019-08-24T14:15:22Z",
      "dateCreated": "2019-08-24T14:15:22Z",
      "updateSourceDate": "2019-08-24T14:15:22Z",
      "imported": true,
      "jobAssignedEmailTemplate": {},
      "notificationIntervalInMinutes": 0,
      "continuous": true,
      "sourceFileUid": "string"
    }
  ],
  "project": {
    "name": "string",
    "uid": "string"
  }
}

Map job to workflow steps

Input parameters:

  • Access token

    For authentication.

  • Job UID

  • Project UID

  • Workflow level number

Output:

{
  "taskId": "string",
  "workflowLevel": "string",
  "resourcePath": "string",
  "project": {
    "uid": "string"
  },
  "job": {
    "uid": "string"
  }
}

Prepare segments v3

Input parameters:

  • Access token

    For authentication.

  • Job UID

  • Project UID

Output:

[
  {
    "segmentId": "string",        // Value from ."@id"
    "origin": "string",           // Value from ."@m:trans-origin"
    "score": number,              // Numeric value from ."@m:score"
    "length": number,             // Length of the .source string
    "source": "string",           // Value of .source
    "target": "string"            // Value of .target
  },
  ...
]

Run QA on a single job v3

Input parameters:

  • Access token

    For authentication.

  • Job UID

  • Project UID

  • warning types

Output:

{
  "projectUid": "project123",
  "jobUid": "job456",
  "segmentIds": ["string"],
  "warnings": [
    {
      "segmentId": "string",
      "warnings": [
        {
          "id": "string",
          "ignored": true,
          "type": "string",
          "repetitionGroupId": "string"
        }
      ],
      "ignoredChecks": ["string"]
    }
  ]
}

Subtract lists

Input parameters:

  • Exclusion list

  • Source list

Output:

[1, 3, 5]
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.