> ## Documentation Index
> Fetch the complete documentation index at: https://docs.famulor.io/llms.txt
> Use this file to discover all available pages before exploring further.

# CRM-Synchronisierung

> Audience-Kontakte mit deinem CRM abgeglichen halten und Anrufergebnisse über Automatisierungen zurückschreiben.

<Warning>
  CRM Sync (Revenue Autopilot) ist eine Beta-Funktion. Ein Workspace-Admin muss
  **Beta features** aktivieren, außerdem braucht der Workspace das Add-on
  **Revenue Autopilot** (oder es muss im Plan kostenlos enthalten sein) sowie
  ausreichende CRM-Sync-Kapazitätslimits.
</Warning>

CRM Sync hält Audience und ein verbundenes CRM nach einem wiederkehrenden
Zeitplan synchron. Agenten, Kampagnen, Segmente und Automatisierungen können
dadurch die aktuellen Kontaktattribute nutzen, ganz ohne CSV-Uploads.

| Richtung         | Verhalten                                                                                                       |
| ---------------- | --------------------------------------------------------------------------------------------------------------- |
| CRM → Audience   | Importiert Kontakte, Leads, Deals und zugeordnete Attribute nach Audience.                                      |
| Audience → CRM   | Aktualisiert verknüpfte CRM-Datensätze anhand von Audience. Legt optional fehlende CRM-Datensätze an.           |
| Beide Richtungen | Importiert zuerst und exportiert danach, im selben Zeitplan. Unveränderte Werte werden nicht zurückgeschrieben. |

<Note>
  Ob fehlende Datensätze angelegt werden können, hängt vom Objekttyp ab: unterstützt für HubSpot-Kontakte, Salesforce-Kontakte/-Leads, Pipedrive-Personen, Close-Kontakte und -Leads sowie Attio-/Twenty-Personen; HighLevel und Keap unterstützen es für alle ihre Objekttypen.
</Note>

Anrufergebnisse lassen sich weiterhin über **automation CRM action nodes**
nach einem Anruf oder Qualifizierungsschritt zurückschreiben. Dieser Weg ist
unabhängig vom Audience-CRM-Sync.

Der Export verwendet ausschließlich 1:1-Feldzuordnungen. Kombinierte Werte wie
`{{firstName}} {{lastName}}` lassen sich importieren, aber nicht für den
Export umkehren.

## Unterstützte CRMs

CRM Sync hat für jeden dieser Anbieter einen nativen Adapter, sodass alle
drei Richtungen aus der Tabelle oben verfügbar sind, sobald du dafür eine
API-Verbindung hinzufügst:

* HubSpot
* HighLevel
* Salesforce
* Pipedrive
* Close.io
* Zoho CRM
* Attio
* Keap
* Twenty Cloud und selbst gehostetes Twenty

Twenty Cloud verwendet `https://api.twenty.com`. Bei einer selbst gehosteten
Instanz gibst du eine öffentliche HTTPS-URL ein, die die Plattform über das
Internet erreichen kann.

Ein CRM, das nicht auf dieser Liste steht, hat keinen nativen Audience-Sync,
lässt sich aber trotzdem über Automatisierungen erreichen – ruf seine API mit
einer HTTP-Request-Aktion auf, verbinde es als benutzerdefinierten
MCP-Endpunkt, oder suche danach unter Browse apps (Beta). Das vollständige
Verzeichnis der eingebauten und verbundenen Apps findest du im [App
Catalog](/de/automations/app-catalog).

## HighLevel verbinden

Öffne **Automations → Connections → HighLevel** und wähle **Authorize
HighLevel**. Wähle das gewünschte Unterkonto aus und bestätige die
angeforderten Berechtigungen. Dieselbe Verbindung lässt sich für CRM Sync und
für HighLevel-Automatisierungsaktionen nutzen, einschließlich der
unterstützten Kalender- und Terminaktionen.

## Sync anlegen

1. Öffne **Automations → Connections** und füge eine API-Verbindung für das
   CRM hinzu. Kompatible Verbindungen tragen unter **Add Connection** den Tag
   **CRM Sync**.
2. Öffne **Audience → CRM Sync**.
3. Wähle die Verbindung sowie das CRM-Objekt beziehungsweise die Quelle aus.
4. Ordne CRM-Felder Name, Telefon, E-Mail, Tags, einem eigenen
   Audience-Attribut oder einer unterstützten Kanalidentität zu. Zugeordnete
   E-Mail-Werte legen automatisch auch das E-Mail-Kanalprofil des Kontakts an.
   Weise mehrere Quellfelder demselben Ziel zu, um die Werte zu kombinieren.
5. Sieh dir nach der Zuordnung bis zu drei schreibgeschützte CRM-Beispiele an.
6. Wähle das Intervall und starte den Sync.

Der Mapper schlägt Standardfelder vor und erkennt bestehende eigene Attribute
anhand ihres Namens. Ein reines Kanal-Mapping legt nie einen neuen Kontakt
an; Telefon oder E-Mail bleibt der Match-Schlüssel.

Wähle für ein Ziel **Custom value**, um CRM-Feld-Chips und Text in genau der
gewünschten Reihenfolge zu kombinieren. Zum Beispiel kann `Salutation + First
name + Last name` den Wert `name` ergeben, `Calling code + Phone number` den
Wert `phone`. Mindestens `phone` oder `email` ist erforderlich, damit sich
der erste CRM-Datensatz sicher einem Audience-Kontakt zuordnen lässt.

Wähle für nationale Telefonnummern ein **Default phone country**, zum
Beispiel Deutschland. Vorschau und echter Lauf verwenden denselben
länderabhängigen Parser und speichern das Ergebnis im E.164-Format
(`+49152…`). Internationale Nummern, die bereits mit `+` oder `00` beginnen,
ignorieren diesen Fallback. Stellt das CRM ein separates ISO-Land (`DE`) oder
eine Ländervorwahl (`+49`) bereit, ordne dieses Feld in derselben
`phone`-Kombination vor dem Nummernfeld an. Ungültige Telefon- und
E-Mail-Kombinationen werden bereits in der schreibgeschützten Vorschau
markiert, bevor irgendetwas gespeichert wird.

API und MCP behalten die einfache Mapping-Struktur bei. Eine einzelne Quelle
bleibt ein reiner Feldschlüssel. Kombinationen verwenden sichere
`{{field}}`-Tokens mit optionalem festem Text; es wird kein Code ausgeführt:

```json theme={null}
{
  "{{salutation}} {{firstName}} {{lastName}}": "name",
  "{{phones.primaryPhoneCallingCode}}{{phones.primaryPhoneNumber}}": "phone",
  "email": "email"
}
```

Ordne ein CRM-Label- oder Tag-Feld `tags` zu, um normalisierte,
kleingeschriebene Tags in den Kontakt zu übernehmen. Bestehende manuelle Tags
bleiben erhalten, und importierte Tags erscheinen sofort im
Audience-Tag-Filter.

Der erste Lauf importiert die ausgewählte Quelle. Spätere Läufe überspringen
unveränderte Datensätze und setzen nach vorübergehenden Unterbrechungen
sicher fort.

## Sync bearbeiten

Nutze die Stift-Aktion auf einer Sync-Karte, um Name, Objekt, Quelle,
Intervall, Land für Telefonnummern oder Feldzuordnung zu ändern; danach
erscheint dieselbe Vorschau der zugeordneten Daten wie beim Anlegen. **Save
only** behält den bestehenden Zeitplan bei. **Save & sync** speichert
dieselben Änderungen und startet sofort einen manuellen Lauf. Wird Objekt,
Quelle oder Zuordnung geändert, wendet der nächste Lauf die neue Zuordnung
auch auf bestehende CRM-Datensätze an.

## Identität und Konfliktverhalten

Die stabile CRM-Datensatz-ID hält jeden importierten Datensatz mit dem
richtigen Audience-Kontakt verknüpft. E-Mail und Telefon dienen nur dazu,
eine sichere erste Zuordnung zu finden. Mehrdeutige Treffer werden als
Konflikt gemeldet, statt fremde Personen zusammenzuführen.

CRM Sync löscht nie einen Audience-Kontakt. Datensätze, die in der
ausgewählten CRM-Quelle nicht mehr vorhanden sind, können für diesen Sync als
inaktiv markiert werden. Lokale Compliance-Daten – einschließlich Sperrliste
und Einwilligungsentscheidungen – werden durch CRM-Daten niemals gelöscht.

## Ergebnisse zurückschreiben

Verwende die [CRM-Action-Knoten](/de/automations/nodes#external-connections) in einer
Automatisierung nach einem Anruf- oder Qualifizierungsschritt. Jedes unterstützte CRM bringt – soweit die
Anbieter-API es zulässt – Actions zum Suchen/Abrufen, Erstellen und
Aktualisieren von Datensätzen mit. Nutze Template-Werte wie
`{{data.call_id}}` und `{{data.from_number}}` aus dem Auslöser oder die
Ausgabe eines vorherigen Schritts (`{{steps.step1.output}}`).

Eine Automatisierung mit dem Auslöser **On Call Completed** kann zum
Beispiel die [Analyse](/de/assistants/analysis) des Anrufs auslesen –
`{{data.analysis.sentiment}}`, `{{data.analysis.success}}`,
`{{data.analysis.success_reason}}` sowie jedes vom Assistenten extrahierte
eigene Feld (`{{data.analysis.data.<field_name>}}`) – und dann mit einer
CRM-Update-Action das Ergebnis am verknüpften Datensatz protokollieren, oder
mit **Condition** anhand von `{{data.analysis.success}}` verzweigen, um nur
qualifizierte Anrufe in eine Folgesequenz zu leiten.

CRM-Webhook-Auslöserknoten können eine Automatisierung anhand von
Anbieterereignissen starten. Wähle Verbindung und Ereignis in den
Auslösereinstellungen. Wird eine Webhook-URL oder ein Secret benötigt, werden
beide direkt im Auslöser angezeigt.

## Fehlerbehebung

<AccordionGroup>
  <Accordion title="Die HighLevel-Verbindung schlägt fehl, oder es erscheint kein Unterkonto">
    Starte den Ablauf erneut über **Automations → Connections → HighLevel → Authorize HighLevel** und bestätige jede angeforderte Berechtigung. Stockt die Anmeldung oder landet sie im falschen Konto, liegt meist eine veraltete Browser-Sitzung vor – melde dich bei HighLevel ab oder nutze ein frisches privates Fenster und autorisiere erneut.
  </Accordion>

  <Accordion title="Es ist das falsche HighLevel-Unterkonto verbunden">
    **Authorize HighLevel** verbindet jeweils ein Unterkonto. Verbinde erneut und wähle das richtige aus; ein Workspace kann mehr als eine HighLevel-Verbindung enthalten, wenn du mehrere Unterkonten verwaltest.
  </Accordion>

  <Accordion title="Datensätze werden mit leerem Telefon- oder E-Mail-Feld importiert">
    Mindestens `phone` oder `email` muss in einem gültigen Format zugeordnet sein – prüfe die schreibgeschützte Vorschau vor dem Speichern, und ergänze ein **Default phone country**, falls das CRM Nummern im nationalen Format speichert.
  </Accordion>

  <Accordion title="Die Feldzuordnung passt nach einer CRM-Änderung nicht mehr">
    Ein umbenanntes oder umstrukturiertes CRM-Feld ordnet sich nicht von selbst neu zu. Öffne die Stift-Aktion des Syncs, erstelle die Zuordnung neu, und rechne damit, dass der nächste Lauf sie auch auf bestehende Datensätze anwendet.
  </Accordion>
</AccordionGroup>

## Public API und MCP

Dieselben Operationen stehen zur Verfügung über:

* `GET|POST /api/v1/crm-syncs`
* `POST /api/v1/crm-syncs/discover`
* `GET|PATCH|DELETE /api/v1/crm-syncs/{id}`
* `GET|POST /api/v1/crm-syncs/{id}/runs`
* MCP-Tools zum Auflisten, Anlegen, Ändern, Löschen und Starten von CRM-Syncs

API-Keys benötigen den entsprechenden Scope `automations:read` oder
`automations:write`. Secrets und Anbieter-Tokens werden nie zurückgegeben.
