# HubSpot

> HubSpot unter Fertige Integrationen mit dem Token einer Private App und sechs Scopes einschalten. Legt den Kontakt per E-Mail an oder aktualisiert ihn, erfasst Kauf und Verlängerung als gewonnenen Deal ohne Duplikate, setzt den Abo-Status und nimmt Formulareinsendungen an, ohne Kontakte zu überschreiben.

HubSpot erhält Mitglieder als **Kontakte** und Verkäufe als **gewonnene Deals**: *„Legt den Kontakt in HubSpot an oder aktualisiert ihn und erfasst Käufe und Verlängerungen als gewonnene Deals.“*

*Rolle: Eigentümer und Administrator.* Wie man jede App einschaltet, testet, ausschaltet und entfernt, steht unter [Fertige Integrationen](/integracoes/integracoes-prontas).

## 1. Lege die Private App in HubSpot an

Du musst Super-Admin des HubSpot-Kontos sein.

1. Öffne in HubSpot **Einstellungen** › **Integrationen** › **Private Apps** und klicke auf **Private App erstellen**.
2. Gib einen Namen ein (*Memberfy*).
3. Markiere im Tab **Scopes** alle sechs:

| Scope | Wofür |
|---|---|
| `crm.objects.contacts.read` | Den Kontakt per E-Mail finden |
| `crm.objects.contacts.write` | Den Kontakt anlegen und aktualisieren |
| `crm.objects.deals.read` | Den Deal eines schon erfassten Ereignisses finden |
| `crm.objects.deals.write` | Den Deal anlegen und mit dem Kontakt verknüpfen |
| `crm.schemas.contacts.write` | Die Eigenschaft für den Abo-Status am Kontakt anlegen |
| `crm.schemas.deals.write` | Die Eigenschaft anlegen, die doppelte Deals verhindert |

4. Klicke auf **App erstellen** und kopiere das **Zugriffstoken**. Es beginnt mit `pat-`.

Der Memberfy-Bildschirm listet die Scopes auch unter **Benötigte Scopes**.

## 2. Schalte es in Memberfy ein

1. Klicke unter **Einstellungen › Integrationen und APIs › Integrationen** auf **HubSpot**.
2. Füge es unter **Private-App-Token** ein.
3. Wähle die Ereignisse und markiere **Diese App empfängt: …**.
4. Klicke auf **Einschalten** und dann auf **Test senden**. Der Test prüft nur das Token: Er legt keinen Kontakt an.

## Was ankommt

Der Kontakt wird über die **E-Mail** erkannt.

| Ereignis | In HubSpot |
|---|---|
| Ein Mitglied ist der Community beigetreten | Legt den Kontakt an (Vorname, Nachname, E-Mail und Telefonnummer) oder aktualisiert Namen und Telefonnummer des bestehenden |
| Ein Kauf wurde abgeschlossen | Ein **gewonnener** Deal *Kauf: {Produkt}* mit dem gezahlten Betrag, in der Standard-Pipeline, mit dem Kontakt verknüpft; der Abo-Status des Kontakts wird `active` |
| Ein Abo wurde verlängert | Ein gewonnener Deal *Verlängerung: {Produkt}*, ebenso |
| Ein Abo wurde gekündigt | Der Abo-Status des Kontakts wird `canceled` |
| Ein Formular wurde gesendet | Legt den Kontakt mit Name, E-Mail, Telefon, Unternehmen und Position aus dem [Formular](/espacos/formularios) an und erfasst, wenn die Person zugestimmt hat, die Einwilligung. Bei einem bestehenden Kontakt siehe unten |

- **Ohne Duplikate:** Jeder Deal speichert das Ereignis, das ihn erzeugt hat (die Eigenschaft *Memberfy event id*). Ein neuer Versuch oder ein **Erneut senden** findet den schon angelegten Deal und legt keinen weiteren an.
- Beide Eigenschaften, *Memberfy subscription status* (am Kontakt) und *Memberfy event id* (am Deal), werden beim ersten Mal automatisch angelegt.
- **Telefonnummer:** geht im internationalen Format (`+5541999998888`) mit, wenn das Mitglied eine hinterlegt hat. Bei den anderen Ereignissen kommt sie nur in einen Kontakt, der dabei neu angelegt wird; was HubSpot schon hat, wird nicht überschrieben.
- Der Deal-Name kommt in der Sprache der Community.
- Bittet HubSpot ums Warten (Ratenlimit), wartet die Zustellung und versucht es erneut, ohne dass es als Fehler zählt.

### Formulareinsendungen

- **Ein Besucher ändert nie einen bestehenden Kontakt.** Jede Person kann in einem offenen Formular die E-Mail einer anderen eingeben. Deshalb wird die Einsendung eines Besuchers (oder eines Mitglieds mit einer anderen E-Mail) an einen bestehenden Kontakt nur zu einer **Notiz** am Kontakt, mit dem, was gesendet wurde.
- **Die Einsendung eines angemeldeten Mitglieds mit der E-Mail aus dem eigenen Profil** füllt die leeren Eigenschaften des Kontakts (Name, Telefon, Unternehmen, Position) und erfasst die Einwilligung. Mit **Formulare aktualisieren bestehende Kontakte** eingeschaltet aktualisiert sie auch die schon ausgefüllten.
- **HubSpot schon früher eingeschaltet?** Die Installation bekommt das Ereignis nicht von selbst: Öffne HubSpot unter **Integrationen**, markiere **Ein Formular wurde gesendet** und speichere. Eine neue Installation hat es schon.

## Häufige Probleme

- **„Der Anbieter hat die Zugangsdaten abgelehnt.“** Das Token wurde geändert oder die Private App gelöscht. Füge das neue Token ein und speichere.
- **Zustellungen scheitern mit 403.** Einer der sechs Scopes fehlt. Bearbeite die Private App in HubSpot, markiere den fehlenden und teste erneut.
- **Die App ist Fehlerhaft.** Siehe [Wegen Fehlern ausgeschaltet](/integracoes/integracoes-prontas#wegen-fehlern-ausgeschaltet).

## Verwandte Artikel

- [Fertige Integrationen](/integracoes/integracoes-prontas)
- [RD Station](/integracoes/rd-station)
