--- title: Go to production slug: '1232' canonical_url: https://docs.coveo.com/en/1232/ collection: coveo-for-salesforce source_format: adoc --- # Go to production When pushing your changes to production, you must migrate your entire organization, including your Coveo settings. This article provides leading practices on how to migrate your development environment to a production environment, which is the last step of the Coveo for Salesforce integration. ## Migration checklist Follow these guidelines when migrating your Coveo for Salesforce development environment to production: * Ensure that you install the same version (see [Identify your Coveo for Salesforce version](https://docs.coveo.com/en/1180/)). > **Note** > > If your versions differ, [upgrade Coveo for Salesforce](https://docs.coveo.com/en/1140/). * Ensure that your selected users can access your Coveo components (see [Grant users access to your Coveo Lightning components](https://docs.coveo.com/en/1022/) or [Grant users access to your Coveo Classic components](https://docs.coveo.com/en/n8m40044/)). * Ensure that you've [created a dedicated Salesforce crawling user](https://docs.coveo.com/en/1052#prerequisite-create-a-dedicated-salesforce-crawling-user). * Ensure that your change sets are working (see [Change Sets Best Practices](https://help.salesforce.com/articleView?id=changesets_best_practices.htm&type=0)). * Ensure that your sandbox and production Salesforce organizations are respectively linked to your sandbox and production Coveo organizations (see [Link to an existing organization](https://docs.coveo.com/en/1153#link-to-an-existing-organization)). * Ensure that you transfer your Coveo content, specifically: ** Your query pipelines (see [Manage query pipelines](https://docs.coveo.com/en/1791/)) ** Your pipeline extensions (see [Add an indexing pipeline extension](https://docs.coveo.com/en/1645#add-an-indexing-pipeline-extension)) ** Your [sources](https://docs.coveo.com/en/3390/) and [mappings](https://docs.coveo.com/en/1640/) ** Your custom components (see [Add JavaScript to the Coveo Lightning Aura components with custom code](https://docs.coveo.com/en/1251/)) ** Your security identities (see [Manage security identities](https://docs.coveo.com/en/1905/)) > **Tip** > > You can use the [resource snapshot](https://docs.coveo.com/en/3239/) feature to transfer your content. * Ensure that your Experience Cloud site configuration is the same as in your sandbox (see [Deploy Experience Builder Sites](https://help.salesforce.com/articleView?id=000250156&type=1&language=en_US)). ### Additional v5 migration guidelines If you're using [Coveo for Salesforce v5.2](https://docs.coveo.com/en/n5bj0150/) or a later release, make sure to follow these additional guidelines to migrate your development environment to production. For context as to why these additional steps are necessary, see [Upgrade from v4 to v5](https://docs.coveo.com/en/n4680498/). . Using the [data export tree](https://developer.salesforce.com/docs/atlas.en-us.sfdx_cli_reference.meta/sfdx_cli_reference/cli_reference_data_commands_unified.htm#cli_reference_data_export_tree_unified), enter the following command to export your records: ```bash sf data export tree --query "SELECT Id, Name, CoveoV2__PageContent1__c, CoveoV2__PageContent2__c, CoveoV2__PageContent3__c, CoveoV2__PageContent4__c, CoveoV2__PageContent5__c, CoveoV2__PageContent6__c, CoveoV2__PageContent7__c, CoveoV2__PageContent8__c FROM CoveoV2__PageContent__c" --target-org ``` Where: `` is the alias of your source sandbox organization. . Enter the following command to deploy your records: ```bash sf data import tree --files CoveoV2__PageContent__c.json --target-org ``` Where: `` is the alias of your target production organization. > **Tip** > > Using this command to deploy your records will prevent you from having to [access the Interface Editor](https://docs.coveo.com/en/3081#different-ways-to-access-the-interface-editor) to edit the HMTL markup for the result templates of each search interface that you implemented. > **Important** > > This task will create another `PageContent` record. > It won't overwrite an existing entry. > Therefore, be careful if you're only trying to apply new changes to an existing page. > You may need to manually delete the existing record. **To delete an existing entry** .. In the [Developer Console](https://help.salesforce.com/s/articleView?id=sf.code_dev_console_opening.htm&type=5), enter the following command to query the records: ```sql SELECT Id, Name FROM CoveoV2__PageContent__c ``` .. Delete the older entry. > **Note** > > Not deleting an older entry won't prevent your component from loading. > However, when loading a Coveo page and querying for the HTML content, the first record with the matching name will be chosen and returned.