# HubSpot

> Ligar o HubSpot em Integrações › Integrações prontas com o token de um Private App e seis escopos. Cria ou atualiza o contato pelo e-mail, registra a compra e a renovação como negócio ganho sem duplicar, marca o status da assinatura e recebe os envios de formulário sem sobrescrever contatos.

O HubSpot recebe os membros como **contatos** e as vendas como **negócios ganhos**: *"Cria ou atualiza o contato no HubSpot e registra compras e renovações como negócios ganhos."*

*Papel: proprietário e administrador.* Como ligar, testar, desligar e remover qualquer app está em [Integrações prontas](/integracoes/integracoes-prontas).

## 1. Crie o Private App no HubSpot

Você precisa ser superadministrador da conta do HubSpot.

1. No HubSpot, abra **Configurações** › **Integrações** › **Private Apps** e clique em **Criar um private app**.
2. Dê um nome (*Memberfy*).
3. Na aba **Escopos**, marque os seis:

| Escopo | Para quê |
|---|---|
| `crm.objects.contacts.read` | Achar o contato pelo e-mail |
| `crm.objects.contacts.write` | Criar e atualizar o contato |
| `crm.objects.deals.read` | Achar o negócio de um evento já registrado |
| `crm.objects.deals.write` | Criar o negócio e associá-lo ao contato |
| `crm.schemas.contacts.write` | Criar a propriedade do status da assinatura no contato |
| `crm.schemas.deals.write` | Criar a propriedade que evita negócio duplicado |

4. Clique em **Criar app** e copie o **token de acesso**. Ele começa com `pat-`.

A tela da Memberfy também lista os escopos em **Escopos necessários**.

## 2. Ligue na Memberfy

1. Em **Configurações › Integrações e APIs › Integrações**, clique em **HubSpot**.
2. Cole em **Token do Private App**.
3. Escolha os eventos e marque **Este app vai receber: …**.
4. Clique em **Ligar** e depois em **Enviar teste**. O teste só confere o token: não cria contato.

## O que chega

O contato é identificado pelo **e-mail**.

| Evento | No HubSpot |
|---|---|
| Um membro entrou na comunidade | Cria o contato (nome, sobrenome, e-mail e telefone) ou atualiza o nome e o telefone do que já existe |
| Uma compra foi concluída | Um negócio **ganho** *Compra: {produto}*, com o valor pago, no pipeline padrão, associado ao contato; o contato fica com o status da assinatura `active` |
| Uma assinatura foi renovada | Um negócio ganho *Renovação: {produto}*, do mesmo jeito |
| Uma assinatura foi cancelada | O status da assinatura do contato vira `canceled` |
| Um formulário foi enviado | Cria o contato com nome, e-mail, telefone, empresa e cargo do [formulário](/espacos/formularios) e, quando a pessoa aceitou, registra o consentimento. Num contato que já existe, veja abaixo |

- **Sem duplicar:** cada negócio guarda o evento que o criou (a propriedade *Memberfy event id*). Uma retentativa ou um **Reenviar** acha o negócio já criado e não cria outro.
- As duas propriedades, *Memberfy subscription status* (no contato) e *Memberfy event id* (no negócio), são criadas sozinhas na primeira vez.
- **Telefone:** vai no formato internacional (`+5541999998888`) quando o membro cadastrou um. Nos outros eventos, ele só entra no contato criado ali; o que já está no HubSpot não é sobrescrito.
- O nome do negócio sai no idioma da comunidade.
- Quando o HubSpot pede para esperar (limite de chamadas), a entrega aguarda e tenta de novo, sem contar como falha.

### Envios de formulário

- **Um visitante nunca altera um contato que já existe.** Qualquer pessoa pode digitar o e-mail de outra num formulário aberto. Por isso, o envio de um visitante (ou de um membro com outro e-mail) para um contato existente vira só uma **nota** no contato, com o que foi enviado.
- **O envio de um membro logado com o e-mail do próprio perfil** preenche as propriedades vazias do contato (nome, telefone, empresa, cargo) e registra o consentimento. Com **Formulários atualizam contatos existentes** ligado, ele também atualiza as que já estavam preenchidas.
- **Já ligou o HubSpot antes?** A instalação não ganha o evento sozinha: abra o HubSpot em **Integrações**, marque **Um formulário foi enviado** e salve. Uma instalação nova já vem com ele.

## Problemas comuns

- **"O provedor recusou as credenciais."** O token foi trocado ou o Private App foi apagado. Cole o token novo e salve.
- **As entregas falham com 403.** Falta um dos seis escopos. Edite o Private App no HubSpot, marque o que falta e teste de novo.
- **O app ficou Com falha.** Ver [Desligado por falha](/integracoes/integracoes-prontas#desligado-por-falha).

## Relacionados

- [Integrações prontas](/integracoes/integracoes-prontas)
- [RD Station](/integracoes/rd-station)
