Skip to content

Hubspot

Implementation Summary

Fidesops uses the following Hubspot endpoints to retrieve and delete Personally Identifiable Information (PII) when processing a Data Subject Request (DSR). Right to Access and Right to Delete (Right to Forget) support for each endpoint is noted below.

Endpoint Right to Access Right to Delete
Search Yes No
Contacts Yes Yes
Owners Yes No
Communication Preferences Yes Yes
Users Yes Yes

Connection Settings

Fidesops provides a Postman collection for easily establishing connections to your third party applications. Additional connection instructions may be found in the configuration guide.

Deletion requests are fulfilled by masking PII via UPDATE endpoints. To give fidesops permission to remove PII using DELETE endpoints, ensure the masking_strict variable in your fidesops.toml file is set to false.

Example Hubspot Configuration

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
saas_config:
  fides_key: hubspot_connector_example
  name: Hubspot SaaS Config
  type: hubspot
  description: A sample schema representing the Hubspot connector for Fidesops
  version: 0.0.1

  connector_params:
    - name: domain
      default_value: api.hubapi.com
    - name: private_app_token

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

  test_request:
    method: GET
    path: /companies/v2/companies/paged

  endpoints:
    - name: contacts
      requests:
        read:
          path: /crm/v3/objects/contacts/search
          method: POST
          body: |
            {
              "filterGroups": [{
                "filters": [{
                  "value": "<email>",
                  "propertyName": "email",
                  "operator": "EQ"
                }]
              }]
            }
          query_params:
            - name: limit
              value: 100
          param_values:
            - name: email
              identity: email
          data_path: results
          pagination:
            strategy: link
            configuration:
              source: body
              path: paging.next.link
        update:
          path: /crm/v3/objects/contacts/<contactId>
          method: PATCH
          body: |
            {
              <masked_object_fields>
            }
          param_values:
            - name: contactId
              references:
                - dataset: hubspot_connector_example
                  field: contacts.id
                  direction: from
    - name: owners
      requests:
        read:
          path: /crm/v3/owners
          method: GET
          query_params:
            - name: limit
              value: 100
          param_values:
            - name: placeholder
              identity: email
          postprocessors:
            - strategy: unwrap
              configuration:
                data_path: results
            - strategy: filter
              configuration:
                field: email
                value:
                  identity: email
          pagination:
            strategy: link
            configuration:
              source: body
              path: paging.next.link
    - name: subscription_preferences
      requests:
        read:
          path: /communication-preferences/v3/status/email/<email>
          method: GET
          param_values:
            - name: email
              identity: email
        update:
          path: /communication-preferences/v3/unsubscribe
          method: POST
          body: |
            {
              "emailAddress": "<email>",
              "subscriptionId": "<subscriptionId>",
              "legalBasis": "LEGITIMATE_INTEREST_CLIENT",
              "legalBasisExplanation": "At users request, we opted them out"
            }
          data_path: subscriptionStatuses
          param_values:
            - name: email
              identity: email
            - name: subscriptionId
              references:
                - dataset: hubspot_connector_example
                  field: subscription_preferences.id
                  direction: from
          postprocessors:
            - strategy: filter
              configuration:
                field: status
                value: SUBSCRIBED
    - name: users
      requests:
        read:
          path: /settings/v3/users/
          method: GET
          query_params:
            - name: limit
              value: 100
          param_values:
            - name: placeholder
              identity: email
          postprocessors:
            - strategy: unwrap
              configuration:
                data_path: results
            - strategy: filter
              configuration:
                field: email
                value:
                  identity: email
          pagination:
            strategy: link
            configuration:
              source: body
              path: paging.next.link
        delete:
          path: /settings/v3/users/<userId>
          method: DELETE
          param_values:
            - name: userId
              references:
                - dataset: hubspot_connector_example
                  field: users.id
                  direction: from
Back to top