Import and Export

How to transfer your Conversational AIs between two Cognigy.AI installations or projects

Introduction

Our product contains an Import/Export functionality which you can use to migrate certain assets of your Conversational AIs from one to another project within the same Cognigy.AI installation or even between multiple, physically isolated environments.

Many of our customers are also using it as a tool to create backups/snapshots of their current working versions of their Conversational AIs.

Export

Our Export feature allows you to create a binary representation of your Conversational AIs and download this representation as an encrypted archive. We are currently using .zip as the archives file-format although the archive was never designed to be opened and consumed by humans directly. The only purpose of such a package is to be consumed by the Import tool of a Cognigy.AI installation.

To start an Export go to the Project Dashboard.

Select Export from the Secondary Actions ... button in the top right.

Resources step of the export. List views show all resources that exist within a project.Resources step of the export. List views show all resources that exist within a project.

Resources step of the export. List views show all resources that exist within a project.

The user selects which resources should be exported and sets a package name.

Step 1: Select Resources


In the first step, users choose which resources they want to export.

❗️

Flow Versions

It is necessary that all flows and the references to these flows point to exactly one version of each flow. It is highly recommended to export the latest flow versions.

📘

Performance

If you select in this step all resources within a project then the following Dependency-step will be omitted.

Step 2: Select Dependencies


Based on the previous selection, the system builds a dependency tree of the selected resources and their possible dependencies. Any dependency that has not been selected as a resource will be listed. The user can choose to add or omit any of those dependencies to the export-package.

If dependencies get omitted during the export, their reference to the resource, e.g. a Flow, can not be restored. The result will be a package that contains your selected resources but will be potentially not a working product. Please be aware, that omitting resources can break your Flows in a logical way. Your business logic can e.g. rely on a Lexicon being available during NLU.

Step 3: Name


The user has to provide a name for the exported package.

Step 4: Export Progress


The user can now start the export.

During export, a list of exported entities with statuses as well as a progress bar will indicate the progress of the export as this might take a while for a high number of or large entities.

After the export is done, the exported package will be downloaded to the user's client. If the client does not start automatically - since popup blockers might block the download - the manual download link can be clicked.

❗️

Project settings

Our export tool currently only allows you to export the resources within a project. You will not be able to export project-settings and tokens.

Please be aware, that different project-settings in the target project can have an impact on the logical structure and functionality of your conversational AIs!

Import

By using the Import feature, you can import resources that have been previously exported using our Export feature.

To start an Import go to the Project Dashboard.

Select Import from the Secondary Actions ... button in the top right.

Step 1: Upload


To start the import process, the user has to upload an export package from his client. This is done by dragging the package onto the right area of the screen. Alternatively, the "Upload" button can be clicked. This will open the typical file-selection window and allows you to select a compatible file to be uploaded.

During the upload, a progress indicator will appear indicating the upload status. Please be aware, that an upload of a larger package might take some time.

When the package was successfully uploaded, it will be decoded and validated. If an invalid or incompatible file gets uploaded, an error message will be displayed.

Step 2: Select Resources


After the package was uploaded, the contained contents will be displayed. You will now have select the resources, which you want to import. Omitted resources will not be imported into the target system and will not be attached nor re-referenced. This functionality is especially useful if you have created a huge package that contains a lot of resources, but you e.g. only want to import a specific Lexicon from the large package.

📘

Importing into Projects with existing resources

In the case the user wants to import resources into a Project with existing resources it is highly recommended to select all resources for import and chose in the following Name-Conflict-step for those resources the user don't wants to replace the Import-Strategy "keep". This ensures that all there imported resource will reference to the not replaced resources.

Step 3: Resolve Name-Conflicts


If one or more of the resources selected for import have names that are already used in the target project then the user has to solve this conflicts by using different import strategies.

Import-Strategy

Description

rename

The resource will be imported and use the newly given name.

replace

The importable resource will replace the target resource entirely.

keep

The importable resource will not be imported and the new imported resources will be referenced to the old resource.

extend

Only Flows - the importable Flow will be added a new flow version of the target Flow.

👍

If no naming conflicts were identified, this step will be skipped.

Step 4: Import Progress


From here, the user can confirm the import and start the progress.
A list with indicators for each entity as well as a progress indicator for the whole import will show the current state of the import.

After the import has finished, the user will be redirected to an overview from where another import can be started.

❗️

Retrain Intents

The Intents of imported Flows need to be retrained after the import.

Identifier generation & preservation

Each resource within our platform has a unique identifier (uid). These identifiers are e.g. used within our RESTful API to uniquely identify a resource for e.g. an update manipulation. If resources get exported using the Export feature within our product, the original IDs get preserved and will be part of the package.

On import, collisions between IDs of the target system and the source system need to be prevented! We, therefore, have to replace all IDs with new ones that get generated within the target system. This will lead to those target IDs to be different than their source IDs. In most cases, this is not a big deal and customers don't need to deal with this detail, but if you are using e.g. scripts to automate certain aspects by utilizing our RESTful API, chances are high, that you need to adjust those in order to be aware of the new IDs within a target system.

Our system will automatically update the IDs in order to avoid ID collisions. This includes the references between different resources, e.g. a Flow and Lexicon.

👍

Endpoint URL token

Endpoints get an URL token assigned when created initially. If you export and import an endpoint into a new project, a new URL token will get generated. If you are selecting the "update" strategy on import, the original URL-token will be preserved!


Did this page help you?