> ## Documentation Index
> Fetch the complete documentation index at: https://koreai.mintlify.app/llms.txt
> Use this file to discover all available pages before exploring further.

# External Models

Connect and manage models hosted outside AI for Process, including provider-hosted models from OpenAI, Anthropic, Google, Cohere, and Amazon Bedrock, as well as custom models via API integration.

The **External Models** tab in the Models section lets you connect models hosted outside AI for Process. Once connected, these models are available in Prompt Studio, Workflows, Model Traces & Analytics, Audit Logs, and Billing.

You can connect external models in two ways:

* **Easy Integration** - Guided setup for OpenAI, Anthropic, Google, Cohere, or Amazon Bedrock.
* **API Integration** - Custom model connection using an API endpoint, authentication, and request configuration.

## View External Models

The **External Models** tab lists all models connected to your workspace via Easy Integration or API Integration.

| Field      | Description                                                          |
| ---------- | -------------------------------------------------------------------- |
| Model Name | Name assigned during integration.                                    |
| Type       | Whether the model was added via Easy Integration or API Integration. |
| Source     | The provider or origin (for example, OpenAI, Hugging Face, Custom).  |
| Added On   | Date the model was last added or updated.                            |

Click a model to view or manage its connections.

<img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/external_models_list.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=f666b1e7acf6756d768cd8b71eb5ded2" alt="External models table" width="1920" height="795" data-path="ai-for-process/models/images/external_models_list.png" />

## Add an External Model

### Easy Integration

Use Easy Integration to connect models from OpenAI, Anthropic, Google, Cohere, or Amazon Bedrock via a guided setup.

#### Integrate with OpenAI, Anthropic, Google, or Cohere

1. Click **Models** in the top navigation bar.

2. Go to the **External Models** tab and click **Add a model**. The **Add an external model** dialog opens.

   <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/navigating-to-external-models.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=83fdf7092a84473c893a0560e4da9e40" alt="Navigating to External Models" width="1857" height="678" data-path="ai-for-process/models/images/navigating-to-external-models.png" />

3. Select **Easy integration** and click **Next**.

   <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/add-external-model-easy-integration.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=0e1a243f04b7e450a0e9acc6785c2925" alt="Add External Model Easy Integration" width="695" height="807" data-path="ai-for-process/models/images/add-external-model-easy-integration.png" />

4. Select a provider and click **Next**. See the full [list of supported models](/ai-for-process/models/supported-models).

5. Select a model and click **Next**.

6. Enter the API key from your provider and click **Confirm**.

The model is added and appears in the External Models list.

<Note>
  * To edit or delete a model, click the three-dot icon next to its name.
  * Use the **Inferencing** toggle to enable or disable the model across AI for Process. If the toggle is off, selecting the model in the playground returns an error that the model is not active.
</Note>

#### Configure Amazon Bedrock Access

Before integrating Amazon Bedrock models, set up IAM credentials in your AWS account. This enables secure cross-account access using AWS STS.

**Create the IAM Role and Trust Policy**

Create an IAM role in your AWS account with permission to invoke Bedrock models. For guidance, see the [AWS IAM role creation guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) and [AWS IAM policy examples for Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/security_iam_id-based-policy-examples.html).

Assign the following permissions to the role:

```json theme={null}
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "bedrock:InvokeModel",
        "bedrock:ListFoundationModels"
      ],
      "Resource": "*"
    }
  ]
}
```

Set the trust policy to allow AI for Process to assume the role. Replace `<kore-arn>` with the AWS account ID provided by the platform:

```json theme={null}
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "<kore-arn>"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

For private or on-premises deployments, point the trust policy to your internal AWS IAM role.

Use the STS endpoint for the region where your IAM role resides. For the full list, see [AWS STS endpoints](https://docs.aws.amazon.com/general/latest/gr/sts.html). For example: `https://sts.us-east-1.amazonaws.com/`. The STS region must match the IAM role's region, not necessarily the model's region.

**Register Your IAM Role**

After creating the IAM role, raise a support ticket to register it with AI for Process:

1. Submit a support ticket with your IAM Role ARN, requesting that it be added to the trust policy.
2. Wait for confirmation from Support that the role has been registered.

<Note>Without this step, the platform cannot assume your IAM role. Both your AWS account and the Kore.ai environment must explicitly trust each other for secure cross-account access.</Note>

**Find the Model ID and Region**

The Model ID format depends on how the Bedrock model is deployed:

* **Base foundation models**: Use the standard model IDs from the [AWS supported models list](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html).
* **Marketplace-deployed models**: Go to **Bedrock Console → Model Access → Subscriptions** and locate the Model ARN. Enter only the model name after `foundation-model/`. For example, from `arn:aws:bedrock:us-east-1::foundation-model/your-model-id`, enter `your-model-id`.
* **Models with inference profiles (provisioned throughput)**: Go to **Bedrock Console > Provisioned Throughput**, copy the Inference ARN or ID (for example, `bedrock:provisioned-model-inference/my-throughput-id`), and enter `my-throughput-id` in the **Model ID** field.

#### Integrate with Amazon Bedrock

Complete [Configure Amazon Bedrock Access](#configure-amazon-bedrock-access) before these steps.

1. Click **Models** in the top navigation bar.

2. Go to the **External Models** tab and click **Add a model**.

3. Select **Easy integration** > **AWS Bedrock** and click **Next**.

   <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/aws_dialog.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=32eb56048861f289d9ed6296a0aeebd1" alt="Select AWS Bedrock" width="454" height="642" data-path="ai-for-process/models/images/aws_dialog.png" />

4. In the AWS Bedrock dialog, configure the following:

   <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/aws_bedrock_config.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=9e9763b551bd940140c43b3df18b7243" alt="AWS Bedrock configuration" width="1516" height="848" data-path="ai-for-process/models/images/aws_bedrock_config.png" />

   **Credentials**:

   * **Identity Access Management (IAM) Role ARN**: Enter the full ARN of the IAM role with Bedrock permissions.
   * **Trusted Principal ARN**: Pre-populated and read-only. This is the AI for Process IAM principal used to assume your role.

   **Model Details**:

   * **Model name**: Enter a display name to identify this model within your workflows.
   * **Model ID**: Enter the Model ID or Endpoint ID. See [Find the Model ID and Region](#find-the-model-id-and-region) above.
   * **Region**: Specify the AWS region where the model is deployed.

   **Headers** (optional): Add custom HTTP headers if required. For example: `"Content-Type": "application/json"`.

   **Variables**: Define input variables for your request payload. For example: `{{prompt}}`, `{{system.prompt}}`.

   **Body**: Enter a sample JSON request body. Use `{{variableName}}` to bind input fields dynamically. The structure must follow the model-specific API schema.

   ```json theme={null}
   {
     "prompt": "{{prompt}}",
     "max_tokens": 200,
     "temperature": 0.7
   }
   ```

5. Under **Test Response**, enter sample values for your variables and click **Test** to invoke the model and preview the response.

6. Under **Configure JSON Path**, define JSON paths to extract the output text and token counts from the response.

7. Click **Save as draft** to store the configuration without activating it, or click **Confirm** to add the model.

The model appears in the **External Models** tab and is available in Prompts and Workflows.

### API Integration

Use API Integration to connect a custom model by configuring the endpoint, authentication, and request-response structure.

1. Click **Models** in the top navigation bar.

2. Go to the **External Models** tab and click **Add a model**.

   <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/navigating-to-external-models1.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=8e311ed29aaf353505294ffc2f3505fa" alt="Navigating to External Models" width="1857" height="678" data-path="ai-for-process/models/images/navigating-to-external-models1.png" />

3. Select **Custom integration** and click **Next**. The **Custom API integration** dialog opens.

   <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/add-external-model-api-integration1.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=284b6e7abc80e45967e065d7447f1e86" alt="Add External Model API Integration" width="518" height="620" data-path="ai-for-process/models/images/add-external-model-api-integration1.png" />

4. Enter a **Model name** and **Model endpoint URL**.

   <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/custom-api-integration-general-details.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=c788a576faf1a0dccba629e39faaad62" alt="Custom API Integration General Details" width="1517" height="735" data-path="ai-for-process/models/images/custom-api-integration-general-details.png" />

5. Select an **Authorization profile** for the request, or select **None** to proceed without authentication. See [Authorization Profiles](/ai-for-process/settings/security-control#authorization-profile-summary) for details.

   <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/set-auth-profile-parameter.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=71d00be03f279af0bb22e4acfe40d63d" alt="Set auth profile" width="1948" height="638" data-path="ai-for-process/models/images/set-auth-profile-parameter.png" />

6. In the **Headers** section, enter the **Key** and **Value** for each header to send with the request.

   <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/custom-api-integration-headers.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=7287d2bc6ce7f11737eaa89ee8cfc057" alt="Custom API Integration Headers" width="1523" height="735" data-path="ai-for-process/models/images/custom-api-integration-headers.png" />

7. In **Model configurations**, select one of the following options:

   **Option A: Default**

   Manually define variables, the request body, and test the model response.

   <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/select-default.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=a2fc6a396a444a65093b4d4cbbd190b8" alt="Select Default" width="883" height="408" data-path="ai-for-process/models/images/select-default.png" />

   * **Variables**: Define the variables for the request payload.
     * **Prompt variables**: The Prompt variable is mandatory by default. Enable the System prompt and Examples toggles if needed.

       <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/prompt-variables-add.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=cffdb2b0cdaa6d4e875a45a1961db683" alt="Prompt variables" width="905" height="549" data-path="ai-for-process/models/images/prompt-variables-add.png" />

     * **Custom variables** (optional): Click the **Custom variables** tab and then **+Custom variables**. In the dialog, enter the **Variable name**, **Display name**, and **Data type**.

       <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/custom-variables-add.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=46a7980ca7b0f2fa010e6fcc5dce43a8" alt="Add custom variables" width="1231" height="711" data-path="ai-for-process/models/images/custom-variables-add.png" />

       <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/add-custom-variable.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=79ffd6ffd7f8a133b48b45df814134f0" alt="Custom variable form" width="474" height="594" data-path="ai-for-process/models/images/add-custom-variable.png" />

   * **Body**: Define the request body with the model's parameters. Use `{{variable}}` for dynamic mapping. Ensure the format is correct — incorrect formatting causes API testing to fail.

     <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/body-parameters.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=708e628042ac9e6d4f78255755a60e7f" alt="Request body" width="728" height="396" data-path="ai-for-process/models/images/body-parameters.png" />

   * **Test Response**: Click **Test** to invoke the model.

     <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/click-test-request.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=d20b9dce268be6c799509d019e8ecf32" alt="Test request" width="856" height="418" data-path="ai-for-process/models/images/click-test-request.png" />

     In the **Sample Input** dialog, enter the **Prompt**, **System prompt**, and **Examples**, then click **Confirm**.

     <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/sample-input-dialog.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=ac62057a8adfe9056dd729abd109fdeb" alt="Sample input" width="347" height="428" data-path="ai-for-process/models/images/sample-input-dialog.png" />

     After the response is generated, configure the **JSON path** for the following fields:

     * **Output Path**: The JSON key containing the model's output. This determines which key maps to the response in Prompt Studio. For example: `choices[0].message.content`.

       <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/output-path-entry.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=c8ea49e36a4c5b1d1c8904912ce33de1" alt="Output path" width="823" height="476" data-path="ai-for-process/models/images/output-path-entry.png" />

     * **Input Tokens**: The JSON key for input token count. For example: `usage.prompt_tokens`.

       <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/input-tokens-entry.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=ee19225f6e5e093ddaa3190f82d86045" alt="Input tokens" width="792" height="547" data-path="ai-for-process/models/images/input-tokens-entry.png" />

     * **Output Tokens**: The JSON key for output token count. For example: `usage.completion_tokens`.

       <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/output-tokens-entry.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=7a95612da6619e6e7340e3f048d144fc" alt="Output tokens" width="1022" height="547" data-path="ai-for-process/models/images/output-tokens-entry.png" />

   **Option B: Existing Model Provider Structures**

   Use this option to automatically map the request and response schemas using a known provider format. Unlike the Default option, this enables advanced features such as structured outputs and multimodal support.

   * **Model Features**: Enable one or more features. At least one must be enabled.

     <Note>Enable only those features that the model supports. Enabling unsupported features may cause unexpected behavior.</Note>

     | Feature             | Description                                                                                                                              |
     | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
     | Structured response | Enables structured output in [Prompts](/ai-for-process/prompts#add-prompts) and [Workflows](/ai-for-process/workflows/workflow-builder). |
     | Data generation     | Enables synthetic data generation for text tasks in [Prompt Studio](/ai-for-process/prompts#add-prompts).                                |
     | Streaming           | Enables real-time token-by-token generation for Agentic Apps. (Coming soon)                                                              |
     | Modalities Support  | Enables Text-to-Text, Text-to-Image, Image-to-Text, and Audio-to-Text in [Workflows](/ai-for-process/workflows/workflow-builder).        |

     <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/model-features-list.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=7ca8d3e9141172153060721e501cebdf" alt="Model features" width="991" height="594" data-path="ai-for-process/models/images/model-features-list.png" />

   * **Body**: Select a provider schema to map the request-response structure.

     * **Anthropic (Messages)**: Uses the [Anthropic Messages API](https://docs.anthropic.com/en/api/messages) schema.
     * **OpenAI (Chat Completions)**: Uses the [OpenAI Chat Completions API](https://platform.openai.com/docs/api-reference/chat) schema.

     <img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/api-reference-model.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=4df10b8b94f256acd81ca0c362e7e5a2" alt="API reference" width="902" height="281" data-path="ai-for-process/models/images/api-reference-model.png" />

     Click **Save as Draft** to save the model with a *Draft* status.

8. Click **Confirm** to add the model to the External Models list.

## Manage Connections

Each external model can have multiple connections, each with its own credentials or API key. You can track usage, billing, and analytics per connection independently.

For example, you can add multiple API keys for the same commercial model (such as multiple GPT-4 keys for OpenAI), with each key managed as a separate connection.

When adding connections:

* Each connection name must be unique.
* Each API key must be unique for the model.

Click a model in the External Models list to open its Connections page. From here, you can add new connections or edit and delete existing ones.

| Field           | Description                                                                                                                                                   |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Connection Name | Name given during model integration. Not editable after saving.                                                                                               |
| Added By        | User who created the connection.                                                                                                                              |
| Added On        | Date the connection was created.                                                                                                                              |
| Actions         | **Toggle for Inference** - Enable or disable inference for this connection. **Edit** - Update the API key or credentials. **Delete** - Remove the connection. |

Once added, the model and connection names appear across AI for Process. Where you select a model, you can also choose a specific connection if multiple are configured.

## Manage API Integrations

Once a custom API integration is active and the **Inferencing** toggle is on, the model is available across AI for Process. You can disable inferencing at any time.

To manage an integration, click the three-dot icon next to its name and select one of the following:

* **View**: View integration details.
* **Copy**: Create an editable copy of the integration.
* **Delete**: Remove the integration.

<img src="https://mintcdn.com/koreai/ZWdPlWVrHiJ6FRH_/ai-for-process/models/images/three-dots-icon-options.png?fit=max&auto=format&n=ZWdPlWVrHiJ6FRH_&q=85&s=8d9b36b6fcdb5a7a1c7fbbbf2ac9a3e5" alt="Three Dots Icon Options" width="1890" height="664" data-path="ai-for-process/models/images/three-dots-icon-options.png" />
