I’m running into a timing issue with HubSpot in my n8n workflow.
I retrieve a contact using a transaction ID. When the workflow runs automatically, the HubSpot node doesn’t return all the properties I need — some fields are missing or empty. However, if I manually re-trigger the flow a few seconds later, all the data is there.
Has anyone faced this issue? How did you solve it?
Sounds like an API sync delay on HubSpot’s side — when a deal is created, HubSpot sometimes takes a few seconds to fully index properties across their system. Quick fix: add a 2-3 second delay before the Get a deal node, or use HubSpot’s sync API endpoint which explicitly waits for indexing. Also check if any missing properties have async dependencies (calculated fields, custom objects).
I do not get it. How waiting before query the data will give husbspot time to give me all the data whereas it is while I query it the second time that the data comes. And waiting without querying what i the purpose the logic behind ? I do not get how you solution may work.
The confusion makes sense — let me explain the underlying mechanism.
When HubSpot creates a deal/contact, it doesn’t write everything to one place simultaneously. Different properties get indexed across multiple internal systems (CRM, search index, association engine) at slightly different times. When your workflow fires immediately on creation, you’re hitting HubSpot’s API before those systems have fully synced — so you get partial data.
Why does a second query return complete data? Because by the time you manually re-trigger (even seconds later), HubSpot’s internal sync has caught up. You’re querying a more consistent state.
Why does waiting before the query help? Same reason — you’re giving HubSpot’s systems time to finish propagating the record. A 2-3 second Wait node is cheap insurance against this race condition.
Better approaches if the wait isn’t reliable:
Use HubSpot webhooks + a “record updated” trigger instead of “record created”. By the time an update fires, the record is fully indexed.
Poll with a loop: query → check if required fields are present → if not, wait 2s and retry (up to 3-4 times). More resilient than a fixed wait.
Use the properties parameter in your HubSpot Get node to explicitly request only the fields you need — sometimes the timeout is caused by fetching too many properties, some of which aren’t ready yet.
The root cause is HubSpot-side eventual consistency, not n8n. The wait is just working around their API’s eventual consistency window.