Analise Tecnica

Integracao Zenvia → HubSpot

Zenvia → HubSpot: Dois Caminhos Possiveis
Epic Digital — Equipe Tecnica v1.0 — 05/03/2026
ProjetoMiddleware de Integracao PetLove × HubSpot × Zenvia
DocumentoAnalise Tecnica — Integracao Zenvia × HubSpot
Versao1.0 (baseado no Brief Tecnico v3.2)
Data05/03/2026
AutorEpic Digital — Equipe Tecnica
ObjetivoApresentar analise tecnica dos 2 fluxos viaveis de integracao Zenvia → HubSpot

Resumo Executivo

Este documento apresenta a analise tecnica da integracao entre o atendimento via WhatsApp (Zenvia) e o HubSpot CRM. O objetivo e garantir que, quando um cliente entra em contato pelo WhatsApp, os dados do atendimento — contato, negocio, conversa e vendedor responsavel — sejam registrados automaticamente no HubSpot.

Para viabilizar essa integracao, foram mapeados dois caminhos possiveis, cada um com caracteristicas, vantagens e limitacoes distintas:

Fluxo A — Middleware: a Zenvia envia eventos para um servidor intermediario (Node.js) que processa, valida e grava no HubSpot. Toda a logica — incluindo criacao de contatos novos, atribuicao de vendedor e registro de conversa — fica sob nosso controle, com versionamento via Git e sem limitacao de tempo de execucao.

Fluxo B — HubSpot Direto: a Zenvia envia webhooks diretamente para o HubSpot, que processa tudo via Workflows com Custom Code. E uma solucao mais rapida de implementar, porem depende do plano Operations Hub Professional, possui limite de 20 segundos por execucao e apresenta uma limitacao importante: contatos que ainda nao existem no HubSpot nao disparam o workflow.

Ambos os fluxos entregam o mesmo resultado para o usuario final. A diferenca esta na arquitetura, nos prazos, nas dependencias de licenciamento e no tratamento de contatos novos. As secoes a seguir detalham cada caminho, os endpoints da Zenvia envolvidos, as limitacoes identificadas e as decisoes pendentes.

Secao 1
1

O que ja sabemos (resumo)

Antes de falar de fluxos, um resumo rapido do que ja foi confirmado em calls anteriores com a Zenvia (15/01 e 21/01):

O que Status Fonte
Zenvia opera em push (webhooks) Confirmado call-02 (15/01) — Bruno Prusch, Victor Poletti
2 tipos de webhook:CONVERSATION_STATUS e CONVERSATION_MESSAGE Confirmado Handoff Tecnico + call-04 (21/01)
Payloads documentados(conversation.id, contactId, message, etc.) Confirmado Handoff Tecnico + call-04
Webhook NAO traz dados completos do contato(so contactId → precisa GET /contacts) Confirmado call-02 (Bruno), call-04 (Vitor Simoes)
userId do vendedor = ID interno Zenvia(precisa mapear → email) Confirmado call-04 (Vitor Simoes alertou)
API v2 NAO tem rota de buscar vendedor por ID(API v1 tem, mas precisa de token separado) Confirmado call-04 (Vitor Simoes)
Regras de ownership:24h janela, 15 dias carteira, 1 negocio por vez Confirmado call-04 (Lucas Freire)
PetLove tem codigo PHP que faz Zenvia→RD Station(referencia, nao reaproveitavel direto) Confirmado call-04 (Anderson Casimiro)
Secao 2
2

Fluxo A — Zenvia → Middleware → HubSpot

Neste fluxo, construimos um middleware nosso que fica entre a Zenvia e o HubSpot. Ele recebe todos os eventos, processa a logica e grava no CRM. E o plano original da Estimativa V4.1.

2.1 O que viabiliza este fluxo

O middleware e uma aplicacao Node.js/Express controlada por nos. Nao depende de nenhum recurso especial do HubSpot — precisa apenas da API padrao do HubSpot (qualquer plano com acesso a API: Marketing Hub, Sales Hub, etc.).

Capacidades do middleware:

  • Endpoint HTTP proprio — recebe POST da Zenvia (webhook)
  • Chamadas ilimitadas para APIs externas (Zenvia GET /contacts, HubSpot API)
  • Sem limite de tempo de execucao (pode processar logica complexa)
  • Fila propria (Bull/Redis, SQS) com retry, Dead Letter Queue, idempotencia
  • Codigo versionado em Git — testavel, debugavel, auditavel
  • Pode rodar em Railway, Render, AWS, GCP ou qualquer cloud
REQUISITO: NAO precisa de Operations Hub nem de nenhum add-on do HubSpot. Funciona com qualquer plano que tenha acesso a API.

2.2 Passo a passo (explicacao simplificada)

PASSO 1    Cliente manda WhatsApp
           |
PASSO 2    ZENVIA recebe a mensagem e o atendimento acontece
           |
PASSO 3    Quando algo muda (novo atendimento, mensagem, vendedor atribuido, fechou)
           a ZENVIA automaticamente envia um aviso (POST) para o NOSSO MIDDLEWARE
           |
PASSO 4    NOSSO MIDDLEWARE recebe o aviso e faz:
           a) Valida que o aviso e legitimo (autenticacao)
           b) Busca dados completos do contato na ZENVIA (GET /contacts)
           c) Aplica regra: esse vendedor e o dono? Ja tem negocio aberto?
           d) Grava tudo no HUBSPOT: contato, negocio, conversa, vendedor
           |
PASSO 5    HUBSPOT tem os dados. Equipe ve no CRM.

Detalhando cada passo:

1. Cliente manda WhatsApp

Uma pessoa interessada em seguro pet envia mensagem pelo WhatsApp da PetLove. A Zenvia e quem recebe essa mensagem na plataforma de atendimento.

2. Zenvia processa o atendimento

O vendedor da PetLove atende pelo painel da Zenvia. O atendimento pode passar por fila, ser distribuido a um vendedor, receber mensagens, e eventualmente ser encerrado.

3. Zenvia envia webhooks para nosso middleware

Cada vez que algo muda (nova conversa, mensagem, vendedor atribuido, conversa fechada), a Zenvia automaticamente faz um POST para a URL do nosso middleware. Esse POST contem: ID da conversa, tipo do evento, ID do contato.

4. Middleware processa o evento

Nosso middleware recebe o POST e executa toda a logica:

  • a) Valida autenticacao (confirma que veio da Zenvia)
  • b) Coloca na fila (para evitar perda em caso de falha)
  • c) Busca dados completos do contato na Zenvia (GET /contacts/{id})
  • d) Verifica regras: janela 24h, carteira 15 dias, 1 negocio por vez
  • e) Mapeia vendedor: userId Zenvia → email → ownerId HubSpot
  • f) Cria/atualiza no HubSpot: Contact, Deal, Communication, Atendimento, Owner

5. HubSpot tem os dados

A equipe comercial abre o HubSpot e ve tudo atualizado: contato com dados do WhatsApp, negocio criado, conversa registrada na timeline, vendedor correto como owner.

2.3 Diagrama

  +----------+    POST webhook     +-------------------------+     POST API      +-----------+
  |          | ------------------> |                         | ----------------> |           |
  |  ZENVIA  |                     |  MIDDLEWARE (Node.js)   |                   |  HUBSPOT  |
  |          | <------------------ |                         |                   |    CRM    |
  +----------+   GET /contacts/{id}|  * Valida webhook       |                   |           |
                                   |  * Busca contato Zenvia |                   | * Contact |
               (chamado pelo       |  * Regras ownership     |                   | * Deal    |
                Middleware)        |  * Idempotencia / fila  |                   | * Comm.   |
                                   |  * Cria objetos HubSpot |                   | * Owner   |
                                   +-------------------------+                   +-----------+

2.4 Quem faz o que

Quem Faz o que Chama quem
Cliente Manda mensagem no WhatsApp → Zenvia (automatico)
Zenvia Recebe, processa o atendimento, e quando algo muda
envia POST automaticamente para nosso middleware
→ Middleware (POST)
Middleware
(nosso)
Recebe o POST, valida, busca dados na Zenvia,
aplica regras de negocio, e grava no HubSpot
→ Zenvia (GET)
→ HubSpot (POST)
HubSpot Recebe os dados via API e grava no CRM
(contato, negocio, conversa, associacoes, vendedor)
— (so recebe)

2.5 Pros

  • Funciona com QUALQUER plano HubSpot (nao precisa Operations Hub)
  • Sem limite de timeout — pode processar logica complexa sem pressa
  • Cria contatos novos sem problema (nao depende de registro existente no HS)
  • Fila propria com retry, Dead Letter Queue, idempotencia
  • Codigo versionado em Git, testavel, debugavel
  • Toda a logica em UM lugar — facil de debugar e auditar

2.6 Contras

  • Precisa construir e manter middleware rodando (infra + deploy + monitoramento)
  • Desenvolvimento mais demorado: ~46-60 dias uteis (conforme Estimativa V4.1)
  • Precisa de pipeline CI/CD, logging, alertas, healthcheck
  • Equipe Epic precisa manter o codigo (updates, bug fixes)
Secao 3
3

Fluxo B — Zenvia → HubSpot (direto, sem middleware)

Neste fluxo, a Zenvia envia webhooks diretamente para o HubSpot, que processa tudo internamente usando Workflows com Custom Code. Nao existe middleware externo — e 100% Zenvia + HubSpot.

3.1 O que o HubSpot oferece que viabiliza este fluxo

Analise baseada na documentacao oficial do HubSpot (developers.hubspot.com + knowledge.hubspot.com). Tres capacidades-chave:

① Receber webhooks de apps externos

O HubSpot gera uma URL propria que aceita POST de qualquer app externo. Quando recebe o POST, dispara um Workflow automaticamente.

  • 1. Criar Workflow — No HubSpot → Automation → Workflows → New workflow.
  • 2. Escolher trigger "When a webhook is received" — Na secao "Custom events & external events". O HubSpot gera uma URL unica.
  • 3. Configurar URL no Zenvia — Na plataforma da Zenvia, cadastramos essa URL como destino dos webhooks. A Zenvia envia POST com application/json diretamente para o HubSpot.
  • 4. HubSpot mapeia campos e dispara acoes — O JSON e parseado, campos sao mapeados para propriedades do contato, e o workflow executa as acoes configuradas (Custom Code, etc.).

② Custom Code Actions (codigo serverless dentro do Workflow)

Dentro de um Workflow, e possivel rodar codigo Node.js ou Python como serverless function (AWS Lambda). Pode chamar APIs externas (ex: Zenvia GET /contacts) e a API do HubSpot internamente.

  • Chamar APIs externas com axios (ex: GET /contacts na Zenvia)
  • Usar @hubspot/api-client para criar/atualizar CRM internamente
  • Guardar secrets (tokens) em variaveis de ambiente seguras
  • Retornar dados para o proximo passo do workflow (data outputs)
  • Conectar com Redis, MySQL, MongoDB, Google APIs, AWS SDK
Limitacao Valor
Timeout por execucao 20 segundos (maximo)
Memoria 128 MB
Plano necessario Operations Hub Professional ou Enterprise
Bibliotecas Node.js disponiveis @hubspot/api-client, axios, lodash, mongoose, mysql, redis, aws-sdk, googleapis, bluebird, request

③ Send a Webhook (Workflow → API externa)

Uma acao dentro do Workflow que faz POST ou GET para qualquer URL externa, com autenticacao (API key ou HMAC), retry automatico por ate 3 dias.

  • POST: envia dados do HubSpot para API externa
  • GET: busca dados de API externa e injeta no workflow
  • Autenticacao: API key (header/query) ou request signature (HMAC)
  • Retry: automatico por ate 3 dias, respeita Retry-After em 429
REQUISITO: REQUER Operations Hub Professional ou Enterprise. Sem esse plano, as capacidades ①②③ acima NAO estao disponiveis.

3.2 Passo a passo — o que funciona (contatos JA existentes no HubSpot)

Para contatos que JA EXISTEM no HubSpot (ex: ja foram importados, ja vieram por formulario, ja foram cadastrados manualmente), o fluxo funciona 100% sem nenhum middleware externo.

PASSO 1    Cliente manda WhatsApp (contato JA EXISTE no HubSpot)
           |
PASSO 2    ZENVIA recebe a mensagem e o atendimento acontece
           |
PASSO 3    Quando algo muda (novo atendimento, mensagem, vendedor atribuido, fechou)
           a ZENVIA envia POST diretamente para a URL do HUBSPOT
           |
PASSO 4    HUBSPOT recebe o webhook, encontra o contato pela propriedade unica
           (ex: telefone), e DISPARA o WORKFLOW automaticamente
           |
PASSO 5    Dentro do Workflow, um CUSTOM CODE (Node.js) roda:
           a) Busca dados completos na ZENVIA (GET /contacts)
           b) Aplica regras de negocio (ownership, janela 24h)
           c) Cria o negocio, grava a conversa, seta o vendedor
           |
PASSO 6    HUBSPOT tem os dados. Equipe ve no CRM.

Detalhando cada passo:

1. Cliente manda WhatsApp

Uma pessoa interessada em seguro pet envia mensagem pelo WhatsApp da PetLove. A Zenvia e quem recebe essa mensagem na plataforma de atendimento. Esse cliente ja foi cadastrado no HubSpot anteriormente (importacao, formulario, etc.).

2. Zenvia processa o atendimento

O vendedor da PetLove atende pelo painel da Zenvia. O atendimento pode passar por fila, ser distribuido a um vendedor, receber mensagens, e eventualmente ser encerrado.

3. Zenvia envia webhook DIRETO para o HubSpot

Cada vez que algo muda (nova conversa, mensagem, vendedor atribuido, conversa fechada), a Zenvia faz um POST diretamente para a URL gerada pelo HubSpot. Esse POST contem: ID da conversa, tipo do evento, telefone do contato.

4. HubSpot recebe e dispara Workflow

O HubSpot recebe o webhook, procura um contato com a propriedade unica correspondente (ex: campo phone = numero do WhatsApp). Como o contato JA EXISTE, o Workflow e disparado automaticamente.

5. Custom Code processa dentro do HubSpot

Dentro do Workflow, um bloco de Custom Code (Node.js) roda:

  • a) Usa axios para chamar a Zenvia: GET /contacts/{id} — busca dados completos
  • b) Aplica regras de negocio (ownership, janela 24h)
  • c) Mapeia vendedor: userId Zenvia → email → ownerId HubSpot
  • d) Usa @hubspot/api-client para criar: Deal, Communication, Atendimento, Owner

Tudo acontece DENTRO do HubSpot, zero middleware externo.

6. HubSpot tem os dados

A equipe comercial abre o HubSpot e ve tudo atualizado: contato, negocio, conversa registrada, vendedor correto. Igual ao Fluxo A — o resultado final e o mesmo.

3.3 O que NAO funciona — Limitacao com contatos novos

LIMITACAO CRITICA: O workflow com trigger "When a webhook is received" SO DISPARA se ja existir um registro no HubSpot com uma propriedade UNICA que corresponda a um valor do payload. Se o contato NAO existir no HubSpot → o webhook e IGNORADO silenciosamente. O HubSpot NAO cria contatos a partir de webhooks recebidos.
CENARIO: Contato NOVO (primeira conversa no WhatsApp - nunca esteve no HubSpot)

PASSO 1    Cliente NOVO manda WhatsApp
           |
PASSO 2    ZENVIA recebe e atende normalmente
           |
PASSO 3    ZENVIA envia POST para a URL do HUBSPOT
           |
PASSO 4    HUBSPOT recebe, procura contato com phone = +5511999...999
           → NAO ENCONTRA (contato nunca existiu)
           → WEBHOOK IGNORADO
           → Nenhum workflow dispara
           → Dados perdidos silenciosamente

O que isso significa na pratica:

  • Se o contato e novo (primeira conversa no WhatsApp, nunca cadastrado no HubSpot) → dados PERDIDOS
  • O HubSpot nao avisa, nao gera erro, nao registra — simplesmente ignora
  • Para que funcione, o contato PRECISA existir no HubSpot ANTES do webhook chegar
  • Contatos que ja vieram por formulario, importacao ou cadastro manual → funcionam normalmente

Formas de garantir que o contato exista previamente:

  • Importacao periodica de contatos da Zenvia para o HubSpot (manual ou agendada)
  • Formulario de captacao de leads que ja cadastra no HubSpot antes de ir para a Zenvia
  • Integracao via outra ferramenta (ex: RD Station → HubSpot) que cria o contato antes
  • Criar contatos manualmente no HubSpot a medida que chegam na Zenvia
CONCLUSAO: Se a PetLove ja garante que os contatos existam no HubSpot antes de iniciar atendimento na Zenvia, essa limitacao e resolvida e o Fluxo B funciona 100% sem middleware. Caso contrario, o Fluxo A (Middleware) ou uma Cloud Function auxiliar seriam necessarios para cobrir esse gap.

3.4 Diagrama

                POST webhook (direto)
  +----------+                        +-------------------------------------+
  |          | ---------------------> |  HUBSPOT (Operations Hub)           |
  |  ZENVIA  |                        |                                     |
  |          |                        |  1. Recebe webhook                  |
  +----------+                        |  2. Busca contato por prop. unica   |
       ^                              |     Encontrou → Workflow dispara    |
       |                              |     Nao encontrou → IGNORA         |
       |                              |  3. Custom Code (Node.js):          |
       |                              |     * axios: GET Zenvia /contacts   |
       |  GET /contacts/{id}          |     * Regras ownership (24h/15 d)   |
       +------------------------------+     * Cria Deal, Communication      |
          (chamado pelo Custom Code)  |     * Seta Owner (vendedor)         |
                                      |  4. Resultado:                      |
                                      |     * Contact (existente, atualiz.) |
                                      |     * Deal + Communication + Owner  |
                                      +-------------------------------------+

3.5 Quem faz o que

Quem Faz o que Chama quem
Cliente Manda mensagem no WhatsApp → Zenvia (automatico)
Zenvia Recebe, processa o atendimento, e quando algo muda
envia POST diretamente para o HubSpot
→ HubSpot (POST webhook)
HubSpot
Workflow +
Custom Code
1) Recebe webhook e dispara workflow
(somente se contato existir)
2) Custom Code busca dados na Zenvia
3) Aplica regras e cria objetos CRM
→ Zenvia (GET /contacts)
→ HubSpot (interno - API)

3.6 Pros

  • Zero middleware — sem nenhuma aplicacao externa para construir ou manter
  • Conexao direta: Zenvia → HubSpot (a Zenvia faz POST direto na URL do HubSpot)
  • Logica de negocio fica no HubSpot (visivel para equipe no UI)
  • Workflow actions nativas disponiveis no mesmo fluxo (send email, create task, etc.)
  • Custom Code pode chamar Zenvia, HubSpot e qualquer API externa (axios)
  • Ja e padrao usado com iFood e outros clientes na Epic
  • Desenvolvimento mais rapido: ~15-25 dias uteis (sem middleware para construir)
  • Zero infra externa alem do HubSpot

3.7 Contras

  • REQUER Operations Hub Professional — verificar se PetLove ja tem
  • Contatos NOVOS sao IGNORADOS — so funciona se o contato ja existir no HubSpot
  • Timeout de 20 segundos por Custom Code (logica muito complexa pode estourar)
  • Memoria limitada a 128 MB por execucao de Custom Code
  • Sem fila propria / DLQ (depende do retry do HubSpot: 3 dias, intervalos crescentes)
  • Mudancas no workflow exigem edicao no HubSpot UI (nao e versionado em Git)
  • Se muitos contatos forem novos e nao existirem no HS, perda silenciosa de dados
Secao 4
4

Comparativo lado a lado

Criterio Fluxo AZenvia → Middleware → HubSpot Fluxo BZenvia → HubSpot (direto)
Precisa de Operations Hub? NAO SIM (Professional)
Precisa de middleware externo? SIM (middleware completo) NAO (zero middleware)
Contato novo (nunca existiu no HS)? Cria sem problema IGNORADO silenciosamente
Quem processa webhooks Zenvia? Middleware (nosso codigo) HubSpot Workflow direto
Quem chama GET /contacts Zenvia? Middleware (axios/fetch) Custom Code no HubSpot (axios)
Logica de ownership (24h/15 dias)? Middleware (sem limite) Custom Code (limite 20s)
Idempotencia? Controle total Precisa implementar no Custom Code
Fila / DLQ / retry? Fila propria (Bull, SQS) Retry do HubSpot (3 dias)
Timeout? Sem limite 20 segundos por execucao
Memoria? Sem limite 128 MB
Onde fica a logica principal? Codigo (Git, testavel) HubSpot UI (visual, sem Git)
Tempo de desenvolvimento 46-60 dias uteis (V4.1) ~15-25 dias uteis (estimativa)
Complexidade de manutencao Media (codigo versionado) Baixa (so HubSpot UI)
Padrao ja usado na Epic? Novo para este projeto Similar ao iFood e outros
DECISAO: A escolha depende de: (1) PetLove ja tem Operations Hub Professional? (2) A complexidade da logica de ownership cabe em 20 segundos? (3) A equipe prefere logica no HubSpot UI ou em codigo versionado?
Secao 5
5

Opcoes descartadas (e por que)

5.1 WhatsApp nativo do HubSpot (sem Zenvia)

O HubSpot tem integracao nativa com WhatsApp via Meta Cloud API. As mensagens aparecem direto na Inbox. Porem, isso exige migrar o numero do Zenvia para o Meta diretamente, eliminando o Zenvia como plataforma de atendimento (filas, roteamento, chatbot, distribuicao). Nao e viavel sem redesenhar a operacao da PetLove.

5.2 Zapier / Make como middleware

Sao plataformas de middleware visual (no-code). Funcionam para fluxos simples, mas a logica da PetLove e complexa: ownership com janela 24h/15 dias, idempotencia, multiplas APIs encadeadas (GET Zenvia → POST Contact → POST Deal → POST Communication → POST Association → Set Owner). Zapier/Make ficam frageis com essa complexidade, cobram por execucao (escala limitada), e nao oferecem fila/DLQ/retry adequado.

5.3 HubSpot Custom Channels API

API que faz mensagens da Zenvia aparecerem na Inbox de Conversas do HubSpot (como se fosse WhatsApp nativo). MAS: requer backend igualmente (e middleware). Nao e necessario para o MVP, que foca no CRM (contatos, negocios, timeline). Pode ser evolucao pos-MVP se quiserem conversas na Inbox.

Secao 6
6

Endpoints Zenvia que vamos consumir

# Endpoint Metodo API Token Status nosso
1 WebhookCONVERSATION_STATUS POST (inbound) v2 Setup plataforma Sem acesso
2 WebhookCONVERSATION_MESSAGE POST (inbound) v2 Setup plataforma Sem acesso
3 GET /contacts/{contactId} GET (outbound) v2 Token v2 Sem token
4 POST /subscriptions POST (outbound) v2 Token v2 Sem token
5 Listar vendedores GET (outbound) v1 (?) Token v1 Incerto
NOTA: Nenhum desses endpoints foi testado por nos. Toda informacao vem de documentacao, calls gravadas (15/01, 21/01) e relatos do Vitor Simoes.
Secao 7
7

Cronograma de dependencia

Quando O que fazer Depende de
AGORA Scaffolding, config HubSpot sandbox, custom objects, event defs Nada da Zenvia
Com token v2 ZenviaService, WebhookValidator, cadastrar subscriptions, testar Token v2 + acesso plataforma
Com token v1 ou definicao G1 OwnerMappingService (userId → email → ownerId) Token v1 ou alternativa
Com tudo acima Testes integrados, handlers completos, homologacao Todos os tokens + staging
Secao 8
8

Resumo Executivo

Dois fluxos viaveis

Existem dois caminhos reais para integrar Zenvia → HubSpot. Ambos entregam o mesmo resultado para o usuario final (contato, negocio, conversa e vendedor no CRM). A diferenca esta em quem faz o trabalho pesado e quais requisitos de licenca sao necessarios:

Fluxo AZenvia → Middleware → HubSpot Fluxo BZenvia → HubSpot (direto)
Resumo Toda logica no nosso middleware
Node.js/Express
Zero middleware — tudo no HubSpot
Custom Code Workflows
Precisa Ops Hub? NAO SIM
Middleware externo? SIM (completo) NAO
Contato novo? Cria sem problema Ignorado (limitacao do HS)
Tempo estimado ~46-60 dias uteis ~15-25 dias uteis
Melhor para Logica complexa, controle total,
sem dependencia de Ops Hub
Contatos ja existem no HS,
equipe ja usa Ops Hub

Proximos passos

  • Ja temos: Documentacao dos webhooks, payloads, fluxo push, GET /contacts, limitacoes v1 vs v2.
  • Falta: Tokens (v2 e v1), plataforma para subscriptions, autenticacao de webhook, mapeamento de vendedores.
  • Decisao: Definicao do fluxo (A ou B) depende do plano HubSpot da PetLove e da complexidade final da logica de ownership.

Decisao-chave

A PetLove tem Operations Hub Professional? Se sim → Fluxo B e viavel e pode ser mais rapido. Se nao → Fluxo A e a escolha natural, sem dependencia de licenca adicional.