# HubSpot

> Attivare HubSpot in Integrazioni pronte con il token di una Private App e sei ambiti. Crea o aggiorna il contatto tramite l'e-mail, registra l'acquisto e il rinnovo come trattativa vinta senza duplicati, segna lo stato dell'abbonamento e riceve gli invii dei moduli senza sovrascrivere i contatti.

HubSpot riceve i membri come **contatti** e le vendite come **trattative vinte**: *"Crea o aggiorna il contatto in HubSpot e registra acquisti e rinnovi come trattative vinte."*

*Ruolo: proprietario e admin.* Come attivare, testare, disattivare e rimuovere qualsiasi app è in [Integrazioni pronte](/integracoes/integracoes-prontas).

## 1. Crea la Private App in HubSpot

Devi essere super admin dell'account HubSpot.

1. In HubSpot, apri **Impostazioni** › **Integrazioni** › **Private Apps** e clicca su **Crea un'app privata**.
2. Dagli un nome (*Memberfy*).
3. Nella scheda **Ambiti**, seleziona tutti e sei:

| Ambito | A cosa serve |
|---|---|
| `crm.objects.contacts.read` | Trovare il contatto dall'e-mail |
| `crm.objects.contacts.write` | Creare e aggiornare il contatto |
| `crm.objects.deals.read` | Trovare la trattativa di un evento già registrato |
| `crm.objects.deals.write` | Creare la trattativa e associarla al contatto |
| `crm.schemas.contacts.write` | Creare la proprietà dello stato dell'abbonamento sul contatto |
| `crm.schemas.deals.write` | Creare la proprietà che evita trattative duplicate |

4. Clicca su **Crea app** e copia il **token di accesso**. Inizia con `pat-`.

Lo schermo di Memberfy elenca gli ambiti anche in **Ambiti necessari**.

## 2. Attivala in Memberfy

1. In **Impostazioni › Integrazioni e API › Integrazioni**, clicca su **HubSpot**.
2. Incollalo in **Token della Private App**.
3. Scegli gli eventi e seleziona **Questa app riceverà: …**.
4. Clicca su **Attiva** e poi su **Invia test**. Il test verifica solo il token: non crea contatti.

## Cosa arriva

Il contatto è identificato dall'**e-mail**.

| Evento | In HubSpot |
|---|---|
| Un membro è entrato nella community | Crea il contatto (nome, cognome, e-mail e telefono) o aggiorna nome e telefono di quello esistente |
| Un acquisto è stato completato | Una trattativa **vinta** *Acquisto: {prodotto}*, con l'importo pagato, nella pipeline predefinita, associata al contatto; lo stato dell'abbonamento del contatto diventa `active` |
| Un abbonamento è stato rinnovato | Una trattativa vinta *Rinnovo: {prodotto}*, allo stesso modo |
| Un abbonamento è stato annullato | Lo stato dell'abbonamento del contatto diventa `canceled` |
| È stato inviato un modulo | Crea il contatto con nome, e-mail, telefono, azienda e ruolo del [modulo](/espacos/formularios) e, quando la persona ha accettato, registra il consenso. Per un contatto che esiste già, vedi sotto |

- **Senza duplicati:** ogni trattativa conserva l'evento che l'ha creata (la proprietà *Memberfy event id*). Un nuovo tentativo o un **Reinvia** trova la trattativa già creata e non ne crea un'altra.
- Le due proprietà, *Memberfy subscription status* (sul contatto) e *Memberfy event id* (sulla trattativa), vengono create da sole la prima volta.
- **Telefono:** va in formato internazionale (`+5541999998888`) quando il membro ne ha registrato uno. Negli altri eventi entra solo nel contatto creato in quel momento; quello che HubSpot ha già non viene sovrascritto.
- Il nome della trattativa esce nella lingua della community.
- Quando HubSpot chiede di aspettare (limite di chiamate), la consegna attende e riprova, senza contare come errore.

### Invii dei moduli

- **Un visitatore non modifica mai un contatto esistente.** Chiunque può digitare l'e-mail di un altro in un modulo aperto. Per questo, l'invio di un visitatore (o di un membro con un'altra e-mail) per un contatto esistente diventa solo una **nota** sul contatto, con ciò che è stato inviato.
- **L'invio di un membro che ha effettuato l'accesso con l'e-mail del proprio profilo** compila le proprietà vuote del contatto (nome, telefono, azienda, ruolo) e registra il consenso. Con **I moduli aggiornano i contatti esistenti** attivo, aggiorna anche quelle già compilate.
- **Hai già collegato HubSpot?** L'installazione non riceve l'evento da sola: apri HubSpot in **Integrazioni**, spunta **È stato inviato un modulo** e salva. Una nuova installazione lo ha già.

## Problemi comuni

- **"Il fornitore ha rifiutato le credenziali."** Il token è stato cambiato o la Private App è stata eliminata. Incolla il nuovo token e salva.
- **Le consegne falliscono con 403.** Manca uno dei sei ambiti. Modifica la Private App in HubSpot, seleziona quello mancante e riprova.
- **L'app è diventata Con errori.** Vedi [Disattivata per errori](/integracoes/integracoes-prontas#disattivata-per-errori).

## Correlati

- [Integrazioni pronte](/integracoes/integracoes-prontas)
- [RD Station](/integracoes/rd-station)
