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

# Integración con Genesys

> Conecta Jelou con Genesys para gestionar conversaciones y habilitar la interoperabilidad entre ambas plataformas.

Jelou integra los canales de comunicación con Genesys, permitiendo a los usuarios:

* Gestionar conversaciones desde Genesys utilizando los canales de comunicación conectados en Jelou.
* Transferir conversaciones y contexto de interacción entre Jelou y Genesys para garantizar una atención continua y eficiente.
* Escalar conversaciones hacia agentes de Genesys cuando sea necesario.
* Centralizar la gestión de conversaciones en un ecosistema integrado entre ambas plataformas.

## Requisitos previos

Para utilizar la integración con Genesys, necesitas:

* Una cuenta **Enterprise** activa en Jelou.
* El nodo de **Genesys** habilitado en la cuenta.
* Una cuenta activa de **Genesys Cloud** con permisos administrativos.
* Un cliente **OAuth** con permisos para consumir las APIs de Genesys Cloud.
* Los canales y flujos que participarán en la interoperabilidad previamente definidos.

***

## Instala la aplicación

<Steps>
  <Step title="Ingresar al módulo Brain">
    Inicia sesión en Jelou. Dirígete al módulo **Brain** y selecciona la sección **Canvas**.

    <Frame caption="Canvas del módulo Brain">
      <img src="https://mintcdn.com/jelouai/z8zcmRYANDNTfItb/assets/images/connect/genesys/canvas-brain.png?fit=max&auto=format&n=z8zcmRYANDNTfItb&q=85&s=bb18fb557efb8b17210c948e84d072a0" alt="Canvas en Brain" width="1024" height="483" data-path="assets/images/connect/genesys/canvas-brain.png" />
    </Frame>
  </Step>

  <Step title="Crear un flujo y agregar el nodo de Genesys">
    Dentro del Canvas, crea un nuevo flujo según tu necesidad. Para este ejemplo:

    1. Agrega un **nodo de texto** y configura un mensaje de bienvenida para el canal.
    2. Desde la barra lateral de nodos, arrastra el **nodo de Genesys** hacia el flujo.

    <Info>
      Se recomienda agregar:

      * Un mensaje de confirmación para transferencias exitosas.
      * Un mensaje de manejo de errores en caso de falla de integración.
    </Info>

    <Frame caption="Nodo Genesys en Brain">
      <img src="https://mintcdn.com/jelouai/z8zcmRYANDNTfItb/assets/images/connect/genesys/nodo-en-brain.png?fit=max&auto=format&n=z8zcmRYANDNTfItb&q=85&s=2cf6b51174afb8ce4dc4586384ad5b78" alt="Nodo Genesys en Brain" width="1024" height="390" data-path="assets/images/connect/genesys/nodo-en-brain.png" />
    </Frame>
  </Step>

  <Step title="Configurar los roles en Genesys Cloud">
    Antes de configurar la integración, valida que existan los roles necesarios para el cliente OAuth.

    Ruta: **Menu > User Management > Roles and Permissions**

    Los roles permitirán que el cliente OAuth tenga acceso a los recursos y APIs utilizados por la integración.

    <Frame caption="Roles configurados en Genesys Cloud">
      <img src="https://mintcdn.com/jelouai/pL6riJBmPO7zYf92/assets/images/connect/genesys/roles-3x.png?fit=max&auto=format&n=pL6riJBmPO7zYf92&q=85&s=4330f01d009d9b86c1dd59edd7cfbb8d" alt="Roles en Genesys Cloud" width="3072" height="477" data-path="assets/images/connect/genesys/roles-3x.png" />
    </Frame>

    Selecciona el rol correspondiente para revisar los permisos habilitados.

    Ruta: **Menu > User Management > Roles and Permissions > \[Rol] > Edit Role**

    <Info>
      El rol **Developer** puede utilizarse con los permisos predeterminados de Genesys Cloud.
    </Info>

    <Frame caption="Detalle de permisos del rol">
      <img src="https://mintcdn.com/jelouai/pL6riJBmPO7zYf92/assets/images/connect/genesys/permisos-rol-3x.png?fit=max&auto=format&n=pL6riJBmPO7zYf92&q=85&s=437feb6c685aba6f6819346012443a67" alt="Permisos del rol en Genesys Cloud" width="3072" height="738" data-path="assets/images/connect/genesys/permisos-rol-3x.png" />
    </Frame>
  </Step>

  <Step title="Crear el cliente OAuth">
    Dirígete a: **Menu > IT and Integrations > OAuth**

    Crea un cliente OAuth que permita autenticar el middleware o servicio externo encargado de la interoperabilidad con Genesys Cloud.

    <Frame caption="Cliente OAuth">
      <img src="https://mintcdn.com/jelouai/pL6riJBmPO7zYf92/assets/images/connect/genesys/cliente-oauth-3x.png?fit=max&auto=format&n=pL6riJBmPO7zYf92&q=85&s=14132167eb9f24c132e8f5a3e9fa87ff" alt="Cliente OAuth en Genesys Cloud" width="3072" height="612" data-path="assets/images/connect/genesys/cliente-oauth-3x.png" />
    </Frame>

    Una vez creado, abre la aplicación para revisar su configuración.

    Ruta: **Menu > IT and Integrations > OAuth > \[Cliente OAuth] > Edit Application**

    Verifica la siguiente información:

    * Nombre de la aplicación.
    * Tipo de autenticación.
    * Grant Type.
    * Configuración general.

    <Frame caption="Configuración del cliente OAuth">
      <img src="https://mintcdn.com/jelouai/pL6riJBmPO7zYf92/assets/images/connect/genesys/configuracion-oauth-3x.png?fit=max&auto=format&n=pL6riJBmPO7zYf92&q=85&s=2cb251bf9ea3f46f29ee9092db02f3bc" alt="Configuración del cliente OAuth" width="3072" height="1071" data-path="assets/images/connect/genesys/configuracion-oauth-3x.png" />
    </Frame>
  </Step>

  <Step title="Asignar roles al cliente OAuth">
    Selecciona la pestaña **Roles** del cliente OAuth.

    Ruta: **Menu > IT and Integrations > OAuth > \[Cliente OAuth] > Roles**

    Asigna los roles previamente configurados para que el cliente OAuth pueda consumir las APIs requeridas por la integración.

    <Warning>
      Verifica que las divisiones asociadas a los roles correspondan a todas las interacciones que utilizará el conector. Una configuración incorrecta puede generar errores de permisos durante la operación.
    </Warning>

    <Frame caption="Roles asignados al cliente OAuth">
      <img src="https://mintcdn.com/jelouai/pL6riJBmPO7zYf92/assets/images/connect/genesys/roles-oauth-3x.png?fit=max&auto=format&n=pL6riJBmPO7zYf92&q=85&s=2c55a8d052016e1bbbcc73befc064d38" alt="Roles asignados al cliente OAuth" width="3072" height="555" data-path="assets/images/connect/genesys/roles-oauth-3x.png" />
    </Frame>
  </Step>

  <Step title="Crear la integración Open Messaging">
    Dirígete a: **Menu > Digital and Telephony > Message > Platform Integrations**

    Crea una integración de tipo **Open Messaging** para permitir el intercambio de mensajes entre Genesys Cloud y Jelou.

    <Frame caption="Integración Open Messaging">
      <img src="https://mintcdn.com/jelouai/pL6riJBmPO7zYf92/assets/images/connect/genesys/open-messaging-3x.png?fit=max&auto=format&n=pL6riJBmPO7zYf92&q=85&s=20cf5717016e6207e0cc74eca0a45e84" alt="Integración Open Messaging" width="3072" height="513" data-path="assets/images/connect/genesys/open-messaging-3x.png" />
    </Frame>

    Abre la integración creada para revisar su configuración.

    <Frame caption="Detalle de la integración Open Messaging">
      <img src="https://mintcdn.com/jelouai/pL6riJBmPO7zYf92/assets/images/connect/genesys/detalle-open-messaging-3x.png?fit=max&auto=format&n=pL6riJBmPO7zYf92&q=85&s=c5b09d1e082c3cf2e528da3dc4ef52b2" alt="Detalle de Open Messaging" width="3072" height="909" data-path="assets/images/connect/genesys/detalle-open-messaging-3x.png" />
    </Frame>
  </Step>

  <Step title="Obtener el Integration ID">
    Una vez creada la integración Open Messaging, identifica el **Integration ID**.

    Este identificador corresponde al valor único de la integración y será utilizado posteriormente para configurar el Trigger.

    <Info>
      El **Integration ID** se encuentra al final de la URL cuando accedes al detalle de la integración Open Messaging.
    </Info>
  </Step>

  <Step title="Crear el Trigger">
    Dirígete a: **Menu > Orchestration > Triggers**

    Crea un Trigger que escuche los eventos asociados a las conversaciones de Open Messaging. Este Trigger será el encargado de ejecutar automáticamente el Workflow cuando ocurra el evento configurado.

    <Frame caption="Trigger configurado">
      <img src="https://mintcdn.com/jelouai/pL6riJBmPO7zYf92/assets/images/connect/genesys/trigger-3x.png?fit=max&auto=format&n=pL6riJBmPO7zYf92&q=85&s=528ef2b4b16adf74c920e6ed967d94c9" alt="Trigger configurado en Genesys" width="3072" height="540" data-path="assets/images/connect/genesys/trigger-3x.png" />
    </Frame>
  </Step>

  <Step title="Configurar la condición del Trigger">
    Abre el Trigger creado y configura una condición utilizando el **Integration ID** obtenido anteriormente.

    Esta condición garantiza que únicamente se ejecuten los eventos correspondientes a la integración configurada.

    <Frame caption="Condición del Trigger">
      <img src="https://mintcdn.com/jelouai/pL6riJBmPO7zYf92/assets/images/connect/genesys/condicion-trigger-3x.png?fit=max&auto=format&n=pL6riJBmPO7zYf92&q=85&s=fe64690d66bba0321dc859d5a8f61e7d" alt="Condición del Trigger" width="3072" height="1530" data-path="assets/images/connect/genesys/condicion-trigger-3x.png" />
    </Frame>

    <Info>
      El Trigger debe ejecutar el Workflow de Architect encargado de notificar a Jelou que la atención en Genesys finalizó.
    </Info>
  </Step>

  <Step title="Crear el Workflow en Architect">
    Dirígete a: **Menu > Orchestration > Architect > Flows**

    Crea un Workflow que reciba la información enviada por el Trigger. Este Workflow será responsable de procesar los datos de la conversación y ejecutar el Data Action que notifica la finalización a Jelou.

    <Frame caption="Workflow en Architect">
      <img src="https://mintcdn.com/jelouai/pL6riJBmPO7zYf92/assets/images/connect/genesys/workflow-architect-3x.png?fit=max&auto=format&n=pL6riJBmPO7zYf92&q=85&s=5b30101a7aac0961d2103306023d30d9" alt="Workflow en Architect" width="3072" height="489" data-path="assets/images/connect/genesys/workflow-architect-3x.png" />
    </Frame>
  </Step>

  <Step title="Configurar las variables del Workflow">
    Dentro del Workflow, configura las variables que recibirán la información enviada desde el Trigger.

    Estas variables permitirán identificar la conversación y construir la solicitud hacia el Data Action.

    <Frame caption="Variables del Workflow">
      <img src="https://mintcdn.com/jelouai/pL6riJBmPO7zYf92/assets/images/connect/genesys/variables-workflow-3x.png?fit=max&auto=format&n=pL6riJBmPO7zYf92&q=85&s=6615f223d6557de085d0549416392b1a" alt="Variables del Workflow" width="3072" height="1068" data-path="assets/images/connect/genesys/variables-workflow-3x.png" />
    </Frame>
  </Step>

  <Step title="Invocar el Data Action">
    Dentro del Workflow, agrega una tarea para ejecutar el **Data Action** encargado de notificar a Jelou que la atención en Genesys terminó.

    <Frame caption="Invocación del Data Action">
      <img src="https://mintcdn.com/jelouai/pL6riJBmPO7zYf92/assets/images/connect/genesys/invocar-data-action-3x.png?fit=max&auto=format&n=pL6riJBmPO7zYf92&q=85&s=96cd793e8d5bd0c0d5f187000c2bcbf0" alt="Invocación del Data Action" width="3072" height="1383" data-path="assets/images/connect/genesys/invocar-data-action-3x.png" />
    </Frame>
  </Step>

  <Step title="Crear el Data Action">
    Dirígete a: **Menu > IT and Integrations > Data Actions**

    Crea un nuevo Data Action que será utilizado por el Workflow.

    <Frame caption="Data Action">
      <img src="https://mintcdn.com/jelouai/pL6riJBmPO7zYf92/assets/images/connect/genesys/data-action-3x.png?fit=max&auto=format&n=pL6riJBmPO7zYf92&q=85&s=945b5e8874150b373064c752ccb8df48" alt="Data Action en Genesys" width="3072" height="435" data-path="assets/images/connect/genesys/data-action-3x.png" />
    </Frame>
  </Step>

  <Step title="Configurar el request del Data Action">
    Abre el Data Action creado y configura la petición hacia el webhook de Jelou.

    Este Data Action notifica a Jelou que la atención en Genesys Cloud terminó. Al recibirlo, Jelou retoma el control y el canal continúa atendiendo al usuario final, sin que este perciba el cambio.

    Ruta: **Menu > IT and Integrations > Data Actions > \[Data Action] > Configuration**

    **Método y endpoint**

    | Campo                | Valor                                         |
    | -------------------- | --------------------------------------------- |
    | Método HTTP          | `POST`                                        |
    | Request URL Template | `https://chatbot.jelou.ai/v1/genesys/webhook` |

    **Headers**

    | Header         | Valor              |
    | -------------- | ------------------ |
    | `Content-Type` | `application/json` |

    **Body del request**

    El webhook espera un evento de Open Messaging con la siguiente estructura:

    ```json theme={null}
    {
      "id": "EVENT_ID",
      "type": "Event",
      "direction": "Outbound",
      "conversationId": "CONVERSATION_ID",
      "channel": {
        "from": { "id": "FROM_ID" },
        "to": { "id": "CUSTOMER_ID", "idType": "Phone" }
      },
      "events": [
        { "eventType": "CustomerEnd" }
      ]
    }
    ```

    **Descripción de los campos**

    | Campo                | Tipo   | Descripción                                                                                                                |
    | -------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------- |
    | `id`                 | string | Identificador único del evento enviado.                                                                                    |
    | `type`               | string | Tipo de payload. Para notificar la finalización siempre es `Event`.                                                        |
    | `direction`          | string | Dirección del evento respecto a Genesys Cloud. Debe ser `Outbound` (sale de Genesys hacia Jelou).                          |
    | `conversationId`     | string | Identificador de la conversación en Genesys Cloud. Es el valor con el que Jelou identifica la transferencia activa.        |
    | `channel.from.id`    | string | Identificador del participante de Genesys que emite el evento (por ejemplo, el agente o el flujo de Architect).            |
    | `channel.to.id`      | string | Identificador del usuario final en el canal. En WhatsApp es el número de teléfono en formato E.164.                        |
    | `channel.to.idType`  | string | Tipo de identificador del usuario final. Para canales de WhatsApp usa `Phone`.                                             |
    | `events[].eventType` | string | Evento a notificar. Usa `CustomerEnd` para indicar que la atención en Genesys Cloud finalizó y el control vuelve al canal. |

    <Note>
      El campo `direction` se nombra desde el punto de vista de Genesys Cloud: `Outbound` significa que el evento **sale de Genesys** hacia Jelou. El webhook rechaza los payloads marcados como `Inbound`.
    </Note>

    **Mapeo de variables**

    En la sección **Input Contract** declara las variables que recibirá el Data Action desde el Workflow y referéncialas en el body mediante la sintaxis `${input.nombreVariable}`. Los nombres del ejemplo son ilustrativos: usa los que hayas definido en tu Workflow.

    ```json theme={null}
    {
      "id": "${input.eventId}",
      "type": "Event",
      "direction": "Outbound",
      "conversationId": "${input.conversationId}",
      "channel": {
        "from": { "id": "${input.fromId}" },
        "to": { "id": "${input.customerId}", "idType": "Phone" }
      },
      "events": [
        { "eventType": "CustomerEnd" }
      ]
    }
    ```

    <Warning>
      El `conversationId` debe ser el mismo que Genesys Cloud asignó a la conversación transferida desde Jelou. Si no corresponde a una transferencia activa, Jelou no podrá identificarla y el control no se devolverá al canal.
    </Warning>

    <Frame caption="Configuración del Data Action">
      <img src="https://mintcdn.com/jelouai/pL6riJBmPO7zYf92/assets/images/connect/genesys/configuracion-data-action-3x.png?fit=max&auto=format&n=pL6riJBmPO7zYf92&q=85&s=c036c81311ad8d39b7f89446e8c3deca" alt="Configuración del Data Action" width="3072" height="2010" data-path="assets/images/connect/genesys/configuracion-data-action-3x.png" />
    </Frame>
  </Step>
</Steps>

***

## Configura la aplicación

Después de completar la configuración en Genesys Cloud:

<Steps>
  <Step title="Regresar al módulo Brain">
    Regresa al módulo **Brain** y selecciona el nodo de **Genesys** dentro del flujo.
  </Step>

  <Step title="Configurar la interoperabilidad">
    Completa la configuración del nodo con los parámetros correspondientes de la integración.

    Verifica que la conexión con Genesys Cloud sea exitosa antes de continuar.
  </Step>

  <Step title="Guardar y publicar">
    Cuando la configuración esté lista, **guarda y publica** el flujo.
  </Step>
</Steps>

***

## Usa la aplicación

Una vez configurada la integración:

* Las conversaciones podrán transferirse automáticamente entre Jelou y Genesys Cloud.
* Los canales creados en Jelou automatizarán la atención inicial de los clientes.
* Los agentes podrán continuar la conversación directamente desde Genesys Cloud.
* Cuando la atención finalice en Genesys Cloud, el Trigger y el Workflow notificarán a Jelou y el canal retomará la conversación con el usuario final.
* Los eventos de conversación serán procesados automáticamente mediante Open Messaging, Trigger, Workflow y Data Actions.

<Info>
  No se requieren acciones manuales adicionales una vez publicada la automatización.
</Info>
