NODE 16X - Empresa automática (emails gratuitos)
unknown
plain_text
2 years ago
3.2 kB
11
Indexable
const hubspot = require("@hubspot/api-client");
exports.main = (event, callback) => {
const hubspotClient = new hubspot.Client({
accessToken: "CODIGO API",
});
hubspotClient.crm.contacts.basicApi
.getById(event.object.objectId, ["company"]) // Alterado para "company"
.then((results) => {
const companyName = results.body.properties.company;
if (!companyName) {
console.error("Nome da empresa está vazio ou nulo.");
callback({ error: "Nome da empresa não fornecido." });
return;
}
const searchCriteria = {
filterGroups: [
{
filters: [
{
propertyName: "name",
operator: "EQ",
value: companyName,
},
],
},
],
properties: ["name"],
limit: 1,
};
hubspotClient.crm.companies.searchApi
.doSearch(searchCriteria)
.then((searchCompanyResponse) => {
if (searchCompanyResponse.body.total === 0) {
// Nenhuma empresa encontrada, cria uma nova
const companyObj = {
properties: {
name: companyName,
},
};
hubspotClient.crm.companies.basicApi
.create(companyObj)
.then((companyCreateResponse) => {
return hubspotClient.crm.companies.associationsApi.create(
companyCreateResponse.body.id,
"contacts",
event.object.objectId,
"company_to_contact"
);
})
.then(() =>
callback({
outputFields: {
message: "Empresa criada e associada com sucesso.",
},
})
)
.catch((err) => {
console.error("Erro ao criar ou associar empresa:", err);
callback({ error: "Falha ao criar ou associar empresa." });
});
} else {
const companyId = searchCompanyResponse.body.results[0].id;
hubspotClient.crm.companies.associationsApi
.create(
companyId,
"contacts",
event.object.objectId,
"company_to_contact"
)
.then(() =>
callback({
outputFields: { message: "Associação criada com sucesso." },
})
)
.catch((err) => {
console.error("Erro ao associar empresa existente:", err);
callback({ error: "Falha ao associar com empresa existente." });
});
}
})
.catch((err) => {
console.error("Erro na pesquisa de empresa:", err);
callback({ error: "Falha na pesquisa de empresa." });
});
})
.catch((err) => {
console.error("Erro ao recuperar contato:", err);
callback({ error: "Falha ao recuperar informações do contato." });
});
};
Editor is loading...
Leave a Comment