Workflow automation · CRM integration
Demand IQ → HubSpot CRM Automation
Project overview
Prospect data was being generated in Demand IQ while the sales team worked entirely in HubSpot, which meant either re-keying records by hand or losing them. We built a multi-step Zap that fires on every new contact, pulls the full prospect record and report, then routes it through a nested path tree so that each type of prospect and each outcome creates the right kind of HubSpot record.
The Zap as built: a Demand IQ trigger, two enrichment lookups, then a nested path tree branching first on prospect type and then on call outcome, with a HubSpot write at each leaf.
The challenge
The trigger payload from a new contact is thin — enough to know someone exists, not enough to work them. The useful information lives in the prospect record and the generated report, which have to be fetched separately. And not every prospect should be treated the same way once it arrives.
- Prospects are created in Demand IQ; the sales team works only in HubSpot
- The trigger alone lacks the report and custom fields the team needs
- Different prospect types and call outcomes need different CRM treatment
- Manual re-keying is slow and silently drops records
- Contacts already in HubSpot must be updated, not duplicated
Our solution
One Zap, six logical steps and a nested branch. The enrichment happens before the branch, so every path downstream is working with a complete record rather than re-fetching.
- Triggers on New Contact in Demand IQ
- Fetches the full prospect by ID
- Fetches the prospect report and custom fields
- Splits on prospect type — Hero and Journey take separate routes
- Nests a second split under Hero for the call outcome: not home, or spoke to customer
- Creates or updates the HubSpot contact at each leaf with the fields that branch needs
Technical implementation
The work is in the path conditions and the field mapping, not the connection. Each branch has its own condition set and its own mapping into HubSpot, so a Hero prospect who was not home lands with different properties from a Journey prospect — without duplicating the enrichment steps that precede them.
- Multi-step Zap with nested Paths and per-branch conditions
- Demand IQ V2 app: one trigger plus two lookup actions
- HubSpot CRUD — create and update contacts and leads
- Field mapping from the prospect report and custom fields into HubSpot properties
- Enrichment placed ahead of the branch so no path repeats an API call
- Configured and tested against both systems’ live sandboxes
Technologies
- Zapier
- Demand IQ
- HubSpot CRM
- REST APIs
- Webhooks
- Field Mapping
- Conditional Routing
Key results
- Prospects reach HubSpot without anyone re-keying a record
- Each contact arrives already enriched with its report and custom fields
- Routing is decided by the automation, not by a person reading the record and choosing
- Three distinct outcomes — Journey, Hero/not home, Hero/spoke to customer — each land with their own field mapping
- Existing contacts update in place instead of creating duplicates
Why it matters
Most CRM integrations fail not at the connection but at the branch: everything works until the data needs to be treated differently depending on what it says. Doing the enrichment once, up front, and then branching on a complete record is what keeps a path tree like this maintainable as the conditions grow.
Services behind this project
Workflow & Process Automation
Multi-step, conditional automation across tools
CRM, Sales & Marketing Automation
HubSpot configuration, sync and field mapping