

# Conexión a Salesforce
<a name="connecting-to-data-salesforce"></a>

Salesforce proporciona un software de administración de relaciones con los clientes (CRM) que le ayuda con las ventas, el servicio al cliente, el comercio electrónico y mucho más. Si es usuario de Salesforce, puede conectar AWS Glue a su cuenta de Salesforce. A continuación, puede utilizar Salesforce como origen o destino de datos en sus trabajos de ETL. Ejecute estos trabajos para transferir datos entre Salesforce y los servicios de AWS u otras aplicaciones compatibles.

**Topics**
+ [Compatibilidad de AWS Glue con Salesforce](salesforce-support.md)
+ [Políticas que contienen las operaciones de la API para crear y usar conexiones](salesforce-configuring-iam-permissions.md)
+ [Configuración de Salesforce](salesforce-configuring.md)
+ [Aplicar el perfil Administrador del sistema](#salesforce-configuring-apply-system-admin-profile)
+ [Configuración de conexiones de Salesforce](salesforce-configuring-connections.md)
+ [Lectura desde Salesforce](salesforce-reading-from-entities.md)
+ [Escritura en Salesforce](salesforce-writing-to.md)
+ [Opciones de conexión de Salesforce](salesforce-connection-options.md)
+ [Limitaciones del conector de Salesforce](salesforce-connector-limitations.md)
+ [Configuración del flujo de códigos de autorización de Salesforce](salesforce-setup-authorization-code-flow.md)
+ [Configuración del flujo OAuth del portador JWT para Salesforce](salesforce-setup-jwt-bearer-oauth.md)

# Compatibilidad de AWS Glue con Salesforce
<a name="salesforce-support"></a>

AWS Glue admite Salesforce de la siguiente manera:

**¿Es compatible como origen?**  
Sí. Puede utilizar los trabajos de ETL de AWS Glue para consultar datos de Salesforce.

**¿Es compatible como destino?**  
Sí. Puede usar los trabajos de ETL de AWS Glue para escribir registros en Salesforce.

**Versiones compatibles de la API de Salesforce**  
Las siguientes versiones de la API de Salesforce son compatibles
+ v58.0
+ v59.0
+ v60.0

# Políticas que contienen las operaciones de la API para crear y usar conexiones
<a name="salesforce-configuring-iam-permissions"></a>

En el siguiente ejemplo de la política de IAM se describen los permisos necesarios para crear, administrar y utilizar conexiones de Salesforce con los trabajos de ETL de AWS Glue. Si va a crear un nuevo rol, cree una política que contenga lo siguiente:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "secretsmanager:DescribeSecret",
        "secretsmanager:GetSecretValue",
        "secretsmanager:PutSecretValue",
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

También puede usar las siguientes políticas de IAM para permitir el acceso:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole): da acceso a recursos que precisan diversos procesos de AWS Glue para ejecutarse en su nombre. Entre estos recursos se incluyen AWS Glue, Amazon S3, IAM, CloudWatch Logs y Amazon EC2. Si aplica la convención de nomenclatura en los recursos especificados en esta política, los procesos de AWS Glue tienen los permisos necesarios. Normalmente, esta política se asocia a los roles que se especifican a la hora de definir rastreadores, trabajos y puntos de conexión de desarrollo.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess): otorga acceso total a los recursos de AWS Glue cuando una identidad a la que está asociada la política utiliza la Consola de administración de AWS. Si sigue la convención de nomenclatura para los recursos especificados en esta política, los usuarios dispondrán de todas las funciones de la consola. Esta política se suele adjuntar a los usuarios de la consola AWS Glue.

Si se proporcionan opciones de red al crear una conexión de Salesforce, también debe incluir las siguientes acciones en el rol de IAM:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DeleteNetworkInterface"
      ],
      "Resource": "*"
    }
  ]
}
```

------

 Para las conexiones de Salesforce sin ETL, consulte los [requisitos previos de ETL cero.](https://docs.aws.amazon.com/glue/latest/dg/zero-etl-prerequisites.html) 

 Para las conexiones de Salesforce sin ETL, consulte los [requisitos previos de ETL cero.](https://docs.aws.amazon.com/glue/latest/dg/zero-etl-prerequisites.html) 

# Configuración de Salesforce
<a name="salesforce-configuring"></a>

Antes de poder utilizar AWS Glue para transferir datos hacia o desde Salesforce, debe cumplir estos requisitos:

## Requisitos mínimos
<a name="salesforce-configuring-min-requirements"></a>

Los requisitos mínimos son los siguientes:
+ Debe tener una cuenta de Salesforce.
+ Su cuenta de Salesforce está habilitada para el acceso a la API. El acceso a la API está habilitado de forma predeterminada para las ediciones Enterprise, Unlimited, Developer y Performance.

Si cumple estos requisitos, lo tiene todo listo para conectar AWS Glue a su cuenta de Salesforce. AWS Glue administra los requisitos restantes con la aplicación conectada administrada por AWS.

## La aplicación conectada administrada por AWS para Salesforce
<a name="salesforce-configuring-connected-app"></a>

La aplicación conectada administrada por AWS le permite crear conexiones de Salesforce en menos pasos. En Salesforce, una aplicación conectada es un marco que autoriza a aplicaciones externas, como AWS Glue, a acceder a sus datos de Salesforce mediante OAuth 2.0. Para usar la aplicación conectada administrada por AWS, cree una conexión de Salesforce mediante la consola de AWS Glue. Al configurar la conexión, defina el **Tipo de concesión OAuth** en **Código de autorización** y deje seleccionada la casilla **Utilizar la aplicación de cliente administrada por AWS**.

Al guardar la conexión, se le redirigirá a Salesforce para iniciar sesión y aprobar el acceso de AWS Glue a su cuenta de Salesforce.

## Aplicar el perfil Administrador del sistema
<a name="salesforce-configuring-apply-system-admin-profile"></a>

 En Salesforce, siga los pasos para aplicar el perfil de administrador del sistema: 

1.  En Salesforce, vaya a **Configuración > Aplicaciones conectadas > Uso de OAuth de aplicaciones conectadas**. 

1.  En la lista de aplicaciones conectadas, busque AWS Glue y seleccione **Instalar**. Si es necesario, seleccione **Desbloquear**. 

1.  Vaya a**Configuración > Administrar aplicaciones conectadas y seleccione AWS Glue**. En Políticas de OAuth, seleccione **Los usuarios aprobados por el administrador están preautorizados** y seleccione el perfil **Administrador del sistema**. Esta acción restringe el acceso a AWS Glue únicamente a los usuarios con el perfil Administrador del sistema. 

## Aplicar el perfil Administrador del sistema
<a name="salesforce-configuring-apply-system-admin-profile"></a>

 En Salesforce, siga los pasos para aplicar el perfil de administrador del sistema: 

1.  En Salesforce, vaya a **Configuración > Aplicaciones conectadas > Uso de OAuth de aplicaciones conectadas**. 

1.  En la lista de aplicaciones conectadas, busque AWS Glue y seleccione **Instalar**. Si es necesario, seleccione **Desbloquear**. 

1.  Vaya a**Configuración > Administrar aplicaciones conectadas y seleccione AWS Glue**. En Políticas de OAuth, seleccione **Los usuarios aprobados por el administrador están preautorizados** y seleccione el perfil **Administrador del sistema**. Esta acción restringe el acceso a AWS Glue únicamente a los usuarios con el perfil Administrador del sistema. 

# Configuración de conexiones de Salesforce
<a name="salesforce-configuring-connections"></a>

Para configurar una conexión de Salesforce:

1. En AWS Secrets Manager, cree un secreto con los siguientes detalles:

   1. Para el tipo de concesión JWT\$1TOKEN, el secreto debe contener la clave JWT\$1TOKEN con su valor.

   1. Para el tipo de concesión AuthorizationCode:

      1. En el caso de una aplicación conectada administrada de AWS, es necesario proporcionar un secreto vacío o un secreto con algún valor temporal.

      1. En el caso de una aplicación conectada administrada por el cliente, el secreto debe contener la aplicación conectada de `Consumer Secret` con `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` como la clave.

   1. Nota: Debe crear un secreto para su conexión en AWS Glue.

1. En AWS Glue Glue Studio, cree una conexión en **Conexiones de datos** según los pasos que se indican a continuación:

   1. Al seleccionar un **Tipo de conexión**, seleccione Salesforce.

   1. Proporcione el valor INSTANCE\$1URL de la instancia de Salesforce a la que desea conectarse.

   1. Proporcione el entorno de Salesforce.

   1. Seleccione el rol de AWS IAM que AWS Glue pueda asumir y que tenga permisos para las siguientes acciones:

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Seleccione el tipo de concesión de OAuth2 que desee utilizar para las conexiones. El tipo de concesión determina cómo se comunica AWS Glue con Salesforce para solicitar el acceso a sus datos. Su elección afecta a los requisitos que debe cumplir antes de crear la conexión. Puede elegir uno de estos tipos:
      + **Tipo de concesión JWT\$1BEARER**: este tipo de concesión funciona bien en escenarios de automatización, ya que permite crear un token web JSON (JWT) por adelantado con los permisos de un usuario concreto en la instancia de Salesforce. El creador tiene el control sobre el tiempo de validez del JWT. AWS Glue puede usar el JWT para obtener un token de acceso que se utiliza para llamar a las API de Salesforce.

        Este flujo requiere que el usuario haya creado una aplicación conectada en su instancia de Salesforce que permita emitir tokens de acceso basados en JWT para los usuarios.

        Para obtener información sobre cómo crear una aplicación conectada para el flujo OAuth del portador de JWT, consulte [OAuth 2.0 JWT bearer flow for server-to-server integration](https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_jwt_flow.htm). Para configurar el flujo portador de JWT con la aplicación conectada a Salesforce, consulte [Configuración del flujo OAuth del portador JWT para Salesforce](salesforce-setup-jwt-bearer-oauth.md).
      + **Tipo de concesión AUTHORIZATION\$1CODE**: este tipo de concesión se considera un OAuth “de tres vías”, ya que se basa en redirigir a los usuarios al servidor de autorización externo para autenticar al usuario. Se utiliza para crear conexiones a través de la consola. Se utiliza para crear conexiones a través de la consola de AWS Glue. El usuario que crea una conexión puede utilizar de forma predeterminada una aplicación conectada de AWS Glue (aplicación de AWS Glue administrada por el cliente), en la que no necesita proporcionar ninguna información relacionada con OAuth, excepto la URL de su instancia de Salesforce. La consola de AWS Glue redirigirá al usuario a Salesforce, donde deberá iniciar sesión y permitir a AWS Glue que los permisos solicitados accedan a su instancia de Salesforce.

        Los usuarios aún pueden optar por crear su propia aplicación conectada en Salesforce y proporcionar su propio ID y secreto de cliente al crear conexiones a través de la consola de AWS Glue. En este escenario, se les continuará redirigiendo a Salesforce para iniciar sesión y autorizar a AWS Glue para que acceda a sus recursos.

        Este tipo de concesión da como resultado un token de actualización y un token de acceso. El token de acceso es de corta duración y se puede actualizar automáticamente sin la interacción del usuario mediante el token de actualización.

        Para obtener más información sobre cómo crear una aplicación conectada para el flujo de OAuth con código de autorización, consulte [Configuración del flujo de códigos de autorización de Salesforce](salesforce-setup-authorization-code-flow.md).

   1. Seleccione el elemento `secretName` que desee usar para esta conexión en AWS Glue para guardar los tokens de OAuth 2.0.

   1. Seleccione las opciones de red si quiere usar su red.

1. Conceda el rol de IAM asociado a su permiso de trabajo de AWS Glue para leer `secretName`.

1. Si proporciona opciones de red, conceda también al rol de IAM los siguientes permisos:

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "ec2:CreateNetworkInterface",
           "ec2:DescribeNetworkInterfaces",
           "ec2:DeleteNetworkInterface"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

## Configuración de conexiones de Salesforce con la CLI de AWS
<a name="salesforce-configuring-connections-cli"></a>

Puede crear conexiones de Salesforce mediante la CLI de AWS:

```
aws glue create-connection --connection-input \
"{\"Name\": \"salesforce-conn1\",\"ConnectionType\": \"SALESFORCE\",\"ConnectionProperties\": {\"ROLE_ARN\": \"arn:aws:iam::123456789012:role/glue-role\",\"INSTANCE_URL\": \"https://example.my.salesforce.com\"},\"ValidateCredentials\": true,\"AuthenticationConfiguration\": {\"AuthenticationType\": \"OAUTH2\",\"SecretArn\": \"arn:aws:secretsmanager:us-east-1:123456789012:secret:salesforce-conn1-secret-IAmcdk\",\"OAuth2Properties\": {\"OAuth2GrantType\": \"JWT_BEARER\",\"TokenUrl\": \"https://login.salesforce.com/services/oauth2/token\"}}}" \
--endpoint-url https://glue.us-east-1.amazonaws.com \
--region us-east-1
```

# Lectura desde Salesforce
<a name="salesforce-reading-from-entities"></a>

**Requisito previo**

Un objeto de Salesforce del que le gustaría leer. Necesitará el nombre del objeto, como `Account`, `Case` o `Opportunity`.

**Ejemplo:**

```
salesforce_read = glueContext.create_dynamic_frame.from_options(
    connection_type="salesforce",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "Account",
        "API_VERSION": "v60.0"
    }
)
```

## Consultas de particionamiento
<a name="salesforce-reading-partitioning-queries"></a>

Puede proporcionar las opciones adicionales de Spark `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` y `NUM_PARTITIONS` si quiere utilizar la simultaneidad en Spark. Con estos parámetros, la consulta original se dividiría en un número `NUM_PARTITIONS` de subconsultas que las tareas de Spark pueden ejecutar simultáneamente.
+ `PARTITION_FIELD`: el nombre del campo que se utilizará para particionar la consulta.
+ `LOWER_BOUND`: un valor de límite inferior **inclusivo** del campo de partición elegido.

  Para los campos Marca de tiempo o Fecha, el conector acepta el formato de marca de tiempo de Spark que se usa en las consultas de Spark SQL.

  Ejemplos de valores válidos:

  ```
  "TIMESTAMP \"1707256978123\""
  "TIMESTAMP '2018-01-01 00:00:00.000 UTC'"
  "TIMESTAMP \"2018-01-01 00:00:00 Pacific/Tahiti\"" 
  "TIMESTAMP \"2018-01-01 00:00:00\""
  "TIMESTAMP \"-123456789\" Pacific/Tahiti"
  "TIMESTAMP \"1702600882\""
  ```
+ `UPPER_BOUND`: un valor límite superior **exclusivo** del campo de partición elegido.
+ `NUM_PARTITIONS`: el número de particiones.
+  `TRANSFER_MODE`: admite dos modos: `SYNC` y `ASYNC`. El valor predeterminado es `SYNC`. Cuando se establece en `ASYNC`, se utilizará Bulk API 2.0 Query para el procesamiento. 

Ejemplo:

```
salesforce_read = glueContext.create_dynamic_frame.from_options(
    connection_type="salesforce",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "Account",
        "API_VERSION": "v60.0",
        "PARTITION_FIELD": "SystemModstamp",
        "LOWER_BOUND": "TIMESTAMP '2021-01-01 00:00:00 Pacific/Tahiti'",
        "UPPER_BOUND": "TIMESTAMP '2023-01-10 00:00:00 Pacific/Tahiti'",
        "NUM_PARTITIONS": "10",
        "TRANSFER_MODE": "ASYNC" 
    }
)
```

## Opción FILTER\$1PREDICATE
<a name="salesforce-filter-predicate"></a>

**FILTER\$1PREDICATE**: es un parámetro opcional. Esta opción se utiliza para el filtro de consultas.

Ejemplos de **FILTER\$1PREDICATE**:

```
     Case 1: FILTER_PREDICATE with single criterion
     Examples: 	
       LastModifiedDate >= TIMESTAMP '2025-04-01 00:00:00 Pacific/Tahiti'
       LastModifiedDate <= TIMESTAMP "2025-04-01 00:00:00"
       LastModifiedDate >= TIMESTAMP '2018-01-01 00:00:00.000 UTC'
       LastModifiedDate <= TIMESTAMP "-123456789 Pacific/Tahiti"
       LastModifiedDate <= TIMESTAMP "1702600882"

     Case 2: FILTER_PREDICATE with multiple criteria
     Examples: 
       LastModifiedDate >= TIMESTAMP '2025-04-01 00:00:00 Pacific/Tahiti' AND Id = "0012w00001CotGiAAJ"
       LastModifiedDate >= TIMESTAMP "1702600882" AND Id = "001gL000002i26MQAQ"

     Case 3: FILTER_PREDICATE single criterion with LIMIT
     Examples: 
       LastModifiedDate >= TIMESTAMP "1702600882" LIMIT 2

     Case 4: FILTER_PREDICATE with LIMIT
     Examples: 
       LIMIT 2
```

# Escritura en Salesforce
<a name="salesforce-writing-to"></a>

**Requisitos previos**

Un objeto de Salesforce en el que le gustaría escribir. Necesitará el nombre del objeto, como `Account`, `Case` o `Opportunity`.

El conector de Salesforce admite cuatro operaciones de escritura:
+ INSERT
+ UPSERT
+ UPDATE
+ DELETE

Al utilizar la operación de escritura `UPSERT`, debe proporcionar la opción `ID_FIELD_NAMES` para especificar el campo de ID externo de los registros.

 También se pueden agregar opciones de conexión: 
+  `TRANSFER_MODE`: admite dos modos: `SYNC` y `ASYNC`. El valor predeterminado es `SYNC`. Cuando se establece en `ASYNC`, se utilizará Bulk API 2.0 Ingest para el procesamiento. 
+  `FAIL_ON_FIRST_ERROR`: el valor predeterminado es `FALSE`, lo que significa que el trabajo de AWS Glue continuará procesando todos los datos incluso si hay algunos registros de escritura con error. Cuando se establece en `TRUE`, el trabajo de AWS Glue presentará fallas si hay algún registro de escritura con error y no continuará el procesamiento. 

**Ejemplo**

```
salesforce_write = glueContext.write_dynamic_frame.from_options(
    frame=frameToWrite,
    connection_type="salesforce",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "Account",
        "API_VERSION": "v60.0",
        "WRITE_OPERATION": "INSERT",
        "TRANSFER_MODE": "ASYNC",
        "FAIL_ON_FIRST_ERROR": "true"
    }
)
```

# Opciones de conexión de Salesforce
<a name="salesforce-connection-options"></a>

A continuación, encontrará las opciones de conexión que se admiten en el conector de Salesforce:
+ `ENTITY_NAME`(cadena): (obligatorio) se utiliza para leer y escribir. El nombre de su objeto en Salesforce.
+ `API_VERSION`(cadena): (obligatorio) se utiliza para leer y escribir. Versión de la API de REST de Salesforce que desea utilizar.
+ `SELECTED_FIELDS`(lista<Cadena>): predeterminado: empty(SELECT \$1). Se usa para leer. Columnas que desee seleccionar para el objeto.
+ `FILTER_PREDICATE`(cadena): predeterminado: vacío. Se usa para leer. Debe estar en el formato de Spark SQL.

  Al proporcionar un predicado de filtro, solo el operador `AND` es compatible. Otros operadores, como `OR` y `IN` no son compatibles actualmente.
+ `QUERY`(cadena): predeterminado: vacío. Se usa para leer. Consulta completa de Spark SQL.
+ `PARTITION_FIELD`(cadena): se usa para leer. Campo que se utilizará para particionar la consulta.
+ `LOWER_BOUND`(cadena): se usa para leer. Un valor de límite inferior inclusivo del campo de partición elegido.
+ `UPPER_BOUND`(cadena): se usa para leer. Un valor límite superior exclusivo del campo de partición elegido. 
+ `NUM_PARTITIONS`(entero): predeterminado: 1. Se usa para leer. Número de particiones para leer.
+ `IMPORT_DELETED_RECORDS`(cadena): predeterminado: FALSO. Se usa para leer. Para obtener los registros eliminados durante la consulta.
+ `WRITE_OPERATION`(cadena): predeterminado: INSERT. Se utiliza para escribir. El valor debe ser INSERT, UPDATE, UPSERT, DELETE.
+ `ID_FIELD_NAMES`(cadena): predeterminado: nulo. Necesario para UPDATE y UPSERT.

# Limitaciones del conector de Salesforce
<a name="salesforce-connector-limitations"></a>

Las siguientes son limitaciones para el conector de Salesforce:
+ Solo admitimos Spark SQL; Salesforce SOQL no es compatible.
+ No se admiten los marcadores de trabajo.
+ Todos los nombres de campo de Salesforce distinguen entre mayúsculas y minúsculas. Al escribir en Salesforce, los datos deben coincidir con las mayúsculas y minúsculas de los campos definidos en Salesforce.

# Configuración del flujo de códigos de autorización de Salesforce
<a name="salesforce-setup-authorization-code-flow"></a>

Consulte la documentación pública de Salesforce para habilitar el flujo de códigos de autorización de OAuth 2.0.

Para configurar la aplicación conectada:

1. Active la casilla **Habilitar la configuración de OAuth**.

1. En el campo de texto **URL de devolución de llamada**, introduzca una o más URL de redireccionamiento para AWS Glue.

   Las URL de redireccionamiento tienen el formato siguiente:

   https://*region*.console.aws.amazon.com/gluestudio/oauth

   En esta URL, la *región* es el código de la región AWS en la que se utiliza AWS Glue para transferir datos desde Salesforce. Por ejemplo, el código de la región del Este de EE. UU. (Norte de Virginia) es `us-east-1`. Para esa región, la URL es la siguiente:

   https://us-east-1.console.aws.amazon.com/gluestudio/oauth

   Para las regiones de AWS que admite AWS Glue, consulte [Cuotas y puntos de conexión de AWS Glue](https://docs.aws.amazon.com/general/latest/gr/glue.html) en la *Referencia general de AWS*.

1. Active la casilla **Solicitar secreto para el flujo del servidor web**.

1. En la lista **Ámbitos de OAuth disponibles**, añada los siguientes ámbitos:
   + Administración de los datos de los usuarios a través de las API (api)
   + Acceso a permisos personalizados (custom\$1permissions)
   + Acceso al servicio de URL de identidad (ID, perfil, correo electrónico, dirección, teléfono)
   + Acceso a los identificadores de usuario únicos (openid)
   + Realización de solicitudes en cualquier momento (refresh\$1token, offline\$1access)

1. Establezca la política de token de actualización para la aplicación conectada, de forma que el **token de actualización sea válido hasta que se revoque**. De lo contrario, los trabajos devolverán un error cuando el token de actualización caduque. Para obtener más información sobre cómo comprobar y editar la política de token de actualización, consulte [Manage OAuth Access Policies for a Connected App](https://help.salesforce.com/articleView?id=connected_app_manage_oauth.htm) en la documentación de Salesforce.

# Configuración del flujo OAuth del portador JWT para Salesforce
<a name="salesforce-setup-jwt-bearer-oauth"></a>

Consulte la documentación pública de Salesforce para activar la integración de servidor a servidor con los [Tokens web JSON de OAuth 2.0](https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_jwt_flow.htm).

Una vez que haya creado un JWT y configurado la aplicación conectada de forma adecuada en Salesforce, podrá crear una nueva conexión de Salesforce con la clave `JWT_TOKEN` establecida en el Secreto de Secrets Manager. Establezca el tipo de concesión de OAuth en **Token del portador de JWT** al crear la conexión.