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

> AI agentをユーザーのSalesforceアカウントに接続し、リードの作成・更新、取引先責任者の管理、ケース管理の自動化を行います。

AI agentをユーザーのSalesforceアカウントに接続すると、リードや取引先責任者の作成・更新、通話やメールのアクティビティの記録、レポートの生成、ケース管理の自動化が可能になります。

## SalesforceをAuth0に接続する

**1. Salesforceの設定**

1. [Salesforce Developerアカウント](https://developer.salesforce.com/signup)にサインアップするか、既存のSalesforce orgを使用します。
2. Salesforce orgで、**Setup** → **Platform Tools** →  **Apps** → **App Manager**に移動します。
3. **New External Client App**を選択します。
4. 基本情報を入力します。
   * **Connected App Name**：連携内容がわかる名前を入力します
   * **API Name**：アプリ名に基づいて自動生成されます
   * **Contact Email**：ご自身のメールアドレスを入力します
5. \*\*API (Enable OAuth Settings)\*\*セクションで、以下を設定します。

   * **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](/docs/customize/custom-domains) feature, your Auth0 domain is the custom domain. You can find this under **Branding > Custom Domains**.

   * **Selected OAuth Scopes**：以下のスコープを追加します。
     * `api` - データへのアクセスと管理 (api)
     * `refresh_token` - ユーザーに代わっていつでもリクエストを実行 (refresh\_token、offline\_access)
     * `openid` - アイデンティティURLサービスへのアクセス
6. **重要なトークン設定** (Token Vaultとの互換性を最適化するため) ：
   * **Require Secret for Web Server Flow**：セキュリティを強化するため、このオプションを選択します
   * **Require Secret for Refresh Token Flow**：トークンのリフレッシュオペレーションを保護するため、このオプションを選択します
   * **Enable Refresh Token Rotation**：リフレッシュのたびにトークンをローテーションするため、このオプションを選択します
   * **Issue JSON Web Token (JWT)-based access tokens for named users**：トークンの有効期間を延ばし、パフォーマンスを向上させるため、このオプションを選択します
7. **Create**を選択し、アプリが作成されるまで待ちます。
8. 作成後、**Consumer Key** (Client ID) と**Consumer Secret** (client secret) を控えておきます。

**トークン設定に関する注意事項：**

* JWTではなく**オペーク**トークンを選択した場合、Token Vaultは有効期限をデフォルトで10分に設定するため、トークンのリフレッシュが頻繁に発生する可能性があります。
* `refresh_token`スコープは、Auth0でリクエストするだけでなく、Connected Appの設定でも有効にしてください。Salesforce側でこのスコープが有効になっていないと、Auth0はリフレッシュトークンをリクエストできません。
* セキュリティを高めるため、リフレッシュトークンのローテーションを有効にすることをお勧めします。

SalesforceのConnected Appの設定について詳しくは、[Create a Connected Appのドキュメント](https://help.salesforce.com/s/articleView?id=sf.connected_app_create.htm)を参照してください。

**2. Auth0の設定**

<ol>
  <li>[Auth0 Dashboard](https://manage.auth0.com) で
  **認証 > ソーシャル**に移動します。</li>
  <li>**接続を作成**を選択し、**Salesforce**を選択します。</li>
  <li>**続行**を選択します。</li>

  <li>
    **一般**で、次の操作を行います。

    <ol type="A">
      <li>Salesforce OAuth アプリの**クライアント ID**と**クライアントシークレット**を入力します。</li>

      <li>
        **Scopes**で、アプリケーションに必要なスコープを選択します。
        これにより、認証（基本的なプロフィール情報へのアクセスなど）や API アクセス（プロバイダーの API への接続など）の際に、アプリケーションが Salesforce に要求できる権限が決まります。

        Dropbox または Google のソーシャル
        接続では、Auth0 Dashboard で**オフラインアクセス**を選択し、
        クライアントアプリケーションが Auth0 のリフレッシュトークンを取得できるようにする必要があります。
      </li>

      <li>アプリケーションに必要な追加のスコープを
      **追加のスコープ**フィールドに追加します。</li>
    </ol>
  </li>

  <li>**目的**で、**Token Vault の接続済みアカウント**をオンにします。これにより、
  接続で外部 API のアクセストークンを取得し、安全に保存できます。詳細については
  [Token Vault の接続済みアカウント](/docs/secure/call-apis-on-users-behalf/token-vault/connected-accounts-for-token-vault)を参照してください。</li>
  <li>**作成**を選択します。</li>

  <li>
    作成後、**アプリケーション**ページにリダイレクトされます。
    この接続を有効にするアプリケーションを選択します。

    新しい Auth0 テナントでは、**デフォルトアプリ**を選択できます。
  </li>

  <li>Salesforce のソーシャル接続を作成したら、アプリケーションで使用する前に、[接続をテスト](/docs/authenticate/identity-providers/test-connections)して設定が正しく機能することを確認してください。</li>
</ol>

**必要なスコープ：** Auth0の接続設定に、以下のスコープを必ず含めてください。

* `openid` - アイデンティティURLサービスへのアクセス
* `api` - データへのアクセスと管理
* `refresh_token` - ユーザーに代わっていつでもリクエストを実行
* `offline_access` - ユーザーが不在のときもアクセスを維持

これらのスコープは、SalesforceのConnected App設定でも有効にする必要があります。

このガイドでは、Auth0 で **Salesforce** 接続をセットアップする手順を説明します。
このような接続を使用して、ユーザーに代わってアプリから第三者 API を呼び出す方法を一連の流れで示す例については、
[ユーザーに代わって第三者 API を呼び出すクイックスタート](/ai/docs/get-started/call-third-party-apis-on-users-behalf)をお読みください。

## Token Vaultの設定例

Salesforce接続にToken Vaultを設定するには、アプリケーションで次のコードスニペットを使用します。

**JavaScript**

**Python**

## トラブルシューティング

### 無効なグラントのエラー

期限切れのアクセストークンまたはリフレッシュトークンで `invalid_grant` エラーが発生する場合は、次の点を確認してください。

1. **トークンの設定を確認する**：Connected Appで、オペークトークンではなくJWTトークンが使用されていることを確認します。
2. **リフレッシュトークンのポリシーを確認する**：Connected Appで、リフレッシュトークンのポリシーを「取り消されるまで有効 (valid until revoked) 」に設定します。
3. **スコープの設定**：Salesforce Connected AppとAuth0接続の両方で、`refresh_token` スコープと `offline_access` スコープが有効になっていることを確認します。
4. **トークンのローテーション**：リフレッシュトークンのローテーションを使用している場合は、更新リクエストのたびに返される新しいリフレッシュトークンをアプリケーションで適切に処理してください。

### よくある問題

* **スコープエラー**：必要なスコープはAuth0でリクエストするだけでなく、すべてSalesforce Connected Appの設定で有効にしておく必要があります。
* **トークンの有効期限**：JWTトークンはオペークトークンよりも有効期限が長くなっています。オペークトークンを使用する場合は、トークンのリフレッシュが頻繁に発生することを想定しておいてください。
* **複数回の認可**：同じユーザーを短時間に何度も認可することは避けてください。トークンが無効化される問題が発生する可能性があります。

トラブルシューティングの詳細については、SalesforceのOAuthトラブルシューティングドキュメントおよびエラーコードのリファレンスを参照してください。

## Next steps

* To learn how to configure applications to access Token Vault, read [Configure Token Vault](/docs/secure/call-apis-on-users-behalf/token-vault/configure-token-vault).
* If your application uses [Organizations](/docs/manage-users/organizations), 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](/ai/docs/get-started/call-third-party-apis-on-users-behalf).
