CredSpark offers a direct integration with HubSpot. This article will walk you through how to set it up.
How to set up HubSpot integration
As of November 30, 2022, HubSpot does not support API keys. In order to integrate with CredSpark, you will need to create a private app in HubSpot. Once you create an app, you will need to enable these scopes:
crm.schemas.contacts.read
crm.objects.contacts.read
crm.objects.contacts.write
Once you create that private app, you will be able to grab an access token. Email it to support@credspark.com so we can finish setting up the integration.
How the integration works
Once your integration is set up, go to the Data tab for the interaction which you want to sync with Hubspot and click on the “Integrations” button.
A new modal will appear:
By default, our question types First, Last Name, and Email are mapped. You can un-map any of these fields by clicking the trash icon. If you want to map additional fields, click “Add new field mapping” and select the correct fields in CredSpark and HubSpot. You might need to create a new property. Read more on how to do that here.
If you want CredSpark to send information to Hubspot, you MUST Enable Sync. Also, note that you need to set up the mapping and sync for each interaction separately.
Other things to note:
- If a contact does not exist, CredSpark will create a new contact in Hubspot
- We do not sync retroactively (it means that once the sync is on we will only send new responses)
- CredSpark can update existing records for the mapped fields (for example, if you have a contact Jane Doe, jane@gmail.com in Hubspot and this person completes an interaction as Jane Smith, jane@gmail.com, we will update the Last Name field in Hubspot). If the field is not mapped, we won’t update it.
- We never delete a contact (if you delete the response in CredSpark, it will still appear in HubSpot)
Endpoints
In case your engineering teams needs more details, we are using the following endpoints (with the scopes):
GET /contacts/v1/contact/utk/:hubspot_user_token/profile (crm.objects.contacts.read)
GET /crm/v3/properties/contacts (crm.schemas.contacts.read)
GET /crm/v3/objects/contacts/:email?idProperty=email (crm.objects.contacts.read)
POST /crm/v3/objects/contacts (crm.objects.contacts.write)
PATCH /crm/v3/objects/contacts/{contact_id} (crm.objects.contacts.write)