HubSpot + Interaflow — CRM e contact center conversando.
Chamada entra no Interaflow, vira engagement no contato do HubSpot. WhatsApp aparece no timeline. Resultado de campanha atualiza o deal. Outbox pattern com retry e DLQ — se o HubSpot cair, nada se perde. OAuth2, sem middleware no meio.
- Setup guiado em 1 dia útil
- OAuth2 oficial, sem Zapier
- Outbox resiliente com DLQ
OAuth2 oficial
HubSpot app
Outbox com DLQ
retry exponencial
Setup em 1 dia
self-serve + guiado
Como funciona a integração HubSpot + Interaflow, na prática
A integração conecta o contact center da Interaflow ao CRM da HubSpot usando OAuth2 (o protocolo oficial de autorização da HubSpot, sem chave de API estática) e um outbox pattern — cada evento gerado no Interaflow (chamada iniciada, mensagem enviada, resultado de campanha, gravação disponível) é enfileirado, entregue via API pro HubSpot com chave de idempotência, e tem retry automático com backoff exponencial em caso de falha. Se o HubSpot ficar fora do ar por 15 minutos, nenhum evento é perdido — tudo é replaytado quando o serviço volta. Eventos que não são entregues depois de N tentativas vão pra uma DLQ (dead-letter queue) com replay manual via painel.
O que a integração sincroniza, do Interaflow pro HubSpot: chamadas (como Call Engagement, com transcrição, gravação e resultado), mensagens de WhatsApp e outros canais digitais (como Note ou custom engagement), atualização de propriedades do Contact (last_call_date, disposition, tags de campanha), criação de Deal ou Ticket quando a campanha tem essa regra configurada, e atualização de status em Deals existentes.
O que a integração sincroniza, do HubSpot pro Interaflow: contatos criados ou atualizados (via webhook do HubSpot + endpoint de ingestão do Interaflow), listas dinâmicas do HubSpot viram mailings de campanha, e mudanças de stage em Deal podem disparar régua de cadência no Interaflow. (Fluxo de volta em rollout — enquanto não libera, trazer contatos via import bulk CSV ou API REST.)
O que a integração entrega pro usuário final. O SDR abre o contact no HubSpot e vê a história inteira do cliente — não só "ligou às 14h", mas "ligou, falou 3:24 minutos, transcrição diz que quer desconto, resultado é promessa de pagamento, próxima ação agendada". O RevOps roda relatório no HubSpot cruzando origem de lead (marketing) com resultado de discador (contact center) sem exportar CSV. E o cliente final não percebe a integração — ele percebe a ausência dela, que é a empresa lembrando da conversa passada. Mais contexto no pillar /omnichannel, na feature /crm e no hub /integracoes.
Ficha técnica
Ficha técnica da integração
Os detalhes que o time de RevOps pede antes de aprovar. Tudo abaixo é o que está em produção; o que está em rollout tem flag explícita.
Objetos HubSpot mapeados (Interaflow → HubSpot)
| Objeto HubSpot | Notas | |
|---|---|---|
| Contato | Contact | Match por telefone E.164 ou email. Cria se não existir (configurável). |
| Chamada | Call Engagement | Com transcrição, gravação (URL pré-assinada, 7 dias), disposition e duração. |
| Mensagem WhatsApp | Note ou Conversation | Conversation quando escopo liberado; fallback Note. |
| Campanha | List + Workflow trigger | Lista dinâmica alimentada por status do Interaflow. |
| Resultado | Deal (update) ou Ticket (create) | Regra por campanha. |
| Agente | Owner | Match por email do usuário HubSpot. |
Contato
- Objeto HubSpot
- Contact
- Notas
- Match por telefone E.164 ou email. Cria se não existir (configurável).
Chamada
- Objeto HubSpot
- Call Engagement
- Notas
- Com transcrição, gravação (URL pré-assinada, 7 dias), disposition e duração.
Mensagem WhatsApp
- Objeto HubSpot
- Note ou Conversation
- Notas
- Conversation quando escopo liberado; fallback Note.
Campanha
- Objeto HubSpot
- List + Workflow trigger
- Notas
- Lista dinâmica alimentada por status do Interaflow.
Resultado
- Objeto HubSpot
- Deal (update) ou Ticket (create)
- Notas
- Regra por campanha.
Agente
- Objeto HubSpot
- Owner
- Notas
- Match por email do usuário HubSpot.
Autenticação
OAuth2 (authorization code flow)
Rotação automática via refresh token. Revogação em 1 click no painel do Interaflow. Credenciais criptografadas via Fernet em storage isolado por tenant.
Escopos mínimos
- crm.objects.contacts.read/write
- crm.objects.companies.read/write
- crm.objects.deals.read/write
- tickets
- conversations
Eventos publicados pelo outbox
call.started
instantâneo
call.ended
< 1s
message.outbound
instantâneo
recording.available
30–90s
transcription.available
1–3 min
contact.created (HubSpot → Interaflow)
em rollout
Exemplo de payload entregue pro HubSpot
POST https://api.hubapi.com/crm/v3/objects/calls
Authorization: Bearer <oauth-token>
Idempotency-Key: tn_x9k-call_4821-f3b7a1
{
"properties": {
"hs_timestamp": 1745070600000,
"hs_call_duration": 204,
"hs_call_disposition": "promessa_pagamento",
"hs_call_recording_url": "https://...",
"hs_call_body": "Cliente confirma débito em 15/05. Transcrição: ..."
},
"associations": [
{ "to": {"id": "contact_12345"}, "types": [{"associationTypeId": 194}] }
]
}
# → 201 CreatedEntrega e resiliência
- Idempotency key por evento (hash de
tenant_id + entity_id + event_type + timestamp). HubSpot nunca recebe evento duplicado, mesmo sob retry. - Retry: backoff exponencial (1s, 4s, 16s, 1min, 5min, 30min) até 6 tentativas.
- Dead-letter queue: eventos não entregues vão pra DLQ com replay manual via painel admin.
- Rate limit HubSpot respeitado (100 req/10s pra apps OAuth). Fila interna adapta pressão de saída automaticamente.
- Observabilidade: dashboard de eventos (24h/7d/30d), log com payload + response (30 dias de retenção), alertas Slack/email/webhook por limiar de DLQ.
6
RETRIES ANTES DE DLQ
100/10s
RATE LIMIT RESPEITADO
30d
RETENÇÃO DE LOG
Mesma arquitetura descrita no hub /integracoes (outbox pattern compartilhado) e usada nas demais integrações CRM.
Como funciona
Como os dados fluem entre Interaflow e HubSpot
Um diagrama resolve mais que cem bullets. Mostra onde cada evento nasce, por onde passa e onde aterrissa — e o que ainda está em rollout.
OUTBOX — Interaflow → HubSpot (GA)
- Discador · WhatsApp · Chat · E-mail · Flow engine
- Event bus (dedup + idempotency)
- Outbox queue (retry + DLQ)
- HubSpot API
- HubSpot CRM — Contact · Deal · Call · Ticket · Note · List
WEBHOOK INBOUND — HubSpot → Interaflow (em rollout)
- HubSpot (contact.created, deal.stage_changed)
- Webhook
- Ingestion endpoint (valida + transforma)
- Interaflow — Contato · Campanha · Flow trigger
Diagrama em low-fi — SVG final entra no próximo release.
Linha do tempo de uma chamada encerrada no Interaflow
00:00
Chamada encerrada no Interaflow
00:01
Evento call.ended publicado no event bus
00:01
Outbox queue enfileira com idempotency key
00:02
POST pro HubSpot: Call Engagement criado
00:45
Evento recording.available publicado (URL pré-assinada)
02:10
Evento transcription.available publicado (texto anexo ao engagement)
Latências típicas — refinar com medição real no ambiente.
Casos de uso
Três jeitos de usar HubSpot + Interaflow
Operações diferentes ligam as mesmas peças em ordem diferente. Três recortes que cobrem o que a gente vê instalado em campo.
Vendas outbound — mailing do HubSpot vira campanha de discador
Quem usa:Time de vendas que já qualifica leads no HubSpot (forms, workflows, lead scoring) e precisa acelerar outbound sem perder histórico.
+25%vs. outbound manual no HubSpotTAXA DE CONEXÃO
- Lista dinâmica no HubSpot (MQL esta semana, região SP, não contatado nos últimos 15d) vira mailing de campanha no Interaflow.
- Discador preditivo liga, AMD filtra caixa postal, conectadas caem pro SDR humano com a ficha do lead aberta.
- Cada tentativa vira Call Engagement no contact, com disposition mapeada pra stage do Deal.
- Quem não responde em 48h entra no fluxo de WhatsApp + e-mail pré-configurado no Interaflow.
Mix típico de canais na cadência
- Voz (discador) 50%
- WhatsApp 35%
- E-mail (HubSpot seq) 15%
SAC / Suporte — cada interação vira timeline no contact
Quem usa:Operação de suporte que usa HubSpot Service Hub como ferramenta de ticket, mas atende por múltiplos canais (WhatsApp, chat, voz).
+8ppagente tem contextoCSAT PÓS-INTEGRAÇÃO
- Cliente manda mensagem no WhatsApp → Interaflow identifica pelo telefone, encontra contact no HubSpot.
- Abre ticket no HubSpot Service Hub (regra: se não tem ticket aberto nas últimas 24h).
- Cada mensagem vira Note ou Conversation no ticket. Ligação posterior é associada ao mesmo ticket.
- Ticket fecha no HubSpot → Interaflow dispara pesquisa CSAT no canal preferido do cliente.
Distribuição de canais no SAC
- WhatsApp 55%
- Chat web 25%
- Voz 15%
- E-mail 5%
RevOps / Cobrança — régua de cadência multicanal dentro do HubSpot
Quem usa:Time que já roda cadências no HubSpot (sequences, workflows) e precisa incluir voz + WhatsApp sem sair da ferramenta.
+18%vs. régua só e-mailRECUPERAÇÃO DE INADIMPLÊNCIA
- Deal em stage pendente de pagamento há 30d → HubSpot dispara webhook (Workflow) → Interaflow inicia régua.
- Régua tem 4 toques: WhatsApp (D+0), ligação (D+2), SMS (D+5), ligação final (D+10).
- Cada toque atualiza propriedade customizada do Deal (last_contact_channel, last_contact_result).
- Pagamento confirmado (webhook do ERP ou update no HubSpot) derruba a régua automaticamente.
Mix de canais na régua de cobrança
- WhatsApp 45%
- Voz 30%
- SMS 15%
- E-mail 10%
Números ilustrativos baseados em benchmark de mercado. Serão substituídos por case Interaflow real com cliente autorizado — ver também /discador e /whatsapp/campanhas.
How-to
5 passos pra ligar HubSpot e Interaflow
Self-serve: cerca de 1 hora, do zero até o primeiro evento chegando no HubSpot. Enterprise com propriedades customizadas e workflows: 1 dia útil com apoio do time de implementação.
Roadmap de setup · tempo cumulativo estimado
- 10%1. Autorizar o app no HubSpot
- 40%2. Mapear objetos e propriedades
- 70%3. Configurar o outbox
- 90%4. Rodar o teste de ida e volta
- 100%5. Habilitar em produção
Autorizar o app no HubSpot
No painel do Interaflow, em Configurações → Integrações → HubSpot, clica em Conectar. O Interaflow redireciona pro OAuth2 oficial do HubSpot. Você escolhe o portal, aprova os escopos (ver ficha técnica) e volta pro Interaflow autenticado.
Mapear objetos e propriedades
Escolha quais objetos o Interaflow vai tocar — Contact sempre; Company, Deal, Ticket opcionais. Pra cada, mapeia as propriedades (
phone,email,last_call_disposition, etc.). Propriedades customizadas do seu portal aparecem automaticamente — o Interaflow lê o schema via API.Configurar o outbox
Define quais eventos vão pro HubSpot (todos ligados por padrão) e com qual frequência (tempo real recomendado). Opcionalmente, customize o payload com body templating — por exemplo, prefixar a
dispositioncom o nome da campanha, ou anexar tags custom ao Call Engagement.Rodar o teste de ida e volta
O painel traz um test run que gera um evento sintético (fake call num contact de teste) e verifica se chegou no HubSpot, com qual idempotency key e qual response code. Se 201 Created, tá pronto. Se 4xx, o painel mostra o erro exato — escopo faltando, propriedade não existe, etc.
Exemplo · test run do contact $ interaflow-cli hubspot test-run --contact test@example.com → POST /crm/v3/objects/calls ← 201 Created (idempotency-key: tn_x9k-test-f3b7a1) ✓ Event delivered in 340msHabilitar em produção
Liga o switch Enviar eventos reais. A partir daqui, toda chamada, mensagem e mudança de status gera evento pro HubSpot. Monitora as primeiras 24h no dashboard — DLQ deve ficar zerada, contagem de enviados deve bater com o volume real da operação.
Comparação
Interaflow nativo vs. Zapier/middleware vs. custom code
Quem já tentou integrar contact center com CRM sabe que existem três caminhos. A gente compara os três sem maquiar — Zapier serve pra algumas coisas; pra fluxo de voz de alto volume, não.
| Zapier / Make / middleware | Integração custom (código) | Interaflow nativo | |
|---|---|---|---|
| Autenticação | OAuth2 (do Zapier, não do produto) | Você implementa | OAuth2 direto Interaflow ↔ HubSpot |
| Latência típica | 15s–2min (fila do middleware) | Depende do que você fez | < 1s evento sincronizado |
| Retry / DLQ | Parcial, depende do plano | Você implementa | Nativo, 6 retries + DLQ |
| Idempotency | Não garantida (eventos duplicados comuns) | Você implementa | Nativa por chave hash |
| Rate limit HubSpot | Não respeita — costuma estourar | Você gerencia | Gerenciado pelo outbox |
| Volume suportado | Até centenas de eventos/dia | O que a infra aguentar | Milhares de eventos/minuto |
| Mapeamento de objetos | Manual zap a zap | Você codifica | UI de mapeamento + body templating |
| Observabilidade | Log do Zapier (separado do contact center) | Você monta | Dashboard nativo, log 30 dias |
| Custo mensal | $20–$200 + tarifa por operação | Dev time contínuo | Incluso no plano Plus+ |
| Tempo de go-live | 1 dia + N semanas debugando edge cases | 2–8 semanas | ~1 hora self-serve |
Autenticação
- Zapier / Make / middleware
- OAuth2 (do Zapier, não do produto)
- Integração custom (código)
- Você implementa
- Interaflow nativo
- OAuth2 direto Interaflow ↔ HubSpot
Latência típica
- Zapier / Make / middleware
- 15s–2min (fila do middleware)
- Integração custom (código)
- Depende do que você fez
- Interaflow nativo
- < 1s evento sincronizado
Retry / DLQ
- Zapier / Make / middleware
- Parcial, depende do plano
- Integração custom (código)
- Você implementa
- Interaflow nativo
- Nativo, 6 retries + DLQ
Idempotency
- Zapier / Make / middleware
- Não garantida (eventos duplicados comuns)
- Integração custom (código)
- Você implementa
- Interaflow nativo
- Nativa por chave hash
Rate limit HubSpot
- Zapier / Make / middleware
- Não respeita — costuma estourar
- Integração custom (código)
- Você gerencia
- Interaflow nativo
- Gerenciado pelo outbox
Volume suportado
- Zapier / Make / middleware
- Até centenas de eventos/dia
- Integração custom (código)
- O que a infra aguentar
- Interaflow nativo
- Milhares de eventos/minuto
Mapeamento de objetos
- Zapier / Make / middleware
- Manual zap a zap
- Integração custom (código)
- Você codifica
- Interaflow nativo
- UI de mapeamento + body templating
Observabilidade
- Zapier / Make / middleware
- Log do Zapier (separado do contact center)
- Integração custom (código)
- Você monta
- Interaflow nativo
- Dashboard nativo, log 30 dias
Custo mensal
- Zapier / Make / middleware
- $20–$200 + tarifa por operação
- Integração custom (código)
- Dev time contínuo
- Interaflow nativo
- Incluso no plano Plus+
Tempo de go-live
- Zapier / Make / middleware
- 1 dia + N semanas debugando edge cases
- Integração custom (código)
- 2–8 semanas
- Interaflow nativo
- ~1 hora self-serve
Comparação contra arquiteturas de integração típicas, não contra CRM competidor. Pra quem quer mais controle via código cru, veja /api (framework REST + webhooks).
FAQ
Perguntas frequentes — Interaflow + HubSpot
HubSpot, mas com a conversa inteira dentro dele.
Liga em 1 hora. Roda em teste com um contact de exemplo antes de subir em produção. Se o test run não entregar 201 Created no dashboard, a gente te ajuda a destravar — ou sai.
- OAuth2 oficial · HubSpot app
- Outbox com DLQ · retry exponencial
- Setup em 1 dia · self-serve + guiado
Demo real é assim: você traz um contact do seu HubSpot de teste, a gente abre o Interaflow, roda uma chamada simulada, você abre o contact de novo e vê o engagement aparecer no timeline. Não tem slide.