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

> Consulte os workflows do seu bot e redirecione usuários para um fluxo específico

Workflows são fluxos conversacionais que definem o comportamento do bot. Você pode consultar os workflows disponíveis no seu bot e redirecionar usuários para um fluxo específico.

***

## Obter Workflows

Consulte todas os workflows disponíveis no seu bot.

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

### Parâmetros de Path

| Campo     | Localização | Tipo   | Obrigatório | Descrição                   |
| --------- | ----------- | ------ | ----------- | --------------------------- |
| **botId** | Path        | string | Sim         | Identificador único do bot. |

### Exemplo de Requisição

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

### Respostas

<AccordionGroup>
  <Accordion title="200 - Resposta bem-sucedida">
    ```json theme={null}
    {
      "message": ["Skills retrieved successfully!"],
      "statusMessage": "success",
      "status": 1,
      "data": [
        {
          "id": 1,
          "name": "Main Skill",
          "description": "Welcome skill",
          "type": "BRAIN",
          "createdAt": "2024-10-24T11:18:05.000Z",
          "updatedAt": "2024-10-24T11:18:05.000Z",
          "state": true,
          "default": true
        },
        {
          "id": 2,
          "name": "Sales Skill",
          "description": "Sales flow",
          "type": "BRAIN",
          "createdAt": "2024-10-24T11:13:32.000Z",
          "updatedAt": "2024-10-24T11:17:44.000Z",
          "state": true,
          "default": false
        }
      ]
    }
    ```
  </Accordion>

  <Accordion title="401 - Não Autorizado">
    ```json theme={null}
    {
      "message": "Authentication failed"
    }
    ```
  </Accordion>

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

### Detalhes da Resposta

| Propriedade     | Tipo    | Descrição                                                              |
| --------------- | ------- | ---------------------------------------------------------------------- |
| **id**          | integer | ID do fluxo. Este ID deve ser usado para configurar redirecionamentos. |
| **name**        | string  | Nome do fluxo.                                                         |
| **description** | string  | Descrição do fluxo.                                                    |
| **type**        | string  | Tipo do fluxo.                                                         |
| **state**       | boolean | Estado do fluxo. Somente workflows com estado `true` podem ser usadas. |
| **default**     | boolean | Indica se o fluxo está selecionada como padrão para o bot.             |
| **createdAt**   | date    | Data de criação do fluxo.                                              |
| **updatedAt**   | date    | Data da última atualização do fluxo.                                   |

***

## Configurar Fluxo do Usuário

Redirecione um usuário para um fluxo específico dentro do fluxo conversacional.

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

### Requisitos

* O usuário deve ter uma sessão ativa.

### Parâmetros de Path

| Campo       | Localização | Tipo   | Obrigatório | Descrição                                                        |
| ----------- | ----------- | ------ | ----------- | ---------------------------------------------------------------- |
| **botId**   | Path        | string | Sim         | Identificador único do bot.                                      |
| **userId**  | Path        | string | Sim         | Identificador único do usuário.                                  |
| **skillId** | Path        | string | Sim         | Identificador do fluxo para a qual o usuário será redirecionado. |

### Corpo da Requisição

| Campo            | Localização | Tipo   | Obrigatório | Descrição                                                                      |
| ---------------- | ----------- | ------ | ----------- | ------------------------------------------------------------------------------ |
| **memoryParams** | Body        | object | Não         | Parâmetros opcionais que podem ser injetados e usados posteriormente no fluxo. |

### Exemplo de Requisição

```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
    }
  }'
```

### Respostas

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

  <Accordion title="400 - Requisição Inválida">
    ```json theme={null}
    {
      "message": "Invalid request",
      "status": "failed"
    }
    ```
  </Accordion>

  <Accordion title="401 - Não Autorizado">
    ```json theme={null}
    {
      "message": "Authentication failed"
    }
    ```
  </Accordion>

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