# HubSpot

> Ligar o HubSpot em Integrações › Integrações prontas com o token de uma Private App e seis âmbitos. Cria ou atualiza o contacto pelo e-mail, regista a compra e a renovação como negócio ganho sem duplicar, marca o estado da subscrição e recebe os envios de formulário sem sobrescrever contactos.

O HubSpot recebe os membros como **contactos** 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 a Private App no HubSpot

Precisa de ser superadministrador da conta do HubSpot.

1. No HubSpot, abra **Definições** › **Integrações** › **Private Apps** e clique em **Criar uma private app**.
2. Dê um nome (*Memberfy*).
3. No separador **Âmbitos**, marque os seis:

| Âmbito | Para quê |
|---|---|
| `crm.objects.contacts.read` | Encontrar o contacto pelo e-mail |
| `crm.objects.contacts.write` | Criar e atualizar o contacto |
| `crm.objects.deals.read` | Encontrar o negócio de um evento já registado |
| `crm.objects.deals.write` | Criar o negócio e associá-lo ao contacto |
| `crm.schemas.contacts.write` | Criar a propriedade do estado da subscrição no contacto |
| `crm.schemas.deals.write` | Criar a propriedade que evita negócio duplicado |

4. Clique em **Criar app** e copie o **token de acesso**. Começa por `pat-`.

O ecrã da Memberfy também lista os âmbitos em **Escopos necessários**.

## 2. Ligue na Memberfy

1. Em **Definiçõ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ó verifica o token: não cria contacto.

## O que chega

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

| Evento | No HubSpot |
|---|---|
| Um membro entrou na comunidade | Cria o contacto (nome, apelido, 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 contacto; o contacto fica com o estado da subscrição `active` |
| Uma subscrição foi renovada | Um negócio ganho *Renovação: {produto}*, da mesma forma |
| Uma subscrição foi cancelada | O estado da subscrição do contacto passa a `canceled` |
| Foi enviado um formulário | Cria o contacto com nome, e-mail, telefone, empresa e cargo do [formulário](/espacos/formularios) e, quando a pessoa aceitou, regista o consentimento. Num contacto que já existe, veja abaixo |

- **Sem duplicar:** cada negócio guarda o evento que o criou (a propriedade *Memberfy event id*). Uma nova tentativa ou um **Reenviar** encontra o negócio já criado e não cria outro.
- As duas propriedades, *Memberfy subscription status* (no contacto) e *Memberfy event id* (no negócio), são criadas automaticamente na primeira vez.
- **Telefone:** vai no formato internacional (`+5541999998888`) quando o membro registou um. Nos outros eventos, só entra no contacto criado nesse momento; o que já está no HubSpot não é substituído.
- 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 contacto que já existe.** Qualquer pessoa pode escrever 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 contacto existente passa a ser apenas uma **nota** no contacto, com o que foi enviado.
- **O envio de um membro com sessão iniciada e com o e-mail do próprio perfil** preenche as propriedades vazias do contacto (nome, telefone, empresa, cargo) e regista o consentimento. Com **Formulários atualizam contactos existentes** ligado, também atualiza as que já estavam preenchidas.
- **Já tinha ligado o HubSpot?** A instalação não recebe o evento automaticamente: abra o HubSpot em **Integrações**, marque **Foi enviado um formulário** e guarde. Uma instalação nova já vem com ele.

## Problemas comuns

- **"O provedor recusou as credenciais."** O token foi trocado ou a Private App foi apagada. Cole o token novo e guarde.
- **As entregas falham com 403.** Falta um dos seis âmbitos. Edite a Private App no HubSpot, marque o que falta e teste de novo.
- **A 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)
