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

# Workflows

> Consulta los workflows de tu bot y redirige usuarios a un flujo específico

Los Workflows son pasos conversacionales que definen el comportamiento del bot. Puedes consultar los workflows disponibles en tu bot y redirigir usuarios a un flujo específico.

***

## Obtener Workflows

Consulta todos los workflows disponibles en tu bot.

```
GET https://api.jelou.ai/v1/bots/{botId}/skills
```

### Parámetros de ruta

| Campo     | Ubicación | Tipo   | Requerido | Descripción                  |
| --------- | --------- | ------ | --------- | ---------------------------- |
| **botId** | Path      | string | Sí        | Identificador único del bot. |

### Ejemplo de solicitud

```bash theme={null}
curl --request GET \
  --url 'https://api.jelou.ai/v1/bots/BOT_ID/skills' \
  --header 'Authorization: Basic {{Base64EncodedUsername:Password}}'
```

### Respuestas

<AccordionGroup>
  <Accordion title="200 - Respuesta exitosa">
    ```json theme={null}
    {
      "message": ["Skills retrieved successfully!"],
      "statusMessage": "success",
      "status": 1,
      "data": [
        {
          "id": 1,
          "name": "Skill Principal",
          "description": "Skill de bienvenida",
          "type": "BRAIN",
          "createdAt": "2024-10-24T11:18:05.000Z",
          "updatedAt": "2024-10-24T11:18:05.000Z",
          "state": true,
          "default": true
        },
        {
          "id": 2,
          "name": "Skill Ventas",
          "description": "Flujo de ventas",
          "type": "BRAIN",
          "createdAt": "2024-10-24T11:13:32.000Z",
          "updatedAt": "2024-10-24T11:17:44.000Z",
          "state": true,
          "default": false
        }
      ]
    }
    ```
  </Accordion>

  <Accordion title="401 - Unauthorized">
    ```json theme={null}
    {
      "message": "Authentication failed"
    }
    ```
  </Accordion>

  <Accordion title="404 - Not Found">
    ```json theme={null}
    {
      "message": ["Bot not found"],
      "status": "failed"
    }
    ```
  </Accordion>
</AccordionGroup>

### Detalle de la respuesta

| Propiedad       | Tipo    | Descripción                                                                   |
| --------------- | ------- | ----------------------------------------------------------------------------- |
| **id**          | integer | ID del flujo. Este ID debe usarse para configurar redirecciones.              |
| **name**        | string  | Nombre del flujo.                                                             |
| **description** | string  | Descripción del flujo.                                                        |
| **type**        | string  | Tipo de flujo.                                                                |
| **state**       | boolean | Estado del flujo. Solo los workflows con estado `true` pueden ser utilizadas. |
| **default**     | boolean | Indica si el flujo está seleccionada como predeterminada para el bot.         |
| **createdAt**   | date    | Fecha de creación del flujo.                                                  |
| **updatedAt**   | date    | Fecha de última actualización del flujo.                                      |

***

## Configurar Flujo de usuario

Redirige a un usuario a un flujo específico dentro del flujo conversacional.

```
POST https://api.jelou.ai/v1/bots/{botId}/users/{userId}/skill/{skillId}
```

### Requisitos

* El usuario debe tener una sesión activa.

### Parámetros de ruta

| Campo       | Ubicación | Tipo   | Requerido | Descripción                                                |
| ----------- | --------- | ------ | --------- | ---------------------------------------------------------- |
| **botId**   | Path      | string | Sí        | Identificador único del bot.                               |
| **userId**  | Path      | string | Sí        | Identificador único del usuario.                           |
| **skillId** | Path      | string | Sí        | Identificador del flujo al que será redirigido el usuario. |

### Cuerpo de la solicitud

| Campo            | Ubicación | Tipo   | Requerido | Descripción                                                                         |
| ---------------- | --------- | ------ | --------- | ----------------------------------------------------------------------------------- |
| **memoryParams** | Body      | object | No        | Parámetros opcionales que se pueden inyectar y utilizar posteriormente en el flujo. |

### Ejemplo de solicitud

```bash theme={null}
curl --request POST \
  --url 'https://api.jelou.ai/v1/bots/BOT_ID/users/USER_ID/skill/SKILL_ID' \
  --header 'Authorization: Basic {{Base64EncodedUsername:Password}}' \
  --header 'Content-Type: application/json' \
  --data '{
    "memoryParams": {
      "test": 1
    }
  }'
```

### Respuestas

<AccordionGroup>
  <Accordion title="200 - Respuesta exitosa">
    ```json theme={null}
    {
      "message": "Skill set successfully",
      "status": "success"
    }
    ```
  </Accordion>

  <Accordion title="400 - Bad Request">
    ```json theme={null}
    {
      "message": "Invalid request",
      "status": "failed"
    }
    ```
  </Accordion>

  <Accordion title="401 - Unauthorized">
    ```json theme={null}
    {
      "message": "Authentication failed"
    }
    ```
  </Accordion>

  <Accordion title="404 - Not Found">
    ```json theme={null}
    {
      "message": "User or Skill not found",
      "status": "failed"
    }
    ```
  </Accordion>
</AccordionGroup>
