You can download your integrations as a JSON file and save it in your
local system. As a result, your entire integration is available in a file, which you can directly
upload in another integration project without any modifications. Uploading an integration creates
a new version of the integration in the project where the file is uploaded.
Having an entire integration
in a file format provides you with the following advantages:
You can copy your integration from one project to another without much effort.
You can programmatically update the integration file for repetitive changes, such as renaming
of tasks or dynamically modifying variable names.
Download an integration
To download an integration, select one of the following optionss:
Uploading an integration creates a new version of the integration in the project where the file
is uploaded. For example, if you have an integration by name IP-Test at version 5, and you upload an integration file in IP-Test, a new version 6 is created for the integration.
If you don't have an existing integration in which you can upload a file, you must first create a new integration and then upload. In this case, the new integration you create will be at version 1 and the uploaded integration will be at version 2.
If you have an existing integration that you want to upload, then select one of the following options:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-26 UTC."],[[["\u003cp\u003eYou can download Application Integrations as JSON files to save them locally, enabling easy transfer and programmatic updates of the integration.\u003c/p\u003e\n"],["\u003cp\u003eUploading a JSON file of an integration will create a new version of that integration within the designated project.\u003c/p\u003e\n"],["\u003cp\u003eDownloading an integration is available via the Google Cloud console's Application Integration page or via an API \u003ccode\u003eGET\u003c/code\u003e request.\u003c/p\u003e\n"],["\u003cp\u003eUploading an integration can be done through the Google Cloud console's Application Integration page or using an API \u003ccode\u003ePOST\u003c/code\u003e request.\u003c/p\u003e\n"],["\u003cp\u003eWhen uploading or downloading an integration, keep in mind authentication profile details are not included in the downloaded file, and must be reconfigured upon upload.\u003c/p\u003e\n"]]],[],null,["# Upload and download integrations\n\nSee the [supported connectors](/integration-connectors/docs/connector-reference-overview) for Application Integration.\n\nUpload and download integrations\n================================\n\nYou can download your integrations as a JSON file and save it in your\nlocal system. As a result, your entire integration is available in a file, which you can directly\nupload in another integration project without any modifications. [Uploading an integration](/application-integration/docs/create-integrations#upload-an-integration) creates\na new version of the integration in the project where the file is uploaded.\nHaving an entire integration in a file format provides you with the following advantages:\n\n- You can copy your integration from one project to another without much effort.\n- You can programmatically update the integration file for repetitive changes, such as renaming of tasks or dynamically modifying variable names.\n\n| **Note:** Details of authentication profiles configured for an integration is not available in the downloaded file. After [uploading the integration file](#upload-an-integration), you must re-configure the authentication profiles in the uploaded integration.\n\nDownload an integration\n-----------------------\n\nTo download an integration, select one of the following optionss:\n\n### Console\n\n1. In the Google Cloud console, go to the **Application Integration** page.\n\n [Go to Application Integration](https://console.cloud.google.com/integrations)\n2. Click **Integrations** from the left navigation menu to open the **Integrations** page.\n3. Select an existing integration. This opens the integration in the *integration editor*.\n4. Click the **Versions** dropdown and select the version you want to download.\n5. In the designer toolbar, click more_vert (Actions menu) and select **Download** .\n\n The \u003cvar translate=\"no\"\u003eINTEGRATION_NAME\u003c/var\u003e.json file is automatically saved in your web browser's default download folder.\n\n| **Note:** The downloaded JSON file will have the structure of [`DownloadIntegrationVersionResponse`](/application-integration/docs/reference/rest/v1/DownloadIntegrationVersionResponse) type. If you modify the JSON file, ensure that the modified file adheres to the `DownloadIntegrationVersionResponse` structure.\n\n### API\n\nTo download an integration, issue a `GET` request to the following API: GET https://integrations.googleapis.com/v1/projects/\\*/locations/\\*/integrations/\\*/versions/\\*:download \n\n```\nhttps://integrations.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/integrations/INTEGRATION_NAME/versions/INTEGRATION_VERSION:download\n```\n\nThe following example shows you how to download a specific version of an integration: \n\n```\ncurl -v -s \\\n-H \"Content-Type: application/json\" -H \"Authorization: Bearer $TOKEN\" \\\n-H \"X-GFE-SSL: yes\" \\\n-X GET \"https://integrations.googleapis.com/v1/projects/demo-project/locations/us-east1/integrations/test-integration/versions/0e90d453-5fcf-4aae-b164-2e8344d1ac11:download\"\n```\n| **Note:** In the previous example, the integration version number is `0e90d453-5fcf-4aae-b164-2e8344d1ac11`. To get the integration version, open the required version of the integration in the UI and copy the auto-generated unique ID string after `../integrations/integration/`\u003cvar translate=\"no\"\u003eINTEGRATION_NAME\u003c/var\u003e`/` from the URL.\n\nFor more information, see [`projects.locations.integrations.versions.download`](/application-integration/docs/reference/rest/v1/projects.locations.integrations.versions/download).\n\nUpload an integration\n---------------------\n\nUploading an integration creates a new version of the integration in the project where the file\nis uploaded. For example, if you have an integration by name `IP-Test` at version 5, and you upload an integration file in `IP-Test`, a new version 6 is created for the integration.\n\nIf you don't have an existing integration in which you can upload a file, you must first create a new integration and then upload. In this case, the new integration you create will be at version 1 and the uploaded integration will be at version 2.\n\n\nIf you have an existing integration that you want to upload, then select one of the following options:\n\n### Console\n\n1. In the Google Cloud console, go to the **Application Integration** page.\n\n [Go to Application Integration](https://console.cloud.google.com/integrations)\n2. Click **Integrations** from the left navigation menu to open the **Integrations** page.\n3. Select an existing integration or create a new integration by clicking **Create integration** .\n\n\n If you are creating a new integration:\n 1. Enter a name and description in the **Create Integration** dialog.\n 2. Select a region for the integration. **Note:** The **Regions** dropdown only lists the regions provisioned in your Google Cloud project. To provision a new region, Click **Enable Region** . See [Enable new region](/application-integration/docs/enable-new-region) for more information.\n 3. Click **Create**.\n\n\n This opens the integration in the *integration editor*.\n4. In the designer toolbar, click more_vert (Actions menu) and select **Upload**.\n5. In the file browser dialog, select the file that you want to upload, and then click **Open** .\n\n A new version of the integration is created using the uploaded file.\n\n### API\n\nTo upload an integration, issue a `POST` request to the following API: \n\n```\n https://integrations.googleapis.com/v1/projects/$YOUR_GOOGLE_PROJECT_ID/locations/$PROJECT_LOCATION/integrations $INTEGRATION_NAME/versions/$INTEGRATION_VERSION}:upload\n \n```\n\nThe following example shows you how to upload an integration: \n\n```\n curl -v -s -H \"Content-Type: application/json\" -H \"Authorization: Bearer $TOKEN\" \\\n -X POST -d '{\"content\": \n \"{\\\"name\\\":\\\"projects/450954726404/locations/us-east1/integrations/test-workflow/versions/0e90d453-5fcf-4aae-b164-2e8344d1ac11\\\",\n \\\"origin\\\":\\\"UI\\\",\n \\\"snapshotNumber\\\":\\\"3\\\",\n \\\"updateTime\\\":\\\"2022-01-06T04:26:58.137Z\\\",\n \\\"lockHolder\\\":\\\"abc@test.com\\\",\n \\\"createTime\\\":\\\"2022-01-06T04:26:42.734Z\\\",\n \\\"lastModifierEmail\\\":\\\"abc@test.com\\\",\n \\\"state\\\":\\\"DRAFT\\\",\n \\\"triggerConfigs\\\":[{\\\"label\\\":\\\"API Trigger\\\",\\\"startTasks\\\":[{\\\"taskId\\\":\\\"1\\\"}],\n \\\"properties\\\":{\\\"Trigger name\\\":\\\"rj-test-workflow_API_1\\\"},\\\"triggerType\\\":\\\"API\\\",\\\"triggerNumber\\\":\\\"1\\\",\\\"triggerId\\\":\\\"api_trigger/rj-test-workflow_API_1\\\"}],\\\"taskConfigs\\\":[{\\\"task\\\":\\\"EmailTask\\\",\\\"taskId\\\":\\\"1\\\",\\\"taskExecutionStrategy\\\":\\\"WHEN_ALL_SUCCEED\\\",\\\"displayName\\\":\\\"Send Email\\\"}]}\"}' \n \\https://integrations.googleapis.com/v1/projects/demo-project/locations/us-east1/integrations/test-integration/versions:upload\n \n```\n\nFor more information, see [`projects.locations.integrations.versions.upload`](/application-integration/docs/reference/rest/v1/projects.locations.integrations.versions/upload).\n\nWhat's next\n-----------\n\n- Learn how to [manage integrations](/application-integration/docs/view-integration-details).\n- Learn how to [test and publish integrations](/application-integration/docs/test-publish-integrations).\n- Learn about [all tasks and triggers](/application-integration/docs/all-triggers-tasks)."]]