# Enrichir ses données avec Salesforce

Connectez Salesforce à Fincome en quelques clics et libérez tout le potentiel de vos données clients.\
En enrichissant vos axes Fincome avec les propriétés Salesforce, vous bénéficiez d'informations plus détaillées, d'une meilleure segmentation et d'analyses plus puissantes, le tout à partir d'une source CRM unique et unifiée.

Vous améliorez ainsi votre prise de décision grâce à des données enrichies automatiquement et maintenues à jour, pour une lecture plus fine et plus exploitable de votre base clients.

## Conditions préalables

Avant de commencer, assurez-vous que les conditions suivantes sont remplies :

* Vous disposez des autorisations nécessaires dans Salesforce pour :
  * Accéder à **Setup** et créer une **External Client App**
  * Consulter les objets CRM Salesforce que vous souhaitez synchroniser (ex. : **Comptes**)
* Votre organisation Salesforce autorise l'authentification **OAuth 2.0**

## Guide étape par étape : connecter Salesforce à Fincome

Connecter Salesforce à Fincome nécessite deux phases :

1. **Dans Salesforce** – créer une External Client App (ECA) pour obtenir les identifiants OAuth.
2. **Dans Fincome** – configurer la source d'enrichissement avec ces identifiants.

***

### Phase 1 – Créer une External Client App dans Salesforce

#### **Étape 1 – Accéder à l'External Client App Manager**

1. Connectez-vous à Salesforce avec un compte administrateur.
2. Cliquez sur l'**icône en forme de roue dentée** (en haut à droite) et ouvrez **Setup**.

   <figure><img src="/files/LbovWS0kTEBchZWmgTmz" alt=""><figcaption></figcaption></figure>
3. Dans la barre **Quick Find**, tapez `External`.

   <figure><img src="/files/al5Duf6A7UZJMhglfMjH" alt=""><figcaption></figcaption></figure>
4. Sélectionnez **External Client App Manager**.
5. Cliquez sur **New External Client App**.

#### **Étape 2 – Renseigner les informations de base**

Dans la section **Basic Information**, renseignez :

* **External Client App Name** : un nom clair (ex. : `Fincome`).
* **API Name** : généré automatiquement à partir du nom de l'application (ex. : `Fincome`). Vous pouvez conserver la valeur par défaut.
* **Contact Email** : l'email de l'équipe qui gère l'intégration (utilisé par Salesforce pour vous contacter au sujet de l'application).
* **Distribution State** : laissez sur **Local** (l'application n'est utilisée que par votre propre organisation).

<figure><img src="/files/HF7Snjv0R2KWsuz7cRjH" alt=""><figcaption></figcaption></figure>

#### **Étape 3 – Configurer les paramètres OAuth**

Activez **API (Enable OAuth Settings)**, puis renseignez les champs suivants :

**1. Callback URL**

Indiquez l'URL de redirection fournie par Fincome :

```
https://analytics.fincome.co/settings/sources
```

> Cette valeur correspond à l'`OAUTH_REDIRECT_URL` fournie par Fincome. Elle doit être **strictement identique**, sans espace ni caractère superflu.

**2. OAuth Scopes**

<figure><img src="/files/kpHoWz0EnVu764NWsG4q" alt=""><figcaption></figcaption></figure>

Ajoutez **au minimum** les scopes suivants à la liste **Selected OAuth Scopes** :

* **Manage user data via APIs (`api`)** — permet à Fincome de lire vos données Salesforce via l'API.
* **Perform requests at any time (`refresh_token`, `offline_access`)** — nécessaire pour que Fincome puisse renouveler son token d'accès sans vous demander de vous reconnecter.

**3. Flow Enablement**

* Cochez **Enable Authorization Code and Credentials Flow**.\
  Il s'agit du flux utilisé par le connecteur Fincome (OAuth 2.0 authorization code grant avec refresh tokens).

**4. Security**

* Cochez **Require Secret for Refresh Token Flow** et **Require Secret for Web Server Flow**.\
  Cela garantit que le client secret est requis lors de l'échange d'un refresh token, ce qui est le paramètre recommandé pour les intégrations serveur à serveur comme Fincome.

<figure><img src="/files/pI5q8fu1XGLj4qo51kAH" alt=""><figcaption></figcaption></figure>

#### **Étape 4 – Créer l'application**

1. Vérifiez votre configuration.
2. Cliquez sur **Create** en bas de la page.

Salesforce crée l'External Client App et vous redirige vers sa page de détail.

#### **Étape 5 – Récupérer vos identifiants**

Vous devez maintenant copier le **Consumer Key** et le **Consumer Secret** que Fincome utilisera pour s'authentifier.

1. Ouvrez votre application nouvellement créée depuis l'**External Client App Manager**.
2. Allez dans l'onglet **Settings**.

<figure><img src="/files/CaWfumCtcaIOEzbcljk0" alt=""><figcaption></figcaption></figure>

1. Faites défiler jusqu'à la section **OAuth Settings**.
2. Cliquez sur **Consumer Key and Secret**.

<figure><img src="/files/9nqPbfMpwpY8UN68aLRw" alt=""><figcaption></figcaption></figure>

1. Salesforce peut vous demander de vérifier votre identité via un code envoyé par email — saisissez le code reçu.
2. Copiez les deux valeurs :

| Champ Salesforce    | Identifiant Fincome               |
| ------------------- | --------------------------------- |
| **Consumer Key**    | `secret_salesforce_client_id`     |
| **Consumer Secret** | `secret_salesforce_client_secret` |

{% hint style="danger" %}
Traitez le Consumer Secret comme un mot de passe. Ne le partagez jamais publiquement et ne le publiez pas dans un dépôt public.
{% endhint %}

***

### Phase 2 – Configurer la source Salesforce dans Fincome

**Étape 1 – Accéder aux paramètres**

1. Allez dans **Réglages** sur Fincome.
2. Ouvrez l'onglet **Sources de données**.
3. Cliquez sur **Sources d'enrichissement**.
4. Sélectionnez **Connecter une nouvelle source d'enrichissement**.
5. Choisissez **Synchroniser une/des propriété(s) Salesforce**.

**Étape 2 – Configurer la source Salesforce**

Une fenêtre de configuration s'ouvre avec les champs suivants :

**1. Nom de la source**

Donnez un nom clair et **unique** à votre source (ex. : *Salesforce – Comptes*).\
Ce nom permet d'identifier facilement la source dans Fincome.

**2. Identifiants Salesforce**

Collez les valeurs récupérées depuis votre External Client App :

* **Client ID** → le **Consumer Key** de Salesforce.
* **Client Secret** → le **Consumer Secret** de Salesforce.

**3. Propriétés Salesforce à récupérer (séparées par des virgules)**

Indiquez les **noms d'API exacts** des champs Salesforce à synchroniser.

**Exemple :**\
`Industry, Phone, BillingCity`

**Comment trouver le nom d'API exact d'un champ :**

1. Dans Salesforce, ouvrez **Setup**.
2. Allez dans **Object Manager** et sélectionnez l'objet (ex. : **Account**).
3. Cliquez sur **Fields & Relationships**.
4. Copiez la valeur de la colonne **Field Name** (il s'agit du nom d'API, ex. : `Industry` ou `Custom_Segment__c`).

**4. Nom de l'axe d'identification Salesforce dans Fincome**

Indiquez l'**axe Fincome** qui contient l'identifiant utilisé pour faire le matching avec Salesforce.

Par défaut, il s'agit du **Record ID Salesforce** (l'identifiant à 15 ou 18 caractères, ex. : `0015g00000XyZabAAB`), mais vous pouvez également utiliser **un autre champ Salesforce** (par exemple un identifiant client interne), à condition que :

* l'identifiant soit **unique**
* l'identifiant soit **exhaustif** sur l'ensemble de vos clients
* la valeur soit **strictement identique** entre Salesforce et Fincome

> L'objectif est d'utiliser un identifiant commun, fiable et cohérent entre toutes les sources utilisées dans Fincome.

{% hint style="danger" %}
Cet axe doit déjà exister dans Fincome, sinon la synchronisation ne fonctionnera pas.
{% endhint %}

**5. Préfixe des axes (facultatif)**

Définissez un préfixe pour les axes créés à partir des propriétés Salesforce.

* **Sans préfixe personnalisé** :
  * Préfixe par défaut : `Salesforce_xxxxxx_`
  * Exemple : `Salesforce_726564_Industry`
* **Avec préfixe personnalisé** :
  * Préfixe : `_Axis`
  * Exemple : `Salesforce_AxisIndustry`

{% hint style="danger" %}
Si aucun préfixe n'est renseigné et que les noms correspondent à des axes existants, Fincome fusionnera les axes.
{% endhint %}

#### **Étape 3 – Finaliser la connexion**

6. Cliquez sur **Valider**.
7. Vous êtes redirigé vers Salesforce.
8. Connectez-vous avec le compte Salesforce à connecter.
9. Vérifiez et acceptez les autorisations demandées (`api`, `refresh_token`).
10. Cliquez sur **Allow**.

#### Vérification finale

Retournez dans **Réglages → Sources de données → Sources d'enrichissement** et vérifiez que votre source Salesforce apparaît comme active.

## \*Qu'est-ce qu'un Record ID et où le trouver dans Salesforce

Un **Record ID** est l'identifiant unique attribué par Salesforce à chaque fiche — ici, un **Compte**.\
Il existe sous deux formats :

* **ID à 15 caractères** (sensible à la casse) : visible dans l'URL de la fiche.
* **ID à 18 caractères** (insensible à la casse) : renvoyé par l'API et les exports. Les deux pointent vers la même fiche.

Fincome peut utiliser cet identifiant pour faire correspondre un client Fincome (via un axe analytique) au bon compte Salesforce, afin de synchroniser correctement les propriétés CRM.

### **Où trouver le Record ID dans Salesforce (Comptes)**

1. Connectez-vous à Salesforce.
2. Ouvrez l'onglet **Comptes** (ou utilisez **App Launcher → Comptes**).
3. Cliquez sur le compte concerné pour ouvrir sa fiche.
4. Regardez la barre d'adresse du navigateur : le Record ID apparaît dans l'URL.

**Exemple d'URL :**\
`https://your-org.lightning.force.com/lightning/r/Account/0015g00000XyZabAAB/view`\
👉 Dans cet exemple, `0015g00000XyZabAAB` correspond au **Record ID**.

### **Autres façons d'obtenir le Record ID**

* Depuis un rapport ou une vue de liste Salesforce, ajoutez la colonne **Account ID**.
* Lors d'un export Salesforce (Data Export ou Data Loader), incluez la colonne **Id**.
* Via l'API REST Salesforce, le Record ID correspond au champ `Id`.

## **Bonnes pratiques pour la synchronisation avec Fincome**

* Vérifiez que le Record ID enregistré dans Fincome est **strictement identique** à celui de Salesforce (sans espace ni formatage).
* Privilégiez l'**ID à 18 caractères** pour éviter les problèmes de sensibilité à la casse lors du matching.
* Pour des volumes importants, il est recommandé d'exporter les comptes Salesforce avec leurs IDs, puis de mettre à jour les axes Fincome en masse.

⚠️ Si l'identifiant enregistré dans Fincome ne correspond pas à celui de Salesforce, l'enrichissement ne pourra pas fonctionner.

## **FAQ**

→ **Quel type de données Salesforce puis-je enrichir dans Fincome ?**\
Vous pouvez synchroniser tous les champs de compte Salesforce auxquels vous avez accès : secteur, taille, localisation, champs personnalisés (`__c`), etc.

***

→ **Que se passe-t-il si l'axe d'identification n'existe pas dans Fincome ?**\
La synchronisation échouera. L'axe doit impérativement être créé en amont.

***

→ **Que se passe-t-il si le nom d'API d'un champ Salesforce est incorrect ?**\
La synchronisation s'exécute, mais les axes concernés seront remplis avec la valeur `None`.

***

→ **Que se passe-t-il si je révoque l'External Client App dans Salesforce ?**\
La synchronisation s'arrêtera immédiatement. Vous devrez reconnecter la source dans Fincome, éventuellement avec de nouveaux identifiants.

***

→ **À quelle fréquence les données sont-elles mises à jour ?**\
Les données sont mises à jour quotidiennement.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.fincome.co/guide/enrichir-sa-donnee-avec-les-crm/enrichir-ses-donnees-avec-salesforce.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
