INTERAFLOW.ai
IntegraçãoCRM · HubSpot

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)

  • 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

Exemplo · Call Engagement criado via outbox
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 Created

Entrega 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)

  1. Discador · WhatsApp · Chat · E-mail · Flow engine
  2. Event bus (dedup + idempotency)
  3. Outbox queue (retry + DLQ)
  4. HubSpot API
  5. HubSpot CRM — Contact · Deal · Call · Ticket · Note · List

WEBHOOK INBOUND — HubSpot → Interaflow (em rollout)

  1. HubSpot (contact.created, deal.stage_changed)
  2. Webhook
  3. Ingestion endpoint (valida + transforma)
  4. 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

  1. 00:00

    Chamada encerrada no Interaflow

  2. 00:01

    Evento call.ended publicado no event bus

  3. 00:01

    Outbox queue enfileira com idempotency key

  4. 00:02

    POST pro HubSpot: Call Engagement criado

  5. 00:45

    Evento recording.available publicado (URL pré-assinada)

  6. 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 HubSpot

    TAXA DE CONEXÃO

    1. Lista dinâmica no HubSpot (MQL esta semana, região SP, não contatado nos últimos 15d) vira mailing de campanha no Interaflow.
    2. Discador preditivo liga, AMD filtra caixa postal, conectadas caem pro SDR humano com a ficha do lead aberta.
    3. Cada tentativa vira Call Engagement no contact, com disposition mapeada pra stage do Deal.
    4. 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 contexto

    CSAT PÓS-INTEGRAÇÃO

    1. Cliente manda mensagem no WhatsApp → Interaflow identifica pelo telefone, encontra contact no HubSpot.
    2. Abre ticket no HubSpot Service Hub (regra: se não tem ticket aberto nas últimas 24h).
    3. Cada mensagem vira Note ou Conversation no ticket. Ligação posterior é associada ao mesmo ticket.
    4. 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-mail

    RECUPERAÇÃO DE INADIMPLÊNCIA

    1. Deal em stage pendente de pagamento há 30d → HubSpot dispara webhook (Workflow) → Interaflow inicia régua.
    2. Régua tem 4 toques: WhatsApp (D+0), ligação (D+2), SMS (D+5), ligação final (D+10).
    3. Cada toque atualiza propriedade customizada do Deal (last_contact_channel, last_contact_result).
    4. 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

  1. 10%
    1. Autorizar o app no HubSpot
  2. 40%
    2. Mapear objetos e propriedades
  3. 70%
    3. Configurar o outbox
  4. 90%
    4. Rodar o teste de ida e volta
  5. 100%
    5. Habilitar em produção
  1. 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.

  2. 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.

  3. 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 disposition com o nome da campanha, ou anexar tags custom ao Call Engagement.

  4. 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 340ms
  5. Habilitar 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.

  • 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

OAuth2 oficial · Outbox com DLQ · Rollback 1-click

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.