> For the complete documentation index, see [llms.txt](https://help.parta.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.parta.io/translation/ai-powered-translation/phrase-integration.md).

# Phrase Integration

## **How the Integration Works**

The integration between Parta.io and Phrase lets you send courses for translation and receive them back ready for polishing or publishing. Here’s the high-level flow:

1. **Create a course** in Parta.io that needs localization.
2. **Push content to Phrase** with one click.
   * [**Verify** the integration is set up in Parta.io.](#step-1-set-up-oauth-in-phrase)
   * **Confirm** the ['Push to Parta' workflow step](#configure-the-workflow-step-in-phrase) exists in Phrase.
3. On the Phrase side, **translate** the content and mark the workflow step as complete.
4. In Parta.io, **retrieve** the translated course for final edits or LMS publishing.

***

### **Step 1: Set Up OAuth in Phrase**

1. In your Phrase organization, navigate to **TMS** **→** **Settings →** scroll down to the **Integrations** **→** **Registered OAuth Apps.**
2. Click **New** and enter the following details:
   * **Name:** Any name (e.g., '[Parta.io](http://parta.io)').
   * **Redirect URL (Callback): required**
     * Copy this URL from your [Parta.io](http://parta.io) account:
       * Go to **Company Settings → Localization → Connect**.
       * In the modal window, copy the **Redirect URL**.
   * **Description:** required field.
   * Click **Save**.
3. **Retrieve the Client ID**

   * After saving, find the new OAuth connection in the **Registered OAuth Apps** list.
   * Copy the **Client ID**.

   <figure><img src="/files/AIhJtFC3J9RquGT5aTvt" alt=""><figcaption><p>Phrase -> Settings -> Registered OAuth apps</p></figcaption></figure>

### **Step 2: Connect OAuth in Parta.io**

1. Go to **Parta.io → Company Settings → Localization → Connect**.
   * In the modal:
     * Select your **Data Center** (US or EU—based on your Phrase account).
     * Paste the **Client ID**.

{% hint style="warning" %}

#### **Additional Information**

* The **Client ID is not stored** until all integration steps are successfully completed. Do not exit the setup process prematurely.
* If you encounter the error '**No auth found by client\_id'** in Phrase, ensure that:
  * You are using a valid **Client ID**.
  * You repeat the integration steps correctly.
    {% endhint %}

### **Step 3: Create Webhook**

1. Copy the **Redirect URL** in the modal window.

<figure><img src="/files/XqcJN7FDYvCHTNcKEJzo" alt=""><figcaption></figcaption></figure>

2. In Phrase, go to TMS → Settings → **Webhooks**.
3. Click **Add webhook** and:

   * Paste the URL into the **URL** field.
   * Enable the event: **Job status changed**.
   * Click **Create Webhook** to save.

   <figure><img src="/files/kyd3K4wDKMgbb8bGAb01" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Important**

Enable the event in Phrase before saving your webhook: **Job status changed.**
{% endhint %}

4. Click **Save** to connect the integration.

### Step 4: **Authorize the Integration:**

* Follow the authorization process in Phrase.
* Click **Allow** to confirm and complete the connection.

<figure><img src="/files/fp8IQ4WY4yAiEjS2BEDM" alt=""><figcaption><p>If you haven't seen this page revise your integration setup.</p></figcaption></figure>

## Configure the Workflow Step in Phrase

To send translated courses back to Parta.io, a specific workflow step must be set up:

1. In Phrase, go to **TMS → Settings → Project settings → Workflow steps**.
   * Click **New workflow step** and fill in:
     * **Name**: `Push to Parta` (must match exactly)
     * **Abbreviation** and **Order**: Based on your internal process.
2. Click **'New workflow step'** and fill in:
   1. **Name**: `Push to Parta` (must match exactly)
   2. **Abbreviation** and **Order**: Based on your internal process.
3. Add the `Push to Parta` step to any localization templates used for Parta.io.

{% hint style="warning" %}
**Important:**

* The workflow step **must** be named exactly **`Push to Parta`**—otherwise, Parta.io won’t recognize it.
* The step’s **status** must be **`Completed`** (you can automate or set it manually).
  {% endhint %}

### **Permissions**

* To set up the integration, you’ll need **Administrator** access.
* To send a course for translation, you’ll need the **Create Course** permission.

When everything is set up, you're ready to translate your project.<br>

## Translate projects with Phrase

1. Open any project in Parta.io.
2. Go to **Translation → AI Translation**.
3. Choose **Phrase** as your translation provider.
4. Select a **template**.
   * The project name, source language, and target language will be pre-filled automatically.
   * You can update these fields if needed.

{% hint style="info" %}
Note: By default, the project name in Phrase matches the Parta.io project name. If a duplicate name exists, Phrase will add an index to differentiate them.
{% endhint %}

5. Click **Translate**.
6. When the translation is complete, the translated course will appear in your **Catalog**.
