HubSpot CRM Integration

Zephyr documentation

How HubSpot Integration Works

Zephyr connects to HubSpot CRM using OAuth 2.0 and provides two workflow actions. The hubspot_contact action creates a new contact from the email sender or retrieves the existing one if they are already in your CRM. The hubspot_activity action logs the inbound email as an engagement against that contact. Together they let you automatically capture leads and log every email interaction without leaving Outlook.

Setting Up HubSpot

1) Go to developers.hubspot.com and create a new app.

2
Under Auth, set the redirect URL to your Zephyr API URL + /connectors/hubspot/callback.
3
Add scopes: crm.objects.contacts.write, crm.objects.contacts.read, crm.objects.deals.write.
4
Copy the Client ID and Client Secret.
5
Add them as SSM parameters: /zephyr/prod/hubspot-client-id and /zephyr/prod/hubspot-client-secret.
6
Deploy Zephyr.
7
In Settings > Connected Services, click Connect on the HubSpot card.

Creating HubSpot Workflows

Example: 'When a lead emails me, save them as a HubSpot contact and log the email activity'. The AI generates a workflow with hubspot_contact followed by hubspot_activity. The hubspot_contact action is idempotent: if the contact already exists in HubSpot, it returns the existing contact ID rather than creating a duplicate. The hubspot_activity action logs the email subject and sender as an inbound email engagement on that contact's timeline.

Contact Deduplication

You do not need to worry about creating duplicate contacts. The hubspot_contact action checks whether a contact with the sender's email address already exists in HubSpot before creating a new one. If a match is found, it returns the existing contact ID and the workflow continues. This makes it safe to run the action on every incoming email from a contact.