Fides Documentation – Ethyca

Salesforce

Implementation Summary Permalink for this section

Fides uses the following Salesforce endpoints to retrieve and delete Personally Identifiable Information (PII) when processing a Privacy Request. Right to Access and Right to Delete (Right to Forget) support for each endpoint is noted below.

For more information, see the Salesforce sObject API reference (opens in a new tab).

Endpoint Right to Access Right to Delete
Query (opens in a new tab) Yes No
Contact (opens in a new tab) Yes Yes
Case (opens in a new tab) Yes Yes
Lead (opens in a new tab) Yes Yes
Account (opens in a new tab) Yes Yes
CampaignMember (opens in a new tab) Yes Yes

Connection Settings Permalink for this section

Connection instructions may be found in the configuration guide.

Deletion requests are fulfilled by masking PII via UPDATE or by deleting personal data via DELETE endpoints.

Example Salesforce Configuration Permalink for this section

saas_config:
  fides_key: salesforce_connector_example
  name: Salesforce SaaS Config
  type: salesforce
  description: A sample schema representing the Salesforce connector for Fidesops
  version: 0.0.1

connector_params:
    - name: domain
    - name: username
    - name: password
    - name: client_id
    - name: client_secret
    - name: access_token

client_config:
    protocol: https
    host: <domain>
    authentication:
      strategy: bearer
      configuration:
        token: <access_token>

test_request:
    method: GET
    path: /services/data/v54.0/sobjects

endpoints:
    - name: contact_list
      requests:
        read:
          method: GET
          path: /services/data/v54.0/query
          query_params:
            - name: q
              value: SELECT Id FROM Contact WHERE Email='<email>'
          param_values:
            - name: email
              identity: email
          data_path: records
    - name: contacts
      requests:
        read:
          method: GET
          path: /services/data/v54.0/sobjects/Contact/<contact_id>
          param_values:
            - name: contact_id
              references:
                - dataset: salesforce_connector_example
                  field: contact_list.Id
                  direction: from
        update:
          method: PATCH
          path: /services/data/v54.0/sobjects/Contact/<contact_id>
          body: |
            {
              <masked_object_fields>
            }
          param_values:
            - name: contact_id
              references:
                - dataset: salesforce_connector_example
                  field: contacts.Id
                  direction: from
    - name: case_list
      requests:
        read:
          method: GET
          path: /services/data/v54.0/query
          query_params:
            - name: q
              value: SELECT Id FROM Case WHERE ContactId='<contact_id>'
          param_values:
            - name: contact_id
              references:
                - dataset: salesforce_connector_example
                  field: contact_list.Id
                  direction: from
          data_path: records
    - name: cases
      requests:
        read:
          method: GET
          path: /services/data/v54.0/sobjects/Case/<case_id>
          param_values:
            - name: case_id
              references:
                - dataset: salesforce_connector_example
                  field: case_list.Id
                  direction: from
        update:
          method: PATCH
          path: /services/data/v54.0/sobjects/Case/<case_id>
          body: |
            {
              <masked_object_fields>
            }
          param_values:
            - name: case_id
              references:
                - dataset: salesforce_connector_example
                  field: cases.Id
                  direction: from
    - name: lead_list
      requests:
        read:
          method: GET
          path: /services/data/v54.0/query
          query_params:
            - name: q
              value: SELECT Id FROM Lead WHERE Email='<email>'
          param_values:
            - name: email
              identity: email
          data_path: records
    - name: leads
      requests:
        read:
          method: GET
          path: /services/data/v54.0/sobjects/Lead/<lead_id>
          param_values:
            - name: lead_id
              references:
                - dataset: salesforce_connector_example
                  field: lead_list.Id
                  direction: from
        update:
          method: PATCH
          path: /services/data/v54.0/sobjects/Lead/<lead_id>
          body: |
            {
              <masked_object_fields>
            }
          param_values:
            - name: lead_id
              references:
                - dataset: salesforce_connector_example
                  field: leads.Id
                  direction: from
    - name: accounts
      requests:
        read:
          method: GET
          path: /services/data/v54.0/sobjects/Account/<account_id>
          param_values:
            - name: account_id
              references:
                - dataset: salesforce_connector_example
                  field: contacts.AccountId
        update:
          method: PATCH
          path: /services/data/v54.0/sobjects/Account/<account_id>
          body: |
            {
              <masked_object_fields>
            }
          param_values:
            - name: account_id
              references:
                - dataset: salesforce_connector_example
                  field: accounts.Id
                  direction: from
    - name: campaign_member_list
      requests:
        read:
          method: GET
          path: /services/data/v54.0/query
          query_params:
            - name: q
              value: SELECT Id FROM CampaignMember WHERE Email='<email>'
          param_values:
            - name: email
              identity: email
          data_path: records
    - name: campaign_members
      requests:
        read:
          method: GET
          path: /services/data/v54.0/sobjects/CampaignMember/<campaign_member_id>
          param_values:
            - name: campaign_member_id
              references:
                - dataset: salesforce_connector_example
                  field: campaign_member_list.Id
                  direction: from
        update:
          method: PATCH
          path: /services/data/v54.0/sobjects/CampaignMember/<campaign_member_id>
          body: |
            {
              <masked_object_fields>
            }
          param_values:
            - name: campaign_member_id
              references:
                - dataset: salesforce_connector_example
                  field: campaign_members.Id
                  direction: from