hubspot

Export leads from a Google Sheet to HubSpot

rev-opsIntermediate

Overview

The purpose of this workflow is to capture leads from a Google Sheet and use these to create and update contacts in HubSpot. This workflow is fired every time a Gsheet ID is entered into a Tray Form: gsheet-leads-to-hubspot-submission-process

Prerequisites

To implement this workflow, you will need the following:

Getting Live

Click 'Use Template' to deploy the template in your chosen Workspace. Then take the following steps to configure the workflow and start submitting leads for processing:

The workflow will then start the process of pulling the leads into HubSpot.

End Result

export-gsheet-leads-to-hubspot-end-result

Key workflow steps

The following diagram gives a simplified breakdown of the key steps in the workflow: gsheets-to-hubspot


Data mapping


map-lead-source-step The workflow uses the data mapper to dynamically respond to the 'Lead Source' in the Google Sheet and maps it to a machine-readable format: Organic Search --> ORGANIC_SEARCH Paid Search --> PAID_SEARCH Email marketing --> EMAIL_MARKETING etc. This can then be passed to the HubSpot 'Latest Source' ('hs_analytics_source' in the Hubpsot API) when creating / updating contacts: lead-source-to-hubspot-latest-source


Standardization


standardize-step This Object Helpers step transforms the Google Sheet column headers into a standard object with fields in the following format: First Name --> first_name Last Name --> last_name Lead Source --> lead_source etc. Note that the actual value for Lead Source ('Paid Search', 'Referrals' etc.) is mapped according to the data mapping section above. For each lead we will then have a simple object which can be easily accessed by later HubSpot steps using jsonpaths such as $.steps.object-helpers-1.result.first_name: standardize-step-output


Email validation


validate-email-step The lead’s email address is validated for the appropriate user@domain.com format If the email address is invalid, the failure status will be written to the appropriate column in the lead sheet: failed-invalid-email


Create / Update contacts


create-update-hubspot-contact A search is made for an existing contact in HubSpot using the lead’s email address as the unique identifier. If a HubSpot contact does exist, the contact record is updated and the status of 'Success' is added to the 'Import Status' column in the Google Sheet. If a HubSpot contact does not exist, a new contact record is created and the status of 'Success' is added to the 'Import Status' column in the Google Sheet.


Updating UTMs


update-hubspot-utms For simplicity this template adds the UTM information into the HubSpot 'message' field for each contact (rather than using HubSpot custom fields). utm_campaign, utm_medium and utm_source are all picked up from the standardized object: utm-info-sheet-to-hubspot