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