Skip to content

Integração HubSpot

O MIDDAG Account integra-se ao HubSpot como camada de CRM. O HubSpot acompanha o processo comercial -- negócios, cotações, contatos e empresas. Faturamento e pagamento acontecem no WooCommerce e no Stripe. O HubSpot acompanha receita, não transações.

Arquitetura de conta dupla

ContaEntidade jurídicaMercadoMoeda
HubSpot BRMIDDAG Tecnologia LTDABrasilBRL
HubSpot LLCMIDDAG, LLCInternacionalUSD

Cada conta possui seu próprio token de acesso, portal ID e endpoint de webhook. A mesma organização cliente pode existir em ambos os HubSpots, vinculada através do registro de Organização do plugin.

Configuração

Credenciais da API

Configure no seu ambiente ou wp-config.php:

VariávelDescrição
HUBSPOT_BR_ACCESS_TOKENToken de acesso do HubSpot BR
HUBSPOT_BR_PORTAL_IDPortal ID do HubSpot BR
HUBSPOT_LLC_ACCESS_TOKENToken de acesso do HubSpot LLC
HUBSPOT_LLC_PORTAL_IDPortal ID do HubSpot LLC

Endpoints de webhook

Registre estas URLs no HubSpot em Settings > Integrations > Webhooks:

ContaURL do Webhook
HubSpot BRhttps://seusite.com/wp-json/middag-account/v1/webhooks/hubspot/br
HubSpot LLChttps://seusite.com/wp-json/middag-account/v1/webhooks/hubspot/llc

Pipelines de negócios

Configure estes pipelines em cada conta HubSpot:

PipelineCanalFluxo
self-serveWooCommerce / StripeAutomático: compra aciona negócio como closed-won
consultativeGerenciado no HubSpotManual: representante comercial gerencia etapas
renewalAutomáticoAutomático: eventos de renovação atualizam negócios
upsellGerenciado no HubSpotManual: equipe de CS gerencia oportunidades de upgrade

Mapeamento Organização-para-Empresa

Cada organização no plugin armazena dois IDs de empresa do HubSpot:

CampoDescrição
hubspot_company_id_brID da empresa no HubSpot BR
hubspot_company_id_globalID da empresa no HubSpot LLC

O plugin é o ponto de deduplicação. Quando o mesmo cliente existe em ambos os HubSpots, o único registro de Organização contém ambos os IDs de empresa.

Fonte da verdade por campo

A sincronização acontece no nível do campo, não no nível da entidade. Cada campo possui um proprietário definido:

DadoFonte da verdadeDireção
Campos da organizaçãoPluginPlugin para HubSpot
Negócios e etapas do pipelineHubSpotHubSpot para Plugin
Status da cotação (aceita/paga)PluginPlugin para HubSpot
Dados de criação da cotaçãoHubSpotHubSpot para Plugin
Dados comerciais do contatoHubSpotHubSpot para Plugin
Status do pedido/pagamentoPluginPlugin para HubSpot

Quando um conflito é detectado (campo editado em ambos os sistemas), o plugin vence para dados da organização. Uma trilha de auditoria registra o campo, valor antigo, valor novo e qual fonte prevaleceu.

Fluxo de cotação

O ciclo de vida da cotação abrange ambos os sistemas:

Cada cotação pertence a uma entidade de faturamento (BR ou Global). A sincronização direciona para a conta HubSpot correta.

Eventos de webhook

Negócios

EventoAção do plugin
deal.creationRegistrar oportunidade localmente
deal.propertyChange (stage)Atualizar etapa, valor e data de fechamento local
deal.deletionMarcar negócio como removido

Cotações

EventoAção do plugin
quote.creationCriar Cotação (status: draft)
quote.propertyChangeAtualizar cotação local
quote.deletionMarcar cotação como cancelada

Contatos

EventoAção do plugin
contact.creationCriar ou atualizar contato vinculado
contact.propertyChangeAtualizar dados do contato
contact.deletionDesativar contato

Propriedades customizadas do HubSpot

As seguintes propriedades customizadas devem ser criadas nos produtos do HubSpot para sincronização correta:

PropriedadeOrigemFinalidade
middag_skuSKU do produtoVincula produto HubSpot ao YAML
middag_tierNível do produtoRelatórios por nível de funil
middag_entitlement_classClasse de entitlementRoteamento de provisionamento
middag_billing_modelModelo de faturamentoClassificação do tipo de receita
middag_brandMarcaRelatórios multi-marca

Serviços sincronizados

A integração utiliza sete classes de serviço, migradas do tema original:

ServiçoFunção
CompanyServiceSincronizar Organização com Empresa do HubSpot
ContactServiceSincronizar Colaborador com Contato do HubSpot
DealServiceLer negócios do HubSpot para exibição no admin
QuoteServiceSincronização bidirecional de cotações
AssociationServiceVincular registros de empresa, contato e negócio
SearchServiceBuscar empresas e contatos no HubSpot
LineItemServiceSincronizar itens de linha da cotação

Isolamento de negócios

Negócios no HubSpot BR permanecem no HubSpot BR. Negócios no HubSpot LLC permanecem no HubSpot LLC. Não há sincronização cruzada entre contas. O plugin lê negócios de ambas as contas para exibição na interface admin (somente leitura).

Solução de problemas

SintomaCausa provávelCorreção
Organização não sincronizandoID de empresa do HubSpot ausenteVerifique se a organização possui um ID de empresa definido
Status da cotação não atualizandoVálidação de assinatura do webhookConfirme se o segredo HMAC está correto por conta
Contatos duplicados no HubSpotDeduplicação não executandoVerifique se a organização vincula ambas as contas
Dados de negócio desatualizadosEndpoint de webhook não registradoRegistre o endpoint nas configurações do HubSpot