Skip to main content
A snapshot is an immutable version of a project that you can use to publish agents through endpoints. Snapshots are intended for production. They offer maximum performance and aren’t affected by changes in the project configuration. You can also download a snapshot as a Cognigy snapshot file. Snapshot files have a .csnap extension and can be used only in Cognigy. These files are encrypted because they can include sensitive information, such as data in connections. You can use snapshots for the following purposes: A snapshot includes the following resources:

Restrictions

  • Snapshots don’t include the following resources:
    • Endpoints
    • Intent trainer records
    • Analytics data
    • Contact profiles
    • Logs
    • Knowledge stores and knowledge sources
    • Other snapshots
  • The text-embedding-3-model model increases the size of snapshots, leading to longer download and upload times.
  • Earlier versions of Cognigy might not support snapshots created in newer versions. Importing snapshots from a later Cognigy version into an earlier version can cause unexpected errors.
  • Snapshot creation fails with an error if any JSON key in the project’s data contains a period (.). Periods are reserved for dot notation used to access nested properties in Cognigy, for example, context.user.name. Avoid using periods in JSON keys across all Cognigy resources and other data included in the snapshot.

Limitations

  • You can create up to 10 snapshots per project. For on-premises installations, you can change this value by setting the MAX_AMOUNT_SNAPSHOTS_IN_AGENT environment variable in values.yaml.
  • The maximum snapshot size depends on how you create or upload it:
    • Cognigy UI: You can create and upload snapshots with up to 8 GB. For on-premises installations, you can increase this limit by setting the RESUMABLE_UPLOAD_MAX_FILE_SIZE environment variable in values.yaml. The same limit also applies to packages.
    • Cognigy API: You can create and upload snapshots with up to 2 GB. Snapshots that exceed this limit can’t be created or uploaded. For on-premises installations, you can increase this limit by setting the SNAPSHOT_MAX_FILE_SIZE environment variable in values.yaml.
  • You can download a snapshot for up to 1 day after you prepare the download. After this period, you need to prepare the download again.

Working with snapshots

If you delete a snapshot that you use with an endpoint in production, the agent connected to that endpoint stops working.
You can create, delete, and restore snapshots in Deploy > Snapshots. Additionally, you can download and upload snapshots:
To create a snapshot, follow these steps:
  1. On the Snapshots page, click Create snapshot.
  2. In the Create snapshot dialog, enter a Name. The name can’t contain \, /, :, *, ?, ", <, >, |, or ¥, and can’t start or end with a space.
  3. Optional: Enter a Description. The description can contain up to 500 characters.
  4. Click Create. A new task named Create Snapshot is created.
Create snapshot and Upload snapshot are unavailable if you don’t have permission to create snapshots, if you’ve reached the maximum number of snapshots, or if a snapshot is already being created or uploaded.
To download a snapshot, follow these steps:
  1. On the Snapshots page, click actions menu next to the snapshot and select Prepare download. A new task named Package Snapshot is created.
  2. When the task is complete, click the download icon snapshot-download to download the snapshot.
To upload a snapshot, follow these steps:
  1. On the Snapshots page, click Upload snapshot.
  2. Select a .csnap file from your computer. Other file types aren’t accepted.
  3. A new task named Upload Snapshot shows the progress of the file transfer.
  4. After the file uploads, a task named Upload Snapshot Package is created and the snapshot shows an unpacking indicator. When the task is complete, the snapshot is uploaded.

Deploy snapshot

To deploy a snapshot, follow these steps:
  1. Go to Deploy > Endpoints and select the endpoint through which you want to deploy the snapshot.
  2. In the endpoint’s Setup tab, go to the Target section and select the snapshot in the Snapshot field.
While an endpoint is active, you can replace a snapshot or select No snapshot in the Target section of the Setup tab. Active sessions continue to use the old snapshot until they time out or you delete the old snapshot. If you delete a snapshot after replacing it, the session is reset using the new snapshot. If you use the persistent history for Webchat, the user’s browser retains the chat history. Even after the session expires, users still see old messages, but any new message starts a new session.

Restore snapshot

You can use snapshots to back up project versions. With this approach, you can restore a backup project if a new agent doesn’t perform as intended. To restore a snapshot, open the actions menu actions menu of the snapshot and select Restore. In the Restore snapshot dialog, type the name of the snapshot and click Confirm. Before restoring a snapshot, be aware of the following:
  • Restoring a snapshot overwrites the current project’s resources that the snapshot includes. Flows are deleted before they’re recreated from the snapshot you restore. If you have an active endpoint pointing to a flow, the conversations stop working because the flows are deleted.
  • Endpoints that point to a snapshot keep using the extension version from the snapshot. Restoring a snapshot overwrites all installed extensions. If you update an extension after restoring a snapshot, only endpoints that don’t point to the snapshot use the version installed in Manage > Extensions. You can’t change the extension version in a snapshot. To use another version, restore the snapshot in a new project, update the extension, and create a new snapshot.
  • Restoring a snapshot might require manual changes to the endpoints. Restoring a snapshot automatically updates only the endpoints that are assigned to the primary locale. You need to update endpoints assigned to non-primary locales manually. These endpoints are marked with a red dot next to the endpoint name after you restore the snapshot, meaning that the settings aren’t complete.

Deploy agents to production with snapshots

The following three scenarios show the recommended methods for deploying agents to production.
With snapshots, you can make your agents available through endpoints while you work on the next version:
  1. Develop and test flows, lexicons, intents, and all other resources as usual. Eventually, you reach an agent version that you want to publish to users.
  2. Create a snapshot of the project. You don’t have to prepare a downloadable package for the snapshot because everything remains in the current project.
  3. To release the agent version of the snapshot, go to the endpoint settings, for example, in the Webchat endpoint settings, and select the new snapshot and the flow.
    Your production environment now uses the agent from the snapshot.
The endpoint uses only resources from the snapshot in production. For this reason, developers can change the flows in the agent without breaking the current conversations with your customers.
You want to build an agent for FAQs on your website. In this case, you have two projects:
  • FAQ Bot development — a project for developers to build and test the agent.
  • FAQ Bot production — a project for the production environment.
  1. Developers only have access to the FAQ Bot development project, in which they can develop and test agents. Eventually, they reach an agent version that you want to publish to users.
  2. Create a snapshot in the FAQ Bot development project and download it.
  3. To release the agent version of the snapshot, upload the snapshot to the FAQ Bot production project. Then, select the uploaded snapshot in the endpoint settings of your production endpoint.
You have the following environments:
  • Dev — an environment for development purposes.
  • Staging — an environment where acceptance tests are conducted for newer versions.
  • Production — an environment for publishing agents to users.
  1. Developers only have access to projects in the Dev installation, in which they build agents, design new experiences, or improve solutions. Eventually, they reach an agent version that you want to publish to users.
  2. Create snapshots of the agents in the Dev installation, download the snapshots, and provide them to the teams working on the Staging installation.
  3. People working on the Staging installation receive the snapshots and upload them to their projects. They select the uploaded snapshots in their endpoint settings and run acceptance tests.
  4. If they find errors, they inform their development teams, who fix the problems and provide new snapshots. If tests are successful, the snapshots are moved to the Production installation.
  5. To release the agent version of the snapshots, upload them to the Production installation and select the uploaded snapshots in the production endpoints.

More information

Last modified on November 12, 2026