---
schema_version: "1"
id: e579c056b92d7dba45484499f41df6bf5cf516f5a46b15d72ff33467ae8a435f
title: Data Deletion for the Salesforce Platform
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/xcloud/264-0-0/data_deletion_platform.md
canonical_url: https://help.salesforce.com/s/articleView?id=xcloud.data_deletion_platform.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 98f199e8b25b850e5fb0f77556ed58ffe074d593aae90a6ecb510653d59e62b0
description: You can delete customer data to comply with data protection and privacy regulations. These common requests and tips may help you determine how you might use Salesforce Platform features to work toward compliance with the regulations that apply to you.
products:
  - Security
  - Cross Cloud
release: "264"
---
# Data Deletion for the Salesforce Platform

You can delete customer data to comply with data protection and privacy regulations. These common requests and tips may help you determine how you might use Salesforce Platform features to work toward compliance with the regulations that apply to you.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: All Editions</td></tr></tbody></table>

Many data protection and privacy regulations can require you and your company to delete customers’ personal data when customers request it, or when it’s no longer necessary for you to keep it. We’ve listed a few of the regulations that are important to many companies collecting and processing their customers’ data.

- General Data Protection Regulation (GDPR), European Union
- Personal Information Protection Act (PIPA), Japan
- Privacy Act, Australia

If you have customers or users who want the data that you’ve collected on them deleted, review these common requests and the procedures related to them. You can also review considerations in other sections of this guide for Salesforce products that may use the Salesforce Platform.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:33.33333333333333%">
          <col style="width:33.33333333333333%">
          <col style="width:33.33333333333333%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d28677e57">Common Customer Request</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d28677e59">Actions to Consider</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d28677e61">Things to Consider</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Common Customer Request" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e57 ">I’ve deleted sensitive data from my Production org, and now I want to delete
              that same data from my Full Copy Sandbox.</td>
            <td data-label="Actions to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e59 "><a href="https://help.salesforce.com/articleView?id=data_sandbox_refresh.htm&amp;language=en_US" target="_blank">Refresh Your Sandbox</a></td>
            <td data-label="Things to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e61 ">You can manually delete the data from your sandbox. If you choose to refresh
              your sandbox to duplicate your production org, check with your development teams
              first. Otherwise, work may be lost. Also remove the data from any data sets that
              you’ve created for development and testing.</td>
          </tr>
          <tr class="">
            <td data-label="Common Customer Request" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e57 ">An employee’s left our company. I need remove their access to my org and delete
              all data associated with their login credentials.</td>
            <td data-label="Actions to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e59 ">
              <ul>
                <li><a href="https://help.salesforce.com/articleView?id=security_overview_passwords.htm&amp;language=en_US" target="_blank">Passwords</a></li>
                <li><a href="https://help.salesforce.com/articleView?id=security_activation_using.htm&amp;language=en_US" target="_blank">Use Activations</a></li>
                <li><a href="https://help.salesforce.com/articleView?id=security_user_session_info.htm&amp;language=en_US" target="_blank">User Sessions</a></li>
                <li><a href="https://help.salesforce.com/articleView?id=connected_app_overview.htm&amp;language=en_US" target="_blank">Connected Apps</a></li>
              </ul>
            </td>
            <td data-label="Things to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e61 ">
              <p>In addition to removing the user’s org access, consider: </p>
              <ul>
                <li>Expiring all passwords for that user</li>
                <li>Revoking activation status</li>
                <li>End usage tracking for Connected Apps</li>
                <li>Remove user sessions</li>
              </ul>
              <p>Users and admins can also:</p>
              <ul>
                <li>Disconnect the user’s account from third-party accounts like Facebook</li>
                <li>Change the user’s password</li>
              </ul>
            </td>
          </tr>
          <tr class="">
            <td data-label="Common Customer Request" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e57 ">I'm an ISV and I want to be sure that some data is removed from package
              versions I published.</td>
            <td data-label="Actions to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e59 ">
              <p>To remove data from package versions, </p>
              <ol>
                <li>Create a version of the package with the information removed</li>
                <li>Use the existing push upgrade option to update all their customers to the new
                  version of the package</li>
                <li>To delete the original package version, file a ticket with Salesforce</li>
              </ol>
            </td>
            <td data-label="Things to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e61 ">&nbsp;</td>
          </tr>
          <tr class="">
            <td data-label="Common Customer Request" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e57 ">I want to find and delete data associated with a particular contact ID.</td>
            <td data-label="Actions to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e59 ">
              <ul>
                <li>Find information with reports</li>
                <li>Build a flow that accepts a contact ID, finds all data associated with that
                  contact ID, and deletes it. Learn how to <a href="https://help.salesforce.com/articleView?id=flow_build.htm&amp;language=en_US" target="_blank">build a flow</a>.</li>
              </ul>
            </td>
            <td data-label="Things to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e61 ">Flows might not identify all the data to delete. After your flow finishes,
              consider running a report to identify any remaining information and then delete
              it.</td>
          </tr>
          <tr class="">
            <td data-label="Common Customer Request" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e57 ">As a customer, I want to delete Event Monitoring data for a given user on
              request.</td>
            <td data-label="Actions to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e59 ">
              <ul>
                <li>Learn about <a href="https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/event_log_file_delete.htm" target="_blank">deleting event logs</a>.</li>
              </ul>
            </td>
            <td data-label="Things to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e61 ">
              <p>Event Monitoring logs are treated as a single entity, which means you can't
                remove one single user's data from a log. Pinpoint the dates of the user's
                activity you want to delete. Then remove the logs in that date range.</p>
              <p style="margin-bottom:0;">If you want to retain some data from these logs, you can make backups of logs
                before deleting them. Then, after you delete a log, remove specific users’ data
                from your backups. Learn more about managing log files in the <a href="https://trailhead.salesforce.com/modules/event_monitoring" target="_blank">Event Monitoring Trailhead</a>.</p>
            </td>
          </tr>
          <tr class="">
            <td data-label="Common Customer Request" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e57 ">I'd like to delete a user's history programmatically. Can I do that?</td>
            <td data-label="Actions to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e59 ">
              <ul>
                <li>Delete custom big objects through Setup.</li>
                <li>Use the deleteByExample( ) call to define an sObject that contains the fields
                  and values you want to delete.</li>
              </ul>
            </td>
            <td data-label="Things to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e61 ">The deleteByExample( ) call can delete data in FieldHistoryArchive and custom
              big objects. Entire custom big objects can be deleted in Setup.</td>
          </tr>
          <tr class="">
            <td data-label="Common Customer Request" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e57 ">I want to let Community or Chatter users deactivate their own accounts on
              demand.</td>
            <td data-label="Actions to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e59 ">
              <ul>
                <li>Enable the <a href="https://help.salesforce.com/s/articleView?id=platform.users_deactivate_external_option.htm&amp;type=5&amp;language=en_US" target="_blank">User
                    Self Deactivate</a> feature.</li>
              </ul>
            </td>
            <td data-label="Things to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e61 ">Provide users with a mechanism to deactivate their accounts. You can create
              this mechanism declaratively or programmatically.</td>
          </tr>
          <tr class="">
            <td data-label="Common Customer Request" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e57 ">A customer referenced in my flows asked us to delete all information about
              them. How can I make sure I've deleted all references to information that could
              personally identify this customer?</td>
            <td data-label="Actions to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e59 ">
              <ul>
                <li>Manually remove the customer’s records from the flow.</li>
                <li>Use the $Flow.InterviewGuid variable to identify records that are saved when a
                  flow is paused.</li>
              </ul>
            </td>
            <td data-label="Things to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e61 ">When a flow is paused, the flow interviews serialize the data that the flow
              references. The serialized data is saved to the database as a Paused Flow Interview
              record. After you find these records, you can delete them as you would any other
              record.</td>
          </tr>
          <tr class="">
            <td data-label="Common Customer Request" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e57 ">I want to delete a user and all the records associated with them.</td>
            <td data-label="Actions to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e59 ">
              <ul>
                <li>Manually or programmatically delete the values in non-required fields. </li>
                <li>Anonymize data in required fields. For example, change an email address to
                  “deleteduser@delete.myco.com.” </li>
                <li>Deactivate the User record by unchecking the Active field.</li>
                <li>Delete any third-party account links used for authentication.</li>
              </ul>
            </td>
            <td data-label="Things to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e61 ">
              <ul>
                <li>When deleting information about employees, the employee should ask Salesforce
                  Customer Support to re-enable the default email change verification settings.
                  This setting prevents them from receiving verification emails if you anonymize
                  their data in required fields. Customers don’t receive verification emails, and
                  don’t need to contact Salesforce Customer Support.</li>
                <li>Consider using Quick Actions to find information about customers like Customer
                  Community or External Identity users. Go to the Contact record, choose to
                  disable the user through the Quick Action, find the disabled User record, and
                  then manually delete remaining values.</li>
              </ul>
            </td>
          </tr>
          <tr class="">
            <td data-label="Common Customer Request" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e57 ">I’m a developer, and I created an app that uses the Einstein Vision and
              Einstein Language APIs. A user of my app has requested that any personal data in the
              form of text or images be removed from any elements created by the API (such as
              examples, datasets, and models).</td>
            <td data-label="Actions to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e59 ">
              <p>After you delete the relevant data, use the Einstein Vision and Einstein
                Language APIs to delete the dataset. Then create anew dataset from the source data
                and consider whether to retrain the dataset to create a model.</p>
              <ul>
                <li><a href="https://metamind.readme.io/docs/delete-a-dataset" target="_blank">Delete a Dataset (Einstein
                    Vision)</a></li>
                <li><a href="https://metamind.readme.io/docs/delete-a-lang-dataset" target="_blank">Delete a Dataset (Einstein
                    Language)</a></li>
                <li><a href="https://metamind.readme.io/docs/create-a-dataset-zip-async" target="_blank">Create a Dataset From a
                    File Asynchronously (Einstein Vision)</a></li>
                <li><a href="https://metamind.readme.io/docs/create-a-lang-dataset-from-file" target="_blank">Create a Dataset From a
                    File Asynchronously (Einstein Language)</a></li>
                <li><a href="https://metamind.readme.io/docs/train-a-dataset" target="_blank">Train a Dataset (Einstein
                    Vision)</a></li>
                <li><a href="https://metamind.readme.io/docs/train-a-lang-dataset" target="_blank">Train a Dataset (Einstein
                    Language)</a></li>
              </ul>
            </td>
            <td data-label="Things to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e61 ">&nbsp;</td>
          </tr>
          <tr class="">
            <td data-label="Common Customer Request" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e57 ">Some customers requested that we delete text or image data sent in for
              prediction.</td>
            <td data-label="Actions to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e59 ">Prediction data is deleted automatically within 48 hours.</td>
            <td data-label="Things to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e61 ">&nbsp;</td>
          </tr>
          <tr class="">
            <td data-label="Common Customer Request" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e57 ">I want to delete my reaction to an Einstein Next Best Action
              recommendation.</td>
            <td data-label="Actions to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e59 ">To delete customer reactions, use <a href="https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_nba_reaction.htm" target="_blank">Next
                Best Action, Reaction</a> via Connect REST API.</td>
            <td data-label="Things to Consider" class="slds-cell-wrap" style="vertical-align:top;" headers="d28677e61 ">&nbsp;</td>
          </tr>
        </tbody>
      </table>