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.
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.
The user selects which resources should be exported and sets a package name.
In the first step, users choose which resources they want to export.
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.
If you select in this step all resources within a project then the following Dependency-step will be omitted.
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.
The user has to provide a name for the exported package.
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.
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!
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.
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.
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.
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.
|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.
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.
The Intents of imported Flows need to be retrained after the import.
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!
Updated about 3 years ago