# AI Agent Import/Export

The Import and Export functionality is designed for AI Agent configuration transfer, allowing users to easily migrate AI Agents across environments. This feature helps you move your agents rapidly between development, stage, and production environments without requiring the agents to be rebuilt.

The primary goal of this feature is to reduce errors and rework by maintaining consistent configurations through standardized imports and exports. It brings faster agent rollouts to another environment, greater consistency and also better experimentation space, as you can spin up test tenants, iterate, and promote only those configurations that work - quickly and confidently.

## Agent export

The agent export process instantly creates a JSON package that contains all agent definitions and configurations.

It exports agents along with all their dependencies, including the agent itself, collaboration agents with their dependencies, tools, and MCP servers.

For security measures, the exported data is base64-encoded. The exported data includes a **checksum**, which is generated to guarantee that the exported and imported data remain exactly the same. This checksum calculation simplifies validation and prevents the creation of agents with incorrect configurations. The checksum is calculated based on an internal secret that prevents external users from calculating it.

{% hint style="danger" %}
The *token* values are never exported. You must provide these values on each tenant in the Agentic AI configuration.
{% endhint %}

The example export output includes the job ID, the export timestamp, the checksum, and the encoded data.

<details>

<summary>Example export JSON</summary>

```json
{
  "jobId": "job-id-of-export-job",
  "exportedAt": "2025-11-04T11:15:25.903913Z",
  "checksum": "de56cd0c62c234033eced948645c7b458962eaa11611bd1066ef52a61e1b4cb2",
  "data": "ewogICJhZ2VudHMiIDogWyB7CiAgICAiaWQiIDogInByb2R1Y3QtY3JlYXRlZCIsCiAgICAibmFtZSIgOiB7CiAgICAgICJlbiIgOiAicHJvZHVjdC1jcmVhdGVkIgogICAgfSwKICAgICJkZXNjcmlwdGlvbiIgOiB7CiAgICAgICJlbiIgOiAicHJvZHVjdC1jcmVhdGVkIgogICAgfSwKICAgICJyZXF1aXJlZFNjb3BlcyIgOiBbIF0sCiAgICAidXNlclByb21wdCIgOiAiWW91IGFyZSBhbiBhZ2VudCB3aGljaCBoYW5kbGUgcHJvZHVjdCBjcmVhdGlvbiBwcm9jZXNzLlxuQXQgZmlyc3QgZ2V0IHRoZSB3aG9sZSBwcm9kdWN0IG9iamVjdCBmcm9tIHRoZSBhcGkgYW5kIHJldHVybiBpdCBhcyBhIEpTT04iLAogICAgInRyaWdnZXJzIiA6IFsgewogICAgICAidHlwZSIgOiAiZW5kcG9pbnQiCiAgICB9IF0sCiAgICAibGxtQ29uZmlnIiA6IHsKICAgICAgIm1vZGVsIiA6ICJjbGF1ZGUtMy01LWhhaWt1LTIwMjQxMDIyIiwKICAgICAgInRlbXBlcmF0dXJlIiA6IDAuMSwKICAgICAgIm1heFRva2VucyIgOiA0MDAwLAogICAgICAicHJvdmlkZXIiIDogImFudGhyb3BpYyIsCiAgICAgICJ0b2tlbiIgOiB7CiAgICAgICAgImlkIiA6ICJhbnRocm9waWMtdG9rZW4iCiAgICAgIH0KICAgIH0sCiAgICAibWNwU2VydmVycyIgOiBbIHsKICAgICAgInR5cGUiIDogInByZWRlZmluZWQiLAogICAgICAiZG9tYWluIiA6ICJwcm9kdWN0IiwKICAgICAgInRvb2xzIiA6IFsgImdldC1wcm9kdWN0IiBdCiAgICB9IF0sCiAgICAibmF0aXZlVG9vbHMiIDogWyBdLAogICAgImFnZW50Q29sbGFib3JhdGlvbnMiIDogWyBdLAogICAgIm1heFJlY3Vyc2lvbkxpbWl0IiA6IDIwLAogICAgImVuYWJsZU1lbW9yeSIgOiB0cnVlLAogICAgImljb24iIDogInJvYm90IiwKICAgICJ0YWdzIiA6IFsgXSwKICAgICJ0eXBlIiA6ICJnZW5lcmljIgogIH0gXQp9"
}
```

</details>

## Agent import

The import process involves uploading the JSON file with the agent checksum into another tenant. The import endpoint accepts the payload generated by the export endpoint.

Upon importing an agent, there is a validation process performed on the checksum against the sent data for its correctness and completeness. Incomplete or invalid imports are blocked, and you get actionable error messages.

The imported entities (agents and their associated collaboration agents) are assigned with new generated IDs. This allows you to import the same agents multiple times into the same tenant and create several copies. The imported agents are always in the `DISABLED` status as an agent can only be enabled once its entire configuration is correct. This means that before activating the imported agent, first you have to provide the required tokens, enable associated collaboration agents, and all associated tools and MCPs.

Importing associated MCP servers and tools depends on whether they exist in the target tenant.

* Reusing existing entities - If the imported agents contain tools or custom MCPs that already exist in the target tenant (identified by the same ID), those entities are reused.
* Creation of new entities - If the tools, Emporix MCPs or custom MCPs do not exist in the target tenant, they are created during agent import. Custom MCPs are visible under **AI MCP** view.
* MCPs and tools status - The imported MCPs or tools retain the same status as during the export process.
  * If an MCP or tool uses a token that already exists in the target tenant, that token is reused.
  * If an MCP or tool uses a token that does not exist in the target tenant, the tool or MCP is imported as disabled because of the missing configuration/token.

{% hint style="warning" %}
The tools of Slack type are neither imported nor reused, because Slack configuration is tenant-specific.
{% endhint %}

At the completion of the import process, the user is informed about the import process summary. The response includes the import timestamp, a message detailing the number of agents, tools, and MCP servers successfully imported, and a summary section. The summary lists the imported entities (agents, tools, MCP servers) along with their new IDs, names, and their final state. The states indicate if an entity is already `ENABLED`, `DISABLED`, or if it `EXISTS` and therefore has been reused, or if it needs to be created `TO_BE_CREATED` (currently applies only to Slack tool).

<details>

<summary>Example import process response</summary>

```json

{
  "importedAt": "2025-11-04T11:56:55.296335Z",
  "summary": {
    "agents": [
      {
        "id": "346cefda-19be-4603-a471-5d2e990566ba--import-1762257415296",
        "name": "complaint-demo",
        "state": "DISABLED"
      }
    ],
    "tools": [
      {
        "id": "80171fb9-a3cc-4441-8235-ced7edd0635d2",
        "name": "Slack Tool",
        "state": "TO_BE_CREATED"
      }
    ],
    "mcpServers": [
      {
        "id": "80171fb9-a3cc-4441-8235-ced7edd0635d3",
        "name": "Custom MCP Server",
        "state": "ENABLED"
      }
    ]
  },
  "message": "Successfully imported 1 agents, 0 tools, and 1 MCP servers.",
  "jobId": "6909ea07e0527f327fdead3e"
}
```

</details>

## Exporting and importing an agent in Management Dashboard

{% stepper %}
{% step %}
**Export an agent**

In the **Agentic AI** -> **AI Agents** look for the agent you want to export on the **My Agents** list. Choose the **Export** icon.

<figure><img src="https://1530167654-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GgoeZEZYjZrpjOU6w52%2Fuploads%2Fgit-blob-04d29902c5db190a2a87eba86d06558e8a7c7107%2Fagentic_agent_export.png?alt=media" alt="Agent export" width="360"><figcaption><p>Agent export</p></figcaption></figure>

The export starts and downloads a JSON file with the secured checksum of the agent definition and details.
{% endstep %}

{% step %}
**Choose to import the agent**

On another tenant or environment, go to the **Agentic AI** -> **AI Agents** and choose **Import**.

<figure><img src="https://1530167654-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GgoeZEZYjZrpjOU6w52%2Fuploads%2Fgit-blob-4636b3b9fa265cd69c793f3070b4bf389e836103%2Fagent_import.png?alt=media" alt="Agent import"><figcaption></figcaption></figure>
{% endstep %}

{% step %}
**Upload JSON**

From your device select or drag and drop the JSON file with the agent details. The import process starts immediately and you get notified about the operation outcome:

<figure><img src="https://1530167654-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F8GgoeZEZYjZrpjOU6w52%2Fuploads%2Fgit-blob-52c2c5976d13bb58df573a66191ce27015e9ddf2%2Fagentic_import_result.png?alt=media" alt="Agent import result"><figcaption><p>Agent import result</p></figcaption></figure>

The imported agent gets the same name as the original agent appended with `COPY-{date-time-timestamp}`.
{% endstep %}
{% endstepper %}
