# 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**&#x20;
     * 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**&#x20;

1. Copy the **Redirect URL** in the modal window.&#x20;

<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**&#x20;

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

4. Click **Save** to connect the integration. &#x20;

### 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:&#x20;
   1. **Name**: `Push to Parta` (must match exactly)
   2. **Abbreviation** and **Order**: Based on your internal process.&#x20;
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**.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.parta.io/translation/ai-powered-translation/phrase-integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
