---
title: Mesclagem de Objetos
description: Este código personalizado mescla objetos do CRM com base em uma propriedade chave, a fim de evitar duplicatas.
---

[Pular para o conteúdo](https://teste.hookdig.com/migration/knowledge/mesclagem-de-objetos#main-content)

Português - Brasil

Mostrar submenu para traduções

![](https://teste.hookdig.com/hs-fs/hubfs/hook_logo.png?width=100&height=75&name=hook_logo.png)

- Simule seu crédito
- Soluções
- Store
- Empresas

Abrir navegação principal

Fechar navegação principal

- Simule seu crédito
- Soluções
- Store
- Empresas
- Português - Brasil
  
  Mostrar submenu para traduções
- Nosso contato

 Nosso contato

 Como podemos ajudá-lo?

- Não há sugestões porque o campo de pesquisa está em branco.

1. [Central de Conhecimento](https://teste.hookdig.com/migration/knowledge?hsLang=pt-br)
2. [Operations](https://teste.hookdig.com/migration/knowledge/operations?hsLang=pt-br)

# Mesclagem de Objetos

## Este código personalizado mescla objetos do CRM com base em uma propriedade chave, a fim de evitar duplicatas.

### Tecnologias Utilizadas

- Linguagem: JavaScript
- Bibliotecas: HubSpot API Client e Axios

#### Objeto de filtro para pesquisa:

Este objeto é utilizado como parâmetro para a pesquisa de objetos com o mesmo valor para a propriedade chave.

```
    const PublicObjectSearchRequest = {        filterGroups: [{            "filters": [                { "value": mergeCode, "propertyName": "codigo_de_mesclagem", "operator": "EQ" }            ]        }]    };
```

 

#### Requisição de objetos a serem mesclados

Nesta etapa, é feita uma requisição ao hubspot para retornar objetos que correspondem ao filtro estabelecido na etapa anterior.

```
const apiResponse = await hubspotClient.crm.object.searchApi.doSearch(PublicObjectSearchRequest);
```

### Mesclagem de Objetos

1. **Requisição de Objetos**: O script faz uma requisição à API do HubSpot para identificar objetos que correspondem ao filtro estabelecido.
2. **Mesclagem de Duplicatas**: Se mais de um objeto for identificado como duplicata, o script procede com a mesclagem desses objetos entre si.

```
   if (apiResponse.total > 1) {            const duplicatesIds = apiResponse.results.map(el => parseInt(el.properties.hs_object_id)).filter(id => id != compId)            console.log(duplicatesIds);            // Iteração através das duplicatas para realizar a mesclagem             duplicatesIds.forEach(async duplicadoId => {                try {                    await merge(compId, duplicadoId);                    console.log(`Mesclagem concluída para os objetos ${compId} e ${duplicadoId}`);                } catch (error) {                    console.error(`Erro durante a mesclagem dos objetos ${compId} e ${duplicadoId}:`, error);                }            });        }
```

- No início desse código, é declarada a constante "duplicatesIds", que recebe como valor os IDs dos objetos retornados pela requisição feita ao Hubspot.
- Em seguida, para cada duplicata encontrada é chamada a função "merge" que a mescla com  o objeto que está passando pelo fluxo de trabalho.

### Código completo:

```
//Iniciação do cliente hubspotconst hubspot = require('@hubspot/api-client');const axios = require('axios');const hubspotClient = new hubspot.Client({    accessToken: process.env.MERGEFULL});exports.main = async (event, callback) => {    const mergeCode = event.inputFields['codigo_de_mesclagem'];    const compId = event.inputFields['hs_object_id'];    const PublicObjectSearchRequest = {        filterGroups: [{            "filters": [                { "value": mergeCode, "propertyName": "codigo_de_mesclagem", "operator": "EQ" }            ]        }]    };    try {        // Requisição das empresas com base no filtro PublicObjectSearchRequest        const apiResponse = await hubspotClient.crm.companies.searchApi.doSearch(PublicObjectSearchRequest);        // Chamando a função para mesclar as empresas        if (apiResponse.total > 1) {            const duplicatesIds = apiResponse.results.map(el => parseInt(el.properties.hs_object_id)).filter(id => id != compId)            console.log(duplicatesIds);            duplicatesIds.forEach(async duplicadoId => {                try {                    await merge(compId, duplicadoId);                    console.log(`Mesclagem concluída para os objetos ${compId} e ${duplicadoId}`);                } catch (error) {                    console.error(`Erro durante a mesclagem dos objetos ${compId} e ${duplicadoId}:`, error);                }            });        }    } catch (err) {        console.error(err);        throw err;    }}async function merge(primaryObjectId, objectIdToMerge) {    await axios.post(        'https://api.hubapi.com/crm/v3/objects/companies/merge',        {            primaryObjectId,            objectIdToMerge        },        {            headers: {                'Authorization': `Bearer ${process.env.MERGEFULL}`,                'Content-type': 'application/json',            },        },    );}
```

 

- [Test](https://teste.hookdig.com/migration/knowledge/test?hsLang=pt-br#main-content)

    - [Test 2](https://teste.hookdig.com/migration/knowledge/test?hsLang=pt-br#test-2)
- [Consulting Team](https://teste.hookdig.com/migration/knowledge/consulting-team?hsLang=pt-br)
- [Hubspot](https://teste.hookdig.com/migration/knowledge/hubspot?hsLang=pt-br)
- [Operations](https://teste.hookdig.com/migration/knowledge/operations?hsLang=pt-br)
- [Nova Categoria](https://teste.hookdig.com/migration/knowledge/nova-categoria?hsLang=pt-br)

- Simule seu crédito
- Soluções
- Store
- Empresas

[![Chill listening crop-3](https://teste.hookdig.com/hs-fs/hubfs/hook_logo.png?width=36&height=24&name=hook_logo.png "Chill listening crop-3")](http://hubspot-demo-account.hookdig.com)

<https://www.facebook.com/> <https://www.twitter.com/> <https://www.instagram.com/> <https://podcasts.apple.com/> [mailto:email@email.com](mailto:email@email.com)

Copyright © 2026, Hook