> ## 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.

# Synchronisation CRM

> Gardez les contacts Audience alignés avec votre CRM et réécrivez les résultats d'appel via des automatisations.

<Warning>
  La synchronisation CRM (Revenue Autopilot) est une fonctionnalité bêta. Un
  administrateur de l'espace de travail doit activer **Beta features**, et
  l'espace de travail doit disposer de l'add-on **Revenue Autopilot** (ou
  l'avoir inclus gratuitement dans son forfait), ainsi que de limites de
  capacité de synchronisation CRM suffisantes.
</Warning>

La synchronisation CRM garde Audience et un CRM connecté alignés selon une
planification récurrente. Les agents, campagnes, segments et automatisations
peuvent alors utiliser les attributs de contact à jour sans import CSV.

| Sens           | Comportement                                                                                              |
| -------------- | --------------------------------------------------------------------------------------------------------- |
| CRM → Audience | Importe les contacts, leads, deals et attributs mappés dans Audience.                                     |
| Audience → CRM | Met à jour les fiches CRM liées à partir d'Audience. Crée éventuellement les fiches CRM manquantes.       |
| Les deux sens  | Importe d'abord, puis exporte, selon la même planification. Les valeurs inchangées ne sont pas réécrites. |

<Note>
  La création des fiches manquantes dépend du type d'objet : prise en charge pour les contacts HubSpot, les contacts/leads Salesforce, les personnes Pipedrive, les contacts et leads Close, et les personnes Attio/Twenty ; HighLevel et Keap la prennent en charge sur tous leurs types d'objets.
</Note>

Les résultats d'appel peuvent toujours être écrits via des **nœuds d'action CRM d'automatisation** après un appel ou une étape de qualification. Ce chemin est indépendant de la synchronisation CRM d'Audience.

L'export utilise des mappages de champs un-à-un. Les valeurs combinées telles que `{{firstName}} {{lastName}}` peuvent être importées, mais ne peuvent pas être inversées pour l'export.

## CRM pris en charge

CRM Sync dispose d'un adaptateur natif pour chacun de ces fournisseurs, si bien que les trois sens du tableau ci-dessus sont disponibles dès que vous ajoutez une connexion API pour celui-ci :

* HubSpot
* HighLevel
* Salesforce
* Pipedrive
* Close.io
* Zoho CRM
* Attio
* Keap
* Twenty Cloud et Twenty auto-hébergé

Twenty Cloud utilise `https://api.twenty.com`. Pour une instance
auto-hébergée, saisissez une URL HTTPS publique que la plateforme peut
atteindre via Internet.

Un CRM absent de cette liste ne dispose d'aucune synchronisation Audience native, mais les automatisations peuvent tout de même l'atteindre — appelez son API avec une action HTTP Request, connectez-le comme point de terminaison MCP personnalisé, ou recherchez-le sous Browse apps (Beta). Voir l'[App Catalog](/fr/automations/app-catalog) pour l'annuaire complet des apps intégrées et connectées.

## Connecter HighLevel

Ouvrez **Automations → Connections → HighLevel** et choisissez **Authorize HighLevel**. Sélectionnez le sous-compte à utiliser et approuvez les autorisations demandées. Cette même connexion peut être utilisée par CRM Sync ainsi que par les actions d'automatisation HighLevel, y compris les actions de calendrier et de rendez-vous prises en charge.

## Créer une synchronisation

1. Ouvrez **Automations → Connections** et ajoutez une connexion API pour le CRM.
   Les connexions compatibles portent le tag **CRM Sync** dans **Add Connection**.
2. Ouvrez **Audience → CRM Sync**.
3. Sélectionnez la connexion ainsi que l'objet ou la source CRM.
4. Mappez les champs CRM vers Name, Phone, Email, Tags, un attribut Audience personnalisé, ou une identité de canal prise en charge. Les valeurs e-mail mappées créent aussi automatiquement le profil de canal E-mail du contact.
   Affectez plusieurs champs source à la même destination pour combiner les valeurs.
5. Passez en revue jusqu'à trois exemples CRM en lecture seule après le mappage.
6. Choisissez l'intervalle et démarrez la synchronisation.

L'outil de mappage suggère les champs standards et fait correspondre les attributs personnalisés existants par nom. Un mappage de canal seul ne crée jamais de nouveau contact ; Phone ou Email reste la clé de correspondance.

Choisissez **Custom value** pour une destination afin de combiner des puces
de champ CRM et du texte dans l'ordre exact souhaité. Par exemple,
`Salutation + First name + Last name` peut construire `name` ;
`Calling code + Phone number` peut construire `phone`. Au moins `phone` ou
`email` est requis pour que la première fiche CRM puisse être associée en
toute sécurité à un contact Audience.

Pour les numéros de téléphone nationaux, choisissez un **Default phone
country** tel que l'Allemagne. L'aperçu et l'exécution réelle utilisent le
même analyseur tenant compte du pays, et stockent le résultat au format
E.164 (`+49152…`). Les numéros internationaux commençant déjà par `+` ou `00`
ignorent la valeur par défaut. Si le CRM expose un champ ISO pays (`DE`) ou
indicatif (`+49`) séparé, mappez-le avant le champ numéro de téléphone dans
la même composition `phone`. Les combinaisons téléphone/e-mail invalides
sont signalées dans l'aperçu en lecture seule avant tout enregistrement.

L'API et MCP conservent le même format de mappage simple. Une source unique
reste une simple clé de champ. Les valeurs combinées utilisent des jetons
`{{field}}` sécurisés avec du texte littéral facultatif ; aucun code n'est
évalué :

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

Mappez un champ de libellé ou de tag CRM vers `tags` pour fusionner des tags
normalisés en minuscules dans le contact. Les tags manuels existants restent
intacts, et les tags importés apparaissent immédiatement dans le filtre de
tags Audience.

La première exécution importe la source sélectionnée. Les exécutions suivantes ignorent les fiches inchangées et reprennent en toute sécurité après une interruption temporaire.

## Modifier une synchronisation

Utilisez l'icône crayon sur une carte de synchronisation pour modifier son
nom, son objet, sa source, son intervalle, son pays téléphonique ou son
mappage de champs, puis relisez le même aperçu des données mappées que lors
de la création. **Save only** conserve la planification existante.
**Save & sync** enregistre les mêmes changements et lance immédiatement une
exécution manuelle. Modifier l'objet, la source ou le mappage entraîne, à la
prochaine exécution, la réapplication du nouveau mappage aux fiches CRM
existantes.

## Identité et gestion des conflits

L'identifiant stable de la fiche CRM maintient le lien entre chaque fiche
importée et le bon contact Audience. L'e-mail et le téléphone ne servent
qu'à trouver une correspondance initiale sûre. Les correspondances ambiguës
sont signalées comme des conflits plutôt que fusionnées entre personnes non
liées.

La synchronisation CRM ne supprime jamais un contact Audience. Les fiches
qui ne sont plus présentes dans la source CRM sélectionnée peuvent être
marquées inactives pour cette synchronisation. Les données de conformité
locales, y compris la liste de blocage et les décisions de consentement, ne
sont jamais effacées par les données CRM.

## Réécrire les résultats

Utilisez les [nœuds d'action CRM](/fr/automations/nodes#connexions-externes) dans une automatisation après un appel ou
une étape de qualification. Chaque CRM pris en charge propose des actions
de recherche/récupération, de création et de mise à jour de fiches, lorsque
l'API du fournisseur les prend en charge. Utilisez des valeurs de modèle
telles que `{{data.call_id}}` et `{{data.from_number}}` issues du
déclencheur, ou la sortie d'une étape précédente (`{{steps.step1.output}}`).

Par exemple, une automatisation sur le déclencheur **On Call Completed**
peut lire l'[analyse](/fr/assistants/analysis) de l'appel —
`{{data.analysis.sentiment}}`, `{{data.analysis.success}}`,
`{{data.analysis.success_reason}}`, et tout champ personnalisé extrait par
l'assistant (`{{data.analysis.data.<field_name>}}`) — puis utiliser une
action de mise à jour CRM pour consigner le résultat sur la fiche liée, ou
bifurquer avec **Condition** sur `{{data.analysis.success}}` pour
n'orienter que les appels qualifiés vers une séquence de relance.

Les nœuds de déclencheur webhook CRM peuvent démarrer une automatisation à
partir d'événements du fournisseur. Choisissez la connexion et l'événement
dans les réglages du déclencheur. Si une URL de webhook ou un secret est
requis, les deux sont affichés directement dans le déclencheur.

## Dépannage

<AccordionGroup>
  <Accordion title="La connexion HighLevel échoue, ou aucun sous-compte n'apparaît">
    Relancez le parcours depuis **Automations → Connections → HighLevel → Authorize HighLevel** et approuvez toutes les autorisations demandées. Si la connexion reste bloquée ou aboutit sur le mauvais compte, une session de navigateur obsolète en est généralement la cause — déconnectez-vous de HighLevel ou utilisez une nouvelle fenêtre de navigation privée, puis autorisez à nouveau.
  </Accordion>

  <Accordion title="Le mauvais sous-compte HighLevel est connecté">
    **Authorize HighLevel** connecte un sous-compte à la fois. Reconnectez-vous et choisissez le bon ; un espace de travail peut détenir plusieurs connexions HighLevel si vous gérez plusieurs sous-comptes.
  </Accordion>

  <Accordion title="Des fiches s'importent avec un téléphone ou un e-mail vide">
    Au moins `phone` ou `email` doit être mappé dans un format valide — vérifiez l'aperçu en lecture seule avant d'enregistrer, et ajoutez un **Default phone country** si le CRM stocke les numéros au format national.
  </Accordion>

  <Accordion title="Le mappage de champs cesse de correspondre après une modification du CRM">
    Un champ CRM renommé ou restructuré ne se remappe pas de lui-même. Ouvrez l'icône crayon de la synchronisation, refaites le mappage, et la prochaine exécution le réappliquera aux fiches existantes.
  </Accordion>
</AccordionGroup>

## API publique et MCP

Les mêmes opérations sont disponibles via :

* `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`
* Les outils MCP pour lister, créer, mettre à jour, supprimer et exécuter des synchronisations CRM

Les clés API nécessitent le scope `automations:read` ou `automations:write`
correspondant. Les secrets et jetons de fournisseur ne sont jamais renvoyés.
