A popular free CRM with powerful marketing, sales, and service hubs that scale as your business grows.
Full ReviewMake (formerly Integromat) is a visual automation platform that connects HubSpot CRM to hundreds of other tools through automated workflows called scenarios. Unlike HubSpot's built-in workflow automation, Make enables complex multi-step processes that span across your entire tool stack: syncing contacts between platforms, triggering actions based on CRM events, enriching lead data from external sources, and routing information between marketing, sales, and support systems.
The native HubSpot module in Make supports contacts, companies, deals, tickets, engagements, and custom objects. You can trigger scenarios when records are created or updated in HubSpot, or push data into HubSpot from other applications. Make's visual scenario builder makes it possible to design sophisticated integrations without writing code, though it also supports custom API calls and JavaScript transformations for advanced use cases.
Make is often the right choice over Zapier for HubSpot integrations when you need conditional branching, data transformation, error handling, or multi-step workflows that Zapier's linear automation model handles less elegantly. The visual builder also makes complex automations easier to understand and debug than Zapier's step-by-step approach.
Log in to Make and click Create a new scenario from the dashboard. You will see a blank canvas with a single empty module node. Click the node to open the module selection panel.
Search for "HubSpot CRM" in the module search panel. Make offers a dedicated HubSpot CRM module (not to be confused with HubSpot Marketing or HubSpot Service modules). Select the trigger or action you need. Common triggers include Watch Contacts, Watch Deals, and Watch Companies. Common actions include Create/Update a Contact, Create a Deal, and Update a Deal Stage.
When you first add a HubSpot module, Make will prompt you to create a connection. Click Add next to the Connection field. Name your connection (e.g., "Production HubSpot") and click Authorize. You will be redirected to HubSpot's OAuth screen where you select the HubSpot account to connect and grant Make the necessary permissions. Click Connect app in HubSpot to complete authorization.
If you selected a Watch trigger, configure the polling interval (how often Make checks for new or updated records). The default is 15 minutes, but you can set it to as frequently as every 1 minute on paid plans. Set the Limit parameter to control how many records are processed per execution cycle. For initial testing, set this to 5 or 10 to avoid processing large batches.
Click the + icon to the right of your HubSpot module to add the next step. This could be another HubSpot action, a module from a different app (Slack, Google Sheets, Mailchimp), or a utility module like a Router (for conditional branching) or Iterator (for processing arrays). Map data from the HubSpot module to fields in subsequent modules by clicking input fields and selecting from the available HubSpot data.
Click Run once at the bottom left of the canvas. Make will execute the scenario once and show you the data flowing through each module. Green circles indicate successful modules, red circles indicate errors. Click any module to inspect the input and output data. Verify that the correct HubSpot data is being read and that downstream modules are receiving the expected values.
Once testing confirms correct behavior, toggle the scenario from OFF to ON using the switch at the bottom left. Set the schedule (how often the scenario runs) by clicking the clock icon next to the trigger module. Common schedules are every 15 minutes for non-urgent syncs or every 1-5 minutes for time-sensitive workflows.
Make's HubSpot module supports extensive configuration. You can filter which records trigger the scenario by adding a filter between modules (e.g., only process contacts where lifecycle stage equals "Lead"). The Router module enables conditional paths: for example, route new contacts to Slack for notification while simultaneously adding them to a Google Sheet for tracking. Use the Set Variable and Get Variable modules to store and retrieve data across complex multi-step workflows. Error handlers can be attached to any module to define fallback behavior when an API call fails.
| Data | Direction | Frequency |
|---|---|---|
| Contacts (all properties) | HubSpot to Make / Make to HubSpot | Based on scenario schedule |
| Companies | Bidirectional | Based on scenario schedule |
| Deals and pipeline stages | Bidirectional | Based on scenario schedule |
| Tickets | Bidirectional | Based on scenario schedule |
| Engagements (emails, calls, meetings) | HubSpot to Make / Make to HubSpot | Based on scenario schedule |
| Custom objects | Bidirectional (with API module) | Based on scenario schedule |
HubSpot OAuth tokens can occasionally expire. If your scenario starts failing with authentication errors, go to Connections in Make, find your HubSpot connection, and click Reauthorize. This refreshes the token without needing to reconfigure your scenarios.
When creating contacts in HubSpot via Make, use the Create or Update a Contact action instead of Create a Contact. This uses the email address as a deduplication key and updates existing records rather than creating duplicates.
Each data transformation, API call, and module execution counts as one operation. Complex scenarios with many modules consume operations quickly. Use the Router module's filter conditions to skip unnecessary processing, and consider processing records in batches during off-peak hours.
For power users, Make supports custom HubSpot API calls through the HTTP module, which lets you access any HubSpot API endpoint not covered by the standard module. Use webhooks as triggers instead of polling to get real-time data from HubSpot when records change. The Aggregator module can batch multiple HubSpot records into a single downstream action (e.g., batching new leads into a daily summary email). Make's data stores provide persistent key-value storage for tracking sync state, preventing duplicate processing across scenario runs.