Hi n8n Community,
I’m building a workflow to automate my new client intake process and I’ve hit a roadblock with the HubSpot integration. I’m hoping an expert can point me to the simplest and most robust way to solve this.
My Goal:
When a new prospect books a meeting in Calendly, I want my workflow to:
Find (or Create) the Contact in HubSpot.
Find the Deal that is already associated with that Contact.
Update that Deal’s stage to “Appointment Scheduled.”
If no Deal exists for that Contact, create a new one and associate it with them.
What I’ve Built So Far:
Calendly Trigger: This is working perfectly. It fires on invitee.created and gives me the invitee’s name and email.
HubSpot - Create or Update Contact: This node is also working perfectly. It successfully finds an existing contact or creates a new one using the email from the Calendly trigger. It outputs the vid (Contact ID).
Where I’m Stuck:
I’m struggling with the best way to find the Deal that is associated with the Contact I just found. I’ve tried a few different approaches with the HubSpot - Search Deal node, but I can’t seem to find a “Property Name” in the dropdown that allows me to search for a deal based on its associated Contact ID or the contact’s email.
My Question for the Experts:
What is the most professional and “bulletproof” method for finding a HubSpot Deal based on the Contact information I receive from a Calendly trigger? I feel like I’m missing a simple step or the right operation in the HubSpot node.
Thank you in advance for your help!
Hi there,
I haven’t seen your exact workflow but I would consider using the HubSpot search API which lets you filter by object responses. You can retrieve associations of an object (e.g. from a Contact, get associated Deal(s)), using the Associations API. Then check for Deals.
You can try something like this
-
Calendly Trigger → get email, name.
-
HubSpot: Create or Update Contact → get Contact ID (let’s call it contactId).
-
HTTP Request Node → get associated Deals for that Contact
-
Method: GET
-
URL: https://api.hubapi.com/crm/v3/objects/contacts/{contactId}/associations/deals (or whichever version + path HubSpot supports in your portal).
-
Authentication: your HubSpot credential.
-
This returns zero or more deals associated.
-
-
IF node: if HTTP Request returns >0 deals (i.e. length of associations list > 0).
-
Yes path: pick a deal ID from the result (maybe the most recently modified, or any sort of business logic).
Then run HubSpot → Update Deal to update its stage property.
-
No path: run HubSpot → Create Deal, then also associate it with the Contact (if the create-deal operation doesn’t auto-associate). Then run Update Deal (if needed).
-
You could definitely start and build from here,
Cheers!
Thank you!
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.