# HubSpot

> Activar HubSpot en Integraciones listas con el token de una Private App y seis alcances. Crea o actualiza el contacto por correo, registra la compra y la renovación como negocio ganado sin duplicar, marca el estado de la suscripción y recibe los envíos de formulario sin sobrescribir contactos.

HubSpot recibe a los miembros como **contactos** y las ventas como **negocios ganados**: *"Crea o actualiza el contacto en HubSpot y registra compras y renovaciones como negocios ganados."*

*Rol: propietario y administrador.* Cómo activar, probar, desactivar y eliminar cualquier app está en [Integraciones listas](/integracoes/integracoes-prontas).

## 1. Crea la Private App en HubSpot

Necesitas ser superadministrador de la cuenta de HubSpot.

1. En HubSpot, abre **Configuración** › **Integraciones** › **Private Apps** y haz clic en **Crear una app privada**.
2. Ponle un nombre (*Memberfy*).
3. En la pestaña **Alcances**, marca los seis:

| Alcance | Para qué |
|---|---|
| `crm.objects.contacts.read` | Encontrar el contacto por correo |
| `crm.objects.contacts.write` | Crear y actualizar el contacto |
| `crm.objects.deals.read` | Encontrar el negocio de un evento ya registrado |
| `crm.objects.deals.write` | Crear el negocio y asociarlo al contacto |
| `crm.schemas.contacts.write` | Crear la propiedad del estado de la suscripción en el contacto |
| `crm.schemas.deals.write` | Crear la propiedad que evita negocios duplicados |

4. Haz clic en **Crear app** y copia el **token de acceso**. Empieza con `pat-`.

La pantalla de Memberfy también lista los alcances en **Alcances necesarios**.

## 2. Actívala en Memberfy

1. En **Configuración › Integraciones y APIs › Integraciones**, haz clic en **HubSpot**.
2. Pégalo en **Token de la Private App**.
3. Elige los eventos y marca **Esta app va a recibir: …**.
4. Haz clic en **Activar** y después en **Enviar prueba**. La prueba solo comprueba el token: no crea contacto.

## Lo que llega

El contacto se identifica por el **correo**.

| Evento | En HubSpot |
|---|---|
| Un miembro se unió a la comunidad | Crea el contacto (nombre, apellido, correo y teléfono) o actualiza el nombre y el teléfono del existente |
| Se completó una compra | Un negocio **ganado** *Compra: {producto}*, con el importe pagado, en el pipeline predeterminado, asociado al contacto; el estado de la suscripción del contacto pasa a `active` |
| Se renovó una suscripción | Un negocio ganado *Renovación: {producto}*, igual |
| Se canceló una suscripción | El estado de la suscripción del contacto pasa a `canceled` |
| Se envió un formulario | Crea el contacto con nombre, correo, teléfono, empresa y cargo del [formulario](/espacos/formularios) y, cuando la persona aceptó, registra el consentimiento. En un contacto que ya existe, mira abajo |

- **Sin duplicar:** cada negocio guarda el evento que lo creó (la propiedad *Memberfy event id*). Un reintento o un **Reenviar** encuentra el negocio ya creado y no crea otro.
- Las dos propiedades, *Memberfy subscription status* (en el contacto) y *Memberfy event id* (en el negocio), se crean solas la primera vez.
- **Teléfono:** va en formato internacional (`+5541999998888`) cuando el miembro registró uno. En los demás eventos, solo entra en el contacto creado en ese momento; lo que ya está en HubSpot no se sobrescribe.
- El nombre del negocio sale en el idioma de la comunidad.
- Cuando HubSpot pide esperar (límite de llamadas), la entrega espera y vuelve a intentarlo, sin contar como falla.

### Envíos de formulario

- **Un visitante nunca cambia un contacto que ya existe.** Cualquiera puede escribir el correo de otra persona en un formulario abierto. Por eso, el envío de un visitante (o de un miembro con otro correo) a un contacto existente se convierte solo en una **nota** en el contacto, con lo que se envió.
- **El envío de un miembro con sesión iniciada y el correo de su propio perfil** rellena las propiedades vacías del contacto (nombre, teléfono, empresa, cargo) y registra el consentimiento. Con **Los formularios actualizan contactos existentes** activado, también actualiza las que ya estaban completadas.
- **¿Ya habías activado HubSpot?** La instalación no recibe el evento sola: abre HubSpot en **Integraciones**, marca **Se envió un formulario** y guarda. Una instalación nueva ya lo trae.

## Problemas comunes

- **"El proveedor rechazó las credenciales."** El token se cambió o la Private App se borró. Pega el token nuevo y guarda.
- **Las entregas fallan con 403.** Falta uno de los seis alcances. Edita la Private App en HubSpot, marca el que falta y prueba de nuevo.
- **La app quedó Con fallas.** Ver [Desactivada por fallas](/integracoes/integracoes-prontas#desactivada-por-fallas).

## Relacionados

- [Integraciones listas](/integracoes/integracoes-prontas)
- [RD Station](/integracoes/rd-station)
