Integração entre HubSpot e Salesforce: guia passo a passo (2026)
Pare de perder leads para dados de CRM desalinhados. Veja como criar uma sincronização confiável e bidirecional entre HubSpot e Salesforce.  * Uma conta do Salesforce com credenciais de administrador ou um aplicativo conectado já configurado, com OAuth 2.0 habilitado * Uma conta ativa no MakeVocê criará um cenário que monitora novos contatos ou contatos atualizados no HubSpot e, em seguida, cria ou atualiza o registro de lead correspondente no Salesforce. Uma verificação de deduplicação fica entre os dois módulos para evitar que registros duplicados apareçam em qualquer um dos sistemas. Se esta for sua primeira vez criando no Make, o guia) cobre tudo o que você precisa antes de continuar. Para o Salesforce, revise o guia) em help.salesforce.com antes de iniciar a Etapa 2, pois você precisará ter sua Consumer Key e sua Consumer Secret em mãos.
Etapa 1: Configure sua conexão com o HubSpot no Make
Abra o Make e crie um novo cenário. Adicione um módulo gatilho do HubSpot como primeiro passo usando o guia,) e, em seguida, selecione o tipo de gatilho com base no que você está sincronizando: * Use Watch Contacts para acionar o cenário quando um contato for criado ou atualizado no HubSpot * Use Watch CRM Objects se você precisar acompanhar alterações em outros tipos de objeto, como empresas ou negóciosPara autenticar, selecione 'Add a connection' e escolha OAuth 2.0. O Make abre a tela de autorização do HubSpot, onde você concede os escopos exigidos pelo cenário: no mínimo, leitura/gravação de contatos e objetos de CRM. OAuth 2.0 é a escolha certa para uso em produção porque oferece controle granular de escopos e permite revogar o acesso sem precisar trocar chaves de API em cada integração. Depois de conectado, defina o intervalo de verificação. O padrão verifica o HubSpot em intervalos fixos, o que introduz latência proporcional a esse intervalo. Se o seu caso de uso exigir sincronização em tempo real, essa configuração do módulo não vai suportá-la: a sincronização em tempo real exige um gatilho com base em Webhook e uma configuração de módulo do HubSpot totalmente diferente.  | | {{1.company}} | Company | None | | {{1.hs_lead_status}} | LeadSource | Os valores da lista suspensa devem corresponder exatamente ao Salesforce | | {{1.createdate}} | CreatedDate | formatDate({{1.createdate}}; "YYYY-MM-DD") | | {{1.hubspot_owner_id}} | OwnerId | Requer consulta separada de ID de usuário | Três campos causam erros de sincronização com mais frequência: campos de data, em que o HubSpot retorna um timestamp Unix e o Salesforce espera ISO 8601, exigindo formatDate; campos de lista suspensa, em que os valores devem corresponder exatamente a uma opção válida do Salesforce. Campos obrigatórios do Salesforce sem equivalente no HubSpot precisam de um valor padrão definido no módulo, ou o registro vai falhar em todas as execuções. ![Make scenario image for salesforce & Hubspot](__CODE_BLOCK_10__Step 4: Add a deduplication filter
Before the Salesforce write module, add a Salesforce Search Records module to query by email address. If a matching record is found, the bundle returns a Salesforce lead ID. If not, it returns empty. Use that result to drive a[ ](__CODE_BLOCK_11__ with two branches: * New lead: search returns empty, route runs Salesforce Create a Record * Existing lead: search returns a matching ID, route runs Salesforce Upsert a RecordWithout this logic, every HubSpot contact update triggers a new Salesforce lead record, polluting your CRM with duplicates that are difficult to reconcile after the fact. One tradeoff to account for: the Salesforce Search Records module consumes an Operation on every Scenario run. Mitigate it by tightening your trigger conditions in Step 1, so the Scenario only fires on contacts that are genuinely new or meaningfully updated, rather than on every minor property change.
Step 5: Handle errors and set up notifications
In a CRM sync context, silent failures are dangerous. A contact that fails to create in Salesforce simply disappears from the sales pipeline, with no visibility for anyone. Right-click the Salesforce Create a Record or Salesforce Upsert a Record module and select "Add error handler" to open the[ ](__CODE_BLOCK_12__ Choose the right directive for your use case: | Directive | When to use it | | --- | --- | | Break | Stores the failed bundle in Incomplete Executions for manual or automatic retry — the right default for a CRM write | | Resume | Continues the Scenario with a fallback value — use only if the failed record is non-critical | | Rollback | Stops execution and attempts to revert prior actions — use for multi-system writes where partial records cause bigger problems | After the error handler, add a notification module: a Slack message or email that fires on failure, with {{error.message}} and the contact ID mapped into the message body. This gives your team immediate visibility when a sync fails. Finally, enable email alerts for incomplete runs in your Scenario settings. This adds a second layer of monitoring that catches failures the error handler route itself may not surface.Step 6: Test the Scenario and validate data
Click Run once in the Scenario Builder toolbar to trigger a single [test execution](__CODE_BLOCK_13__ Use a real HubSpot contact with a known email address so you can cross-reference the output directly in Salesforce. After the run, check each module's output bubble to confirm data passed through correctly. Then validate the resulting Salesforce record against the following checklist: * Record was created or updated, not duplicated * All mapped field values match the HubSpot source contact exactly * Data types are correct: dates in ISO 8601 format, phone numbers as strings * Record ownership transferred to the expected Salesforce user * The error handler route was not triggeredIf any item fails, open the bundle output for the failing module in the Scenario Builder to identify where the data broke down. Fix the mapping or transformation, then rerun. Run five to ten test records before activating the Scenario for production use. A single passing test rarely surfaces edge cases around picklist values, missing required fields, or contacts with incomplete data.
What are common use cases for a HubSpot Salesforce integration?
Most ops and RevOps teams build a HubSpot Salesforce integration for one of two reasons: * Automating the marketing lead handoff to sales * Keeping deal stage data consistent across both platforms for revenue reportingBoth follow the same Scenario architecture covered in this guide, with different trigger conditions and field mappings. Start from Make's create a Salesforce lead from a HubSpot CRM [contact template](__CODE_BLOCK_14__ to accelerate either build. | Use case | Trigger | Outcome | | --- | --- | --- | | Marketing lead handoff | Contact reaches MQL status in HubSpot | Salesforce lead created and assigned to the correct rep within minutes | | Deal stage sync | Deal stage changes in Salesforce | HubSpot deal record updated to match, keeping attribution intact |