Migrating Zoom Phone for Salesforce to Zoom for Salesforce Lightning app


Admins can use the following article when migrating data from the old Zoom for Salesforce app to the new Zoom for Salesforce Lightning app, which adds support for Zoom Meetings, Zoom Webinars, and Zoom Phone to the existing support for Zoom Contact Center.

There are 2 migration options:

note icon
Before beginning any migration of data, ensure that you have completed the configuration guides for the Zoom products you want to migrate data for.

This article covers: 

Prerequisites for migrating Zoom Phone data to the Zoom for Salesforce Lightning app

Limitations of migrating Zoom Phone data to the Zoom for Salesforce Lightning app

How to migrate data to the new app

warning icon
Zoom highly recommends testing this migration within a sandbox environment, preferably a full-copy sandbox, to ensure the migration preserves your environment’s desired functionality. Customizations, such as Flows, will likely break, as the Zoom objects within Flows will change. Ensure that such customizations are verified as functional before continuing on to migrating your production environment.

(Optional) Enable the Create Audit Fields permissions

Before migrating data, admins may want to consider enabling the ability to insert audit fields, which allows them to maintain full data integrity for the migrated data. Doing so allows the following fields to be migrated as well, ensuring the original dates associated with the data are migrated, rather than replaced with generic information associated with the migration date: CreatedByID, CreatedDate, LastModifiedbyID, LastModifiedDate.

If these permissions are enabled, additional steps will be required throughout the migration to retain these fields properly. These additional steps are mentioned, but not fully outlined below.

  1. Open Salesforce in a web browser and sign in to your account as an admin.
  2. In the top-right corner, click the gear icon .
  3. In the drop-down menu, click Setup.
  4. In the Quick find search bar, search for and select User Interface.
  5. Under the User Interface section, find and select the User Interface option, located at the bottom of the list.
  6. Under the Setup section, click the Enable "Set Audit Fields upon Record Creation" and "Update Records with Inactive Owners" User Permissions checkbox to enable.
  7. At the bottom of the page, click Save to confirm the changes.
  8. In the Quick find search bar, search for and select Permission Sets.
  9. At the top of the list of permission sets, click New.
  10. For the Label field, enter a name for this permission set.
    We recommend Zoom Audit Field Editor.
  11. (Optional) Enter a description for this permission set.
  12. Click Save.
  13. Under the System section of this permission set, click System Permissions.
  14. At the top of the list of System Permissions, click Edit.
  15. Find and select the checkbox for the Set Audit Fields upon Record Creation.
  16. Scroll to the top of the page and click Save.
    A confirmation window will appear.
  17. Click Save to confirm the changes.
  18. At the top of the page, click Manage Assignments.
  19. In the top right corner, click Add Assignment.
  20. Select the user that will be performing the migration to add this permission set to and then click Next to save the changes.
  21. (Optional) Configure the expiration date for this user to retain this permission set. Otherwise, click Assign to set the permission set indefinitely.
    Note: Zoom recommends either setting an expiration date for when you expect migration to be complete OR removing this permission set after migration is complete, as these permissions can be used, either accidentally or maliciously, to alter these fields and misrepresent their associated records.
  22. Click Assign to save the changes.

Migrate Zoom Phone Call Logs

In the Zoom for Salesforce app, recording and voicemail URLs were not stored within Salesforce and were instead pulled on-demand. This means that the new ZVC__Recording__c and ZVC__Voice_Mail__c fields should not be expected to be populated for calls that are migrated to Zoom for Salesforce Lightning.

  1. Open the Salesforce Data Loader.
    Note: You may encounter the following macOS permissions error: macOS cannot verify the developer of ‘dataloader-58.0.3.jar’. To resolve this, follow Apple’s guide for overriding your security settings for this app.
  2. Click Export.
  3. Select the environment you want to export data from and click Login.
    If this is your first time launching the Data Loader, you will be prompted to sign in to your Salesforce account as an admin.
  4. In the list of Salesforce objects exportable from your account, find and select Zoom Call Log (zoom_app__Zoom_Call_Log__c).
  5. Next to Choose a target for extraction, click Browse to select a location and name for the file to be exported.
    For the purpose of this guide, this file will be referred to as CallLogExport.
    Note: It is recommended that you select a specific location for your extractions, as you will need to find and select these files again in later steps for importing this data.
  6. Click Next.
  7. Click Select all fields.
  8. Click Finish to export all fields as CallLogExport.csv.
  9. Click Yes to confirm proceeding with the export.
    The export process will be performed and the file saved to your chosen location. A confirmation window will appear when the export is complete, with any errors noted.
  10. Click Ok to close these windows.
  11. Open the exported CallLogExport CSV file with Excel.
  12. Find and rename the ID column to ID_V1.
    Note: Depending on if/how you are migrating inactive users’ data, here is where you would potentially want to map the OWNERID field for the various records from inactive users to currently active users in your organization. For additional assistance, please contact Salesforce Support.
  13. Save the changes to the CallLogExport CSV file.
  14. In the Salesforce Data Loader, click Insert.
  15. In the list of Salesforce objects, select Zoom Call Log (ZVC__Zoom_Call_Log__c).
  16. Next to the Choose CSV file, click Browse.
  17. Find and select the exported and edited CallLogExport file.
  18. Click Next.
    The data will be read by the data loader.
  19. Click Ok to close the confirmation window.
  20. Click Choose an Existing Map and select the ZoomCallLogMapping.sdl, which can be downloaded here: ZoomCallLogMapping
    Note: For accounts with additional custom mapping, or accounts choosing to migrate the audit fields, admins would select Create or Edit a Map after uploading the file above to then drag-and-drop their additional fields to the old fields listed below that they want to map to. These custom fields must already exist in the new app’s object in order to properly import the custom field(s) from the old app.
  21. Click Next.
  22. Select a directory for storing generated import logs.
    Two files will be exported, one for any errors and the other for successful imports. Only the file generated for successful imports is needed and used in later steps.
    For the purpose of this guide, this file will be referred to as CallLogSuccess.
    Note: It is recommended that you select a specific location for your extractions, as you will need to find and select these files again in later steps for importing this data.
  23. Click Finish to start the import.
  24. Click Yes to confirm inserting records.
    The import will take place and a confirmation window will appear when complete.
    Note: If you intend on validating the imported data, Zoom recommends noting how many records were successfully imported so that this can be compared to the call logs.
  25. Click Ok to close the confirmation window.

Update Zoom Phone Tasks

After migrating the Zoom Phone call logs, we will now also update the Tasks associated with those call logs.

  1. In the Salesforce Data Loader, click Export All.
  2. In the list of Salesforce objects exportable from your account, find and select Task (Task).
  3. Next to Choose a target for extraction, click Browse to select a location and name for the file to be exported.
    For the purpose of this guide, this file will be referred to as CallTaskExport.
    Note: It is recommended that you select a specific location for your extractions, as you will need to find and select these files again in later steps for importing this data.
  4. Click Next.
  5. Copy and paste the following information into the large text field at the bottom of the export window:
    SELECT AccountId, ActivityDate, CallDisposition, CallDurationInSeconds, CallObject, CallType, CompletedDateTime, 
    CreatedById, CreatedDate, Description, Id, IsArchived, IsClosed, IsDeleted, IsHighPriority, IsRecurrence, IsReminderSet,
    LastModifiedById, LastModifiedDate, OwnerId, Priority, RecurrenceActivityId, RecurrenceDayOfMonth, RecurrenceDayOfWeekMask,
    RecurrenceEndDateOnly, RecurrenceInstance, RecurrenceInterval, RecurrenceMonthOfYear, RecurrenceRegeneratedType,
    RecurrenceStartDateOnly, RecurrenceTimeZoneSidKey, RecurrenceType, ReminderDateTime, Status, Subject, SystemModstamp,
    TaskSubtype, WhatId, WhoId, ZVC__Schedule_a_Zoom_Meeting__c, ZVC__Session_History__c, ZVC__Zoom_Call_Log__c,
    ZVC__Zoom_Meeting__c, ZVC__Zoom_Task_Type__c, zoom_app__Additional_Emails__c, zoom_app__Customer_Duration_of_Meeting__c,
    zoom_app__Customer_Start_Time__c, zoom_app__Customer_Time_Zone__c, zoom_app__ICS_Sequence__c, zoom_app__Join_before_host__c,
    zoom_app__Make_it_Zoom_Meeting__c, zoom_app__Use_personal_Zoom_meeting_Id__c, zoom_app__Zoom_Call_Log__c,
    zoom_app__Zoom_Event__c
    FROM Task
    WHERE
    zoom_app__Zoom_Call_Log__c != ''
  6. Click Finish to export the selected fields as CallTaskExport.csv.
    The export process will be performed and the file saved to your chosen location. A confirmation window will appear when the export is complete.
  7. Click Ok to close these windows.
  8. In Excel, open the CallTaskExport CSV file from Step 6.
    Note: If you are not following the instructions for enabling the Create Audit Fields permission, here is where admins would potentially want to map the OWNERID field for the various records from inactive users to currently active users in their organization. If your migration is following those instructions, no additional steps are necessary. For additional assistance, please contact Salesforce Support.
  9. In the Excel ribbon toolbar, click Data.
  10. Click Get Data (Power Query).
    A window to select the source of the new data will appear.
  11. Click the Text/CSV option.
  12. Click Browse.
  13. Find and select the CallLogSuccess CSV file, generated in Step 24.
  14. Click Get Data to confirm the file selection.
  15. Click Next to open the selected file.
  16. Click Load to import the previewed data.
    This data will be imported as a new sheet.
  17. In the new sheet, find the ID_V1 column and sort in ascending order.
    Note: This can be easily done by clicking the drop-down option at the top of the column and selecting Ascending.
  18. At the bottom of the Excel window, switch to the CallTaskExport sheet.
    Next, we will use the IFNA and LOOKUP functions to match ID_V1 to the new ID of each object that was created on import. These functions will be placed in the ZVC__ZOOM_CALL_LOG__C column.
    Note: LOOKUP finds and matches the two values, while the IFNA function allows us to set the field as a blank value if LOOKUP does not find a matching ID, preventing errors when importing.
  19. In the first empty cell of the ZVC__ZOOM_CALL_LOG__C column in the CallTaskExport sheet, enter the following formula:
    =IFNA(LOOKUP(CELL1, COLUMN1, COLUMN2),"") where the following values are defined below:
    • CELL1: The corresponding row value under the ZOOM_APP__ZOOM_CALL_LOG__C column in the CallTaskExport sheet.
    • COLUMN1: The ID_V1 column in the newly imported CallLogSuccess sheet.
    • COLUMN2: The ID column in the new imported CallLogSuccess sheet.
      Once the formula is set, this should appear in the formula editor similar to this: =IFNA(LOOKUP(BA2,success072723010906325!C:C,success072723010906325!A:A),"")
  20. Select the cell with the formula and double-click the small square in the bottom-right to automatically populate the function in the rest of the column.
  21. Save the changes to the CallTaskExport file.
    Note: Ensure you have the CallTaskExport sheet selected before saving changes. Otherwise, the incorrect data sheet will be saved as the CallTaskExport CSV file and you will have to restart this section.
  22. In the Salesforce Data Loader, click Update.
  23. In the list of Salesforce objects, select Task (Task).
  24. Next to the Choose CSV file, click Browse.
  25. Find and select the recently edited CallTaskExport file.
  26. Click Next.
    The data will be read by the data loader.
  27. Click Ok to close the confirmation window.
  28. Click Create or Edit a Map.
  29. Select Auto-Match Fields to Columns.
    This will automatically match all fields.
  30. In the Salesforce Object Field Name column, find and then click-and-drag the ActivityDate field back to the table above to unmatch this field.
    Note: Keeping this field matched will result in unsuccessful updates.
  31. Click Ok.
  32. Click Next.
  33. Select a directory for storing generated import logs.
  34. Click Finish to start the import.
  35. Click Yes to confirm inserting records.
    The import will take place and a confirmation window will appear when complete.
    Note: If you intend on validating the imported data, Zoom recommends noting how many records were successfully imported so that this can be compared to the call logs.
  36. Click Ok to close the confirmation window.

(Optional) Validate the imported call log data

After data has been migrated for the new app, admins can validate that the migrated data is imported properly.

  1. Open Salesforce in a web browser and sign in to your account as an admin.
  2. In the top-right corner, click the gear icon .
  3. In the drop-down menu, click Developer Console.
    The developer console will open in a new browser tab or window.
  4. At the bottom of the page in the Query Editor, paste the following query:
    SELECT Id, createdDate, lastModifiedDate, ZVC__Callee_Phone_Number__c, ZVC__Caller_Phone_Number__c 
    FROM ZVC__Zoom_Call_Log__c ORDER BY createdDate DESC
  5. At the bottom-left corner of the page, click Execute.
    A list with Id, createdDate, lastModifiedDate, ZVC__Callee_Phone_Number__c, and ZVC__Caller_Phone_Number__c columns will appear.
    • If the cells beneath the ZVC__Callee_Phone_Number__c and ZVC__Caller_Phone_Number__c columns have values, the phone call log data migration was completed successfully.
    • Another simple check is to compare the number of successfully imported items from step 24 of the Zoom Phone call logs migration section with the total rows from the query result. The total number of rows should be greater than or equal to the number of successful imports, depending on if your users are already using the integration.

Note: If you did enable audit fields permissions, the createdDate and lastModifiedDate columns should be the original dates for those logs. If you did not enable audit fields permissions, the createdDate and lastModifiedDate columns will be the date of the migration, rather than the original date.

(Optional) Validate the updated Task data

  1. Open Salesforce in a web browser and sign in to your account as an admin.
  2. In the top-right corner, click the gear icon .
  3. In the drop-down menu, click Developer Console.
    The developer console will open in a new browser tab or window.
  4. At the bottom of the page in the Query Editor, paste the following query:
    SELECT Id, createdDate, lastModifiedDate, ZVC__Zoom_Call_Log__c FROM Task WHERE ZVC__Zoom_Call_Log__c != '' 
    ORDER BY createdDate DESC
  5. At the bottom-left corner of the page, click Execute.
    A list with Id, createdDate, lastModifiedDate, and ZVC__Zoom_Call_Log__C columns will appear.
    • If the cells beneath the ZVC__Zoom_Call_Log__C column have values, the phone call Task data update was completed successfully.
    • Another simple check is to compare the number of successfully imported items from step 35 of the Zoom Phone Task migration section with the total rows from the query result. The total number of rows should be greater than or equal to the number of successful imports, depending on if your users are already using the integration.

Note: If you did enable audit fields permissions, the createdDate and lastModifiedDate columns should be the original dates for those logs. If you did not enable audit fields permissions, the createdDate and lastModifiedDate columns will be the date of the migration, rather than the original date.

Removing the Zoom for Salesforce (v1) app

Once you have completed the data migration for Zoom Phone, Zoom Meetings, and Zoom Webinars (if applicable), you can remove the original Zoom for Salesforce app and continue using the Zoom for Salesforce Lightning app.

  1. Open the Zoom App Marketplace.
  2. Sign in as an account admin.
  3. Search for and select the Zoom for Salesforce app.
  4. Scroll to the bottom of the page and under the Manage section, click Remove.
  5. Click Remove to confirm removing the app.
  6. Open Salesforce and sign in to your account as an admin.
  7. In the top-left corner, click the 9-dots icon and search for and select Zoom config.
  8. Under the Zoom OAuth section, click Cancel authorization from Zoom App Marketplace.
  9. Click Confirm.
    Note: If you need to rollback and reauthorize the Zoom for Salesforce app, click the Authorize from Zoom App Marketplace.

(Optional) Full removal of Zoom for Salesforce (v1) app package

These steps will fully remove the Zoom app package and all associated objects. If this is done, rolling back to Zoom for Salesforce (v1) will not be an option, as re-adding the app would result in a fresh install, with no previous data being recovered.

  1. In the top-right corner, click the gear icon .
  2. In the drop-down menu, click Setup.
  3. In the Quick find search bar, search for and select Installed Packages.
  4. To the left of the Zoom package, click Uninstall.
    Note: Ensure you are uninstalling the Zoom package and not the Zoom For Lightning package, as uninstalling the new app will undo all migration work.
  5. At the bottom of the page, check the Yes, I want to uninstall this package and permanently delete all associated components checkbox.
  6. Click Uninstall to proceed with the app package removal.

If you see the Unable to uninstall package error message, review the problems listed below to address those issues, and repeat steps 3–6. These are typically associated with objects still in use or permission sets still assigned to users, so an admin will need to address this within Salesforce setup settings.