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

# Salesforce

> Connectez votre agent d’IA au compte Salesforce d’un utilisateur pour créer ou mettre à jour des prospects, gérer des contacts et automatiser la gestion des dossiers.

Connectez votre agent d’IA au compte Salesforce d’un utilisateur pour créer ou mettre à jour des prospects et des contacts, consigner les activités d’appel et de courriel, générer des rapports et automatiser la gestion des dossiers.

## Connecter Salesforce à Auth0

**1. Configuration de Salesforce**

1. Inscrivez-vous pour obtenir un [compte Salesforce Developer](https://developer.salesforce.com/signup) ou utilisez votre org Salesforce existante.
2. Dans votre org Salesforce, accédez à **Setup** → **Platform Tools** →  **Apps** → **App Manager**.
3. Sélectionnez **New External Client App**.
4. Remplissez les renseignements de base :
   * **Connected App Name** : saisissez un nom descriptif pour votre intégration
   * **API Name** : ce nom sera généré automatiquement à partir du nom de l’application
   * **Contact Email** : votre adresse courriel
5. Dans la section **API (Enable OAuth Settings)** :

   * Sélectionnez **Enable OAuth Settings**
   * **Callback URL** : `https://YOUR_AUTH0_DOMAIN/login/callback`

   You can find the **Auth0 domain** in the [Auth0 Dashboard](https://manage.auth0.com/).

   You can find this under **Applications > \[Your Application] > Settings > Basic Information > Domain**.

   If you are using the [custom domains](https://auth0.com/docs/customize/custom-domains) feature, your Auth0 domain is the custom domain. You can find this under **Branding > Custom Domains**.

   * **Selected OAuth Scopes** : ajoutez les permissions suivantes :
     * `api` - Accéder à vos données et les gérer (api)
     * `refresh_token` - Effectuer des requêtes en votre nom en tout temps (refresh\_token, offline\_access)
     * `openid` - Accéder au service d’URL de votre identité
6. **Configuration importante des jetons** (pour une compatibilité optimale avec Token Vault) :
   * **Require Secret for Web Server Flow** : sélectionnez cette option pour renforcer la sécurité
   * **Require Secret for Refresh Token Flow** : sélectionnez cette option pour sécuriser les opérations d’actualisation des jetons
   * **Enable Refresh Token Rotation** : sélectionnez cette option pour activer la rotation à chaque actualisation
   * **Issue JSON Web Token (JWT)-based access tokens for named users** : sélectionnez cette option pour prolonger la validité des jetons et améliorer les performances
7. Sélectionnez **Create** et attendez que l’application soit créée.
8. Une fois l’application créée, notez votre **Consumer Key** (identifiant du client) et votre **Consumer Secret** (secret client).

**Remarques sur la configuration des jetons :**

* Si vous sélectionnez des jetons **opaques** plutôt que JWT, Token Vault fixera par défaut le délai d’expiration à 10 minutes, ce qui pourrait entraîner des actualisations fréquentes des jetons.
* Assurez-vous que la permission `refresh_token` est activée dans les paramètres de votre Connected App, et pas seulement demandée dans Auth0. Si cette permission n’est pas activée du côté de Salesforce, Auth0 ne peut pas demander de jetons de renouvellement.
* Envisagez d’activer la rotation des jetons de renouvellement afin de renforcer la sécurité.

Pour en savoir plus sur la configuration d’une Connected App Salesforce, consultez la [documentation Create a Connected App](https://help.salesforce.com/s/articleView?id=sf.connected_app_create.htm).

**2. Configuration d’Auth0**

<ol>
  <li>Dans [Auth0 Dashboard](https://manage.auth0.com), accédez à
  **Authentification > Social**.</li>
  <li>Sélectionnez **Créer une connexion**, puis choisissez **Salesforce**.</li>
  <li>Sélectionnez **Continuer**.</li>

  <li>
    Dans **Général** :

    <ol type="A">
      <li>Saisissez le **ID client** et le **Secret client** de
      votre application OAuth Salesforce.</li>

      <li>
        Sous **Scopes**, sélectionnez les permissions requises pour votre
        application. Elles déterminent les permissions que votre application peut
        demander à Salesforce, que ce soit pour l'authentification (comme
        l'accès aux informations de profil de base) ou l'accès aux API (comme
        la connexion aux API du fournisseur).

        Pour une connexion sociale Dropbox ou Google,
        vous devez sélectionner **Accès hors ligne** dans Auth0 Dashboard, ce qui permet
        à l'application cliente d'obtenir un jeton d'actualisation Auth0.
      </li>

      <li>Ajoutez toute permission supplémentaire requise par votre application dans le champ
      **Permissions supplémentaires**.</li>
    </ol>
  </li>

  <li>Dans **Objectif**, activez **Comptes connectés pour le coffre-fort de jetons**. Cela permet à cette
  connexion de récupérer et de stocker de façon sécuritaire des jetons d'accès pour des
  API externes. Pour en apprendre davantage, consultez
  [Comptes connectés pour le coffre-fort de jetons](https://auth0.com/docs/secure/call-apis-on-users-behalf/token-vault/connected-accounts-for-token-vault.md).</li>
  <li>Sélectionnez **Créer**.</li>

  <li>
    Après sa création, vous êtes redirigé vers la page **Applications**.
    Sélectionnez les applications pour lesquelles vous souhaitez activer cette connexion.

    Dans un nouveau locataire Auth0, vous pouvez sélectionner l'**application par défaut**.
  </li>

  <li>Une fois votre connexion sociale Salesforce créée, [testez votre connexion](https://auth0.com/docs/authenticate/identity-providers/test-connections.md) pour vous assurer que la configuration fonctionne correctement avant de l'utiliser dans votre application.</li>
</ol>

**Permissions requises :** assurez-vous d’inclure les permissions suivantes dans la configuration de votre connexion Auth0 :

* `openid` - Accéder au service d’URL de votre identité
* `api` - Accéder à vos données et les gérer
* `refresh_token` - Effectuer des requêtes en votre nom en tout temps
* `offline_access` - Conserver l’accès en votre absence

Ces permissions doivent également être activées dans la configuration de votre Connected App Salesforce.

Ce guide vous explique comment configurer la connexion **Salesforce** dans Auth0.
Pour un exemple complet montrant comment configurer votre application afin d’appeler des API tierces au nom de l’utilisateur
à l’aide d’une telle connexion, consultez le guide de démarrage rapide
[Appeler des API tierces au nom de l’utilisateur](https://auth0.com/ai/docs/get-started/call-third-party-apis-on-users-behalf.md).

## Exemple de configuration du Token Vault

Pour configurer le Token Vault de votre connexion Salesforce, vous pouvez utiliser l'extrait de code suivant dans votre application :

> [tab] JavaScript

> [tab] Python

## Dépannage

### Erreurs de grant invalide

Si vous obtenez des erreurs `invalid_grant` avec des jetons d’accès ou de renouvellement expirés :

1. **Vérifiez la configuration des jetons** : assurez-vous que votre Connected App utilise des jetons JWT plutôt que des jetons opaques.
2. **Vérifiez la politique des jetons de renouvellement** : dans votre Connected App, réglez la politique des jetons de renouvellement sur « valide jusqu’à révocation » (valid until revoked).
3. **Configuration des permissions** : confirmez que les permissions `refresh_token` et `offline_access` sont activées à la fois dans votre Connected App Salesforce et dans votre connexion Auth0.
4. **Rotation des jetons** : si vous utilisez la rotation des jetons de renouvellement, assurez-vous que votre application prend en charge le nouveau jeton de renouvellement renvoyé à chaque requête d’actualisation.

### Problèmes courants

* **Erreurs de permission** : assurez-vous que toutes les permissions requises sont activées dans les paramètres de votre Connected App Salesforce, et pas seulement demandées dans Auth0.
* **Expiration des jetons** : les jetons JWT ont une durée de validité plus longue que les jetons opaques. Si vous utilisez des jetons opaques, attendez-vous à devoir actualiser vos jetons fréquemment.
* **Autorisations multiples** : évitez d’autoriser le même utilisateur plusieurs fois de suite en peu de temps, car cela peut entraîner l’invalidation des jetons.

Pour obtenir d’autres ressources de dépannage, consultez la documentation de dépannage OAuth de Salesforce ainsi que la liste de référence des codes d’erreur.

## Next steps

* To learn how to configure applications to access Token Vault, read [Configure Token Vault](https://auth0.com/docs/secure/call-apis-on-users-behalf/token-vault/configure-token-vault.md).
* If your application uses [Organizations](https://auth0.com/docs/manage-users/organizations.md), authenticate the user with the target organization before initiating the Connected Accounts flow. Connected accounts remain linked to the individual user profile.
* To learn how to get an access token to make a tool call, complete the [Call third-party APIs on user's behalf Quickstart](https://auth0.com/ai/docs/get-started/call-third-party-apis-on-users-behalf.md).
