{
  "openapi": "3.1.0",
  "info": {
    "title": "Convert Omnichannel",
    "description": "Documentação dos endpoints disponíveis no Omnichannel da Convert.",
    "version": "1.0.0",
    "contact": {
      "name": "Convert Company",
      "email": "developers@convertcompany.com.br",
      "url": "https://convertcompany.com.br"
    },
    "license": {
      "name": "Proprietary",
      "url": "https://convertcompany.com.br/termos-de-uso/"
    }
  },
  "servers": [
    {
      "url": "https://{serverUrl}/api/v1",
      "description": "Servidor do seu Omnichannel",
      "variables": {
        "serverUrl": {
          "default": "chat.convert.app.br",
          "description": "Domínio base das APIs (ex: chat.convert.app.br)"
        }
      }
    }
  ],
  "security": [
    {
      "XUserId": [],
      "XAuthToken": [],
      "AppBearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Atendimento",
      "description": "Abertura, consulta, encaminhamento e encerramento de atendimentos."
    },
    {
      "name": "Mensagem",
      "description": "Envio de mensagens, upload de anexos e operações sobre o conteúdo das conversas."
    },
    {
      "name": "KPIs",
      "description": "Indicadores e relatórios analíticos: filas, agentes, departamentos, NPS e mais."
    },
    {
      "name": "Usuários",
      "description": "Listagem e informações dos usuários/agentes do Omnichannel."
    },
    {
      "name": "Departamento",
      "description": "Operações de departamentos do Livechat e utilitários relacionados."
    },
    {
      "name": "Contatos",
      "description": "Gestão e busca em massa de contatos (coleções e listagens)."
    },
    {
      "name": "Logs",
      "description": "Registro de logs customizados para observabilidade e troubleshooting."
    },
    {
      "name": "Auditoria",
      "description": "Consulta a trilhas de auditoria e logs internos (rotas e métodos)."
    },
    {
      "name": "Tags",
      "description": "Criação, listagem e aplicação de tags a salas, contatos e relatórios."
    },
    {
      "name": "E-mail",
      "description": "Envio de e-mails transacionais a partir do Omnichannel."
    },
    {
      "name": "Inteligência Artificial",
      "description": "Recursos de inteligência artificial do produto"
    },
    {
      "name": "Grupo de Horários",
      "description": "CRUD e testes de grupos de horários para regras de disponibilidade de atendimento."
    }
  ],
  "paths": {
    "/agents/availability": {
      "put": {
        "tags": [
          "Usuários"
        ],
        "operationId": "updateAgentAvailability",
        "summary": "Alterar disponibilidade do agente (Livechat)",
        "description": "Altera o status de disponibilidade do Livechat para o agente especificado ou para o próprio usuário logado. Requer permissão `manage-livechat-agents` para alterar o status de outro agente.",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "agentId": {
                    "type": "string",
                    "description": "ID do agente (opcional, se omitido usa o ID do usuário logado)",
                    "example": "647569b00685f50f38eb4f9d"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "available",
                      "not-available"
                    ],
                    "description": "Status desejado. Se omitido, realiza um toggle automático do status atual.",
                    "example": "available"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Status alterado com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "agent": {
                      "type": "object",
                      "properties": {
                        "_id": {
                          "type": "string",
                          "example": "647569b00685f50f38eb4f9d"
                        },
                        "statusLivechat": {
                          "type": "string",
                          "example": "available"
                        },
                        "previousStatus": {
                          "type": "string",
                          "example": "not-available"
                        }
                      },
                      "required": [
                        "_id",
                        "statusLivechat",
                        "previousStatus"
                      ]
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro na requisição (licenças esgotadas, status inválido ou agente não encontrado)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Acesso não autorizado (sem permissão ou não autenticado)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/blacklist/add/{phoneNumber}": {
      "post": {
        "operationId": "blacklistAddPhone",
        "summary": "Bloquear um contato",
        "description": "Bloquear contato",
        "tags": [
          "Contatos"
        ],
        "parameters": [
          {
            "name": "phoneNumber",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Número de telefone a ser bloqueado.",
            "example": "5554984086070"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "blockDate": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Data para o fim do bloqueio, para bloqueio permanente não é necessário informar.",
                    "example": "2023-10-01T12:00:00Z"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Contato bloqueado com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "description": "Status da operação.",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Dados inválidos para bloquear o contato",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "description": "Status da operação.",
                      "example": false
                    },
                    "error": {
                      "type": "string",
                      "description": "Mensagem de erro.",
                      "example": "Ocorreu um erro ao adicionar contato"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/blacklist/restore/{phoneNumber}": {
      "post": {
        "operationId": "blacklistRestorePhone",
        "summary": "Desbloquear um contato",
        "description": "Desbloquear contato",
        "tags": [
          "Contatos"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "phoneNumber",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Número de telefone a ser desbloqueado.",
            "example": "5554984086070"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Contato desbloqueado com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "description": "Status da operação.",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Dados inválidos para desbloquear o contato",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "description": "Status da operação.",
                      "example": false
                    },
                    "error": {
                      "type": "string",
                      "description": "Mensagem de erro.",
                      "example": "Ocorreu um erro ao desbloquear contato"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/bot.check": {
      "get": {
        "x-internal": true,
        "operationId": "getBotCheck",
        "tags": [
          "Bot"
        ],
        "summary": "Verificar status do bot",
        "description": "Verifica se o bot está ativo e funcionando corretamente",
        "responses": {
          "200": {
            "description": "Dados obtidos com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "online": {
                      "type": "boolean",
                      "description": "Indica se o bot está online.",
                      "example": true
                    },
                    "latency": {
                      "type": "integer",
                      "description": "Tempo de resposta do bot em milissegundos",
                      "example": 12
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/bot.info": {
      "get": {
        "x-internal": true,
        "operationId": "getBotInfo",
        "tags": [
          "Bot"
        ],
        "summary": "Obter informações do bot",
        "description": "Retorna informações detalhadas sobre o bot",
        "responses": {
          "200": {
            "description": "Dados obtidos com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "latency": {
                      "type": "integer",
                      "description": "Tempo de resposta do bot em milissegundos",
                      "example": 12
                    },
                    "botInfo": {
                      "type": "object",
                      "description": "Informações detalhadas sobre o bot",
                      "properties": {
                        "bot": {
                          "type": "object",
                          "properties": {
                            "username": {
                              "type": "string",
                              "description": "Nome de usuário do bot",
                              "example": "whatsbot"
                            }
                          }
                        },
                        "exec": {
                          "type": "object",
                          "properties": {
                            "processName": {
                              "type": "string",
                              "description": "Nome do processo do bot",
                              "example": "bot-omni02"
                            },
                            "startedAt": {
                              "type": "string",
                              "description": "Data e hora de início do bot",
                              "example": "2025-09-29 10:03:20 (UTC-3)"
                            },
                            "uptimeSec": {
                              "type": "number",
                              "description": "Tempo de atividade do bot em segundos",
                              "example": 636.64257064
                            },
                            "version": {
                              "type": "string",
                              "description": "Versão do bot",
                              "example": "5.0.0"
                            },
                            "mode": {
                              "type": "string",
                              "description": "Modo de execução do bot",
                              "example": "pm2"
                            },
                            "isClusterMode": {
                              "type": "boolean",
                              "description": "Indica se o bot está em modo cluster",
                              "example": true
                            },
                            "instancesNumber": {
                              "type": "number",
                              "description": "Número de instâncias do bot",
                              "example": 3
                            }
                          }
                        },
                        "rooms": {
                          "type": "object",
                          "properties": {
                            "totalCreated": {
                              "type": "number",
                              "description": "Total de salas criadas",
                              "example": 0
                            },
                            "processingIds": {
                              "type": "array",
                              "description": "IDs das salas em processamento",
                              "items": {
                                "type": "string"
                              }
                            },
                            "dataIds": {
                              "type": "array",
                              "description": "IDs dos dados das salas",
                              "items": {
                                "type": "string"
                              }
                            }
                          }
                        },
                        "messages": {
                          "type": "object",
                          "properties": {
                            "totalProcessed": {
                              "type": "number",
                              "description": "Total de mensagens processadas",
                              "example": 0
                            }
                          }
                        }
                      }
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/bot.logs": {
      "get": {
        "x-internal": true,
        "operationId": "getBotLogs",
        "tags": [
          "Bot"
        ],
        "summary": "Obter logs do bot",
        "description": "Retorna os logs do bot",
        "responses": {
          "200": {
            "description": "Dados obtidos com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "latency": {
                      "type": "integer",
                      "description": "Tempo de resposta do bot em milissegundos",
                      "example": 12
                    },
                    "botLogs": {
                      "type": "object",
                      "description": "Informações detalhadas sobre o bot",
                      "properties": {
                        "count": {
                          "type": "number",
                          "description": "Número total de linhas de logs retornadas",
                          "example": 112
                        },
                        "lines": {
                          "type": "array",
                          "description": "Linhas de logs do bot",
                          "items": {
                            "type": "string"
                          },
                          "example": [
                            "[2025-10-01 10:19:38] [INFO] [277619] [START] |   _________ ________  ______   ______                    ",
                            "[2025-10-01 10:19:38] [INFO] [277619] [START] |  /________//_______//_____/\\ /_____/\\                ",
                            "[2025-10-01 10:19:38] [INFO] [277619] [START] |  \\__.::.__\\\\::: _  \\ \\:::_ \\ \\\\::::_/_         ",
                            "[2025-10-01 10:19:38] [INFO] [277619] [START] |     \\::\\ \\  \\::(_)  \\ \\:(_) ) )\\:/___/\\       ",
                            "[2025-10-01 10:19:38] [INFO] [277619] [START] |      \\::\\ \\  \\:: __  \\ \\: __ `\\ \\_::._\\:\\      ",
                            "[2025-10-01 10:19:38] [INFO] [277619] [START] |       \\::\\ \\  \\:.\\ \\  \\ \\ \\ `\\ \\ /____\\:\\ ",
                            "[2025-10-01 10:19:38] [INFO] [277619] [START] |        \\__/   \\__/\\__/\\_/ \\_/\\_____/   ",
                            "[2025-10-01 10:19:38] [INFO] [277619] [START] |",
                            "[2025-10-01 10:19:38] [INFO] [277619] [START] |  WORKING DIRECTORY: /var/lib/tars",
                            "[2025-10-01 10:19:38] [INFO] [277619] [START] |  PORT: 9002",
                            "[2025-10-01 10:19:38] [INFO] [277619] [START] |  BOTNAME: bot-teste",
                            "[2025-10-01 10:19:38] [INFO] [277619] [START] |  CHAT URL: https://teste.convert.app.br",
                            "[2025-10-01 10:19:38] [INFO] [277619] [START] |  EXEC MODE: PM2 [CLUSTER MODE - worker]",
                            "[2025-10-01 10:19:38] [INFO] [277619] [START] |",
                            "[2025-10-01 10:19:38] [INFO] [277619] [ROUTES] [START] Rotas de API iniciadas.",
                            "[2025-10-01 10:19:38] [INFO] [277619] [START] =============== TARS BOT (v5.1.0) ==============="
                          ]
                        }
                      }
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/chat.sendMessage": {
      "post": {
        "operationId": "chatSendMessage",
        "summary": "Enviar mensagem",
        "description": "Inserir/enviar uma mensagem na sala.",
        "tags": [
          "Mensagem"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "message"
                ],
                "properties": {
                  "message": {
                    "type": "object",
                    "required": [
                      "rid",
                      "msg"
                    ],
                    "properties": {
                      "rid": {
                        "type": "string",
                        "description": "Id da sala (room id)",
                        "example": "AqoYPDZmxxyFrpTiH"
                      },
                      "msg": {
                        "type": "string",
                        "description": "Conteúdo da mensagem",
                        "example": "Bom dia!"
                      }
                    }
                  },
                  "userId": {
                    "type": "string",
                    "description": "Id do usuário da plataforma, utilizado como remetente da mensagem.",
                    "example": "NQ7cWyJ58MeiRm3es"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Mensagem enviada com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "$ref": "#/components/schemas/Message"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ocorreu um erro no envio da mensagem",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/contact.addTags/{contactId}": {
      "post": {
        "operationId": "contactAddTagsId",
        "tags": [
          "Contatos"
        ],
        "summary": "Adicionar tags a um contato",
        "description": "Adiciona diversas tags a um contato específico",
        "parameters": [
          {
            "name": "contactId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID do contato onde as tags serão adicionadas"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "tags"
                ],
                "properties": {
                  "tags": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Lista de tags a serem adicionadas ao contato"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Tags adicionadas ao contato com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "updated": {
                      "type": "boolean",
                      "description": "Indica se as tags foram adicionadas com sucesso",
                      "example": true
                    },
                    "newTags": {
                      "type": "array",
                      "description": "Lista das novas tags adicionadas ao contato",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "gpSSLq6A8LasdastJwT3KT"
                          },
                          "name": {
                            "type": "string",
                            "example": "Contato Legal"
                          },
                          "description": {
                            "type": "string",
                            "example": "Esse contato é muito legal"
                          },
                          "color": {
                            "type": "string",
                            "example": "#343a40"
                          },
                          "_updatedAt": {
                            "type": "string",
                            "format": "date-time",
                            "example": "2025-02-18T19:36:07.125Z"
                          },
                          "scope": {
                            "type": "string",
                            "example": "visitor"
                          },
                          "hidden": {
                            "type": "boolean",
                            "example": false
                          }
                        }
                      }
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/contact.removeTags/{contactId}": {
      "post": {
        "operationId": "contactRemoveTagsId",
        "tags": [
          "Contatos"
        ],
        "summary": "Remover tags do contato",
        "description": "Remove diversas tags de um contato específico",
        "parameters": [
          {
            "name": "contactId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID do contato onde as tags serão removidas"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "tags"
                ],
                "properties": {
                  "tags": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Lista de tags a serem removidas do contato"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Tags removidas do contato com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/email.send": {
      "post": {
        "operationId": "emailSend",
        "summary": "Enviar um e-mail",
        "description": "Enviar um e-mail com conteúdo personalizado.",
        "tags": [
          "E-mail"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "to",
                  "subject",
                  "body"
                ],
                "properties": {
                  "to": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Endereços de e-mail de destino.",
                    "example": [
                      "joao@convertcompany.com.br",
                      "maria@convertcompany.com.br"
                    ]
                  },
                  "subject": {
                    "type": "string",
                    "description": "Assunto/Título do e-mail.",
                    "example": "Pautas Reunião Trimestral"
                  },
                  "body": {
                    "type": "string",
                    "description": "Corpo principal do e-mail. Aceita texto ou sintaxe HTML.",
                    "example": "Bom dia!<br>Gostaria de iniciar tratando a pauta principal da semana..."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "E-mail enviado com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    },
                    "message": {
                      "type": "string",
                      "description": "Mensagem de sucesso da operação.",
                      "example": "Email sent successfully!"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ocorreu um erro no envio do e-mail",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "message": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/livechat/department/generate.description": {
      "post": {
        "x-internal": true,
        "operationId": "livechatDepartmentGenerateDescription",
        "tags": [
          "Departamento"
        ],
        "summary": "Gerar descrição do departamento",
        "description": "Gerar uma descrição para um departamento utilizando o Vertt",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "departmentName"
                ],
                "properties": {
                  "departmentName": {
                    "type": "string",
                    "description": "Nome do departamento que será descrito.",
                    "example": "Atendimento ao Cliente"
                  },
                  "segment": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Segmento ou área relacionada ao departamento.",
                    "example": "Suporte Técnico"
                  },
                  "description": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Descrição adicional do departamento.",
                    "example": "Departamento responsável por auxiliar clientes com dúvidas técnicas."
                  },
                  "audiences": {
                    "type": [
                      "array",
                      "null"
                    ],
                    "description": "Lista de perfis de público associados ao departamento.",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "Estudantes",
                      "Clientes Premium"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Descrição criada com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "example": "Descrição do departamento"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/livechat/flows.backups": {
      "get": {
        "x-internal": true,
        "operationId": "getLivechatFlowsBackups",
        "tags": [
          "Fluxo"
        ],
        "summary": "Obter dados dos backups dos fluxos",
        "description": "Obtém dados de um ou mais backups dos fluxos de atendimento",
        "parameters": [
          {
            "$ref": "#/components/parameters/Offset"
          },
          {
            "$ref": "#/components/parameters/Count"
          },
          {
            "$ref": "#/components/parameters/Sort"
          },
          {
            "$ref": "#/components/parameters/Fields"
          },
          {
            "name": "flowId",
            "in": "query",
            "description": "Id do fluxo",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "omitFlowObject",
            "in": "query",
            "description": "Omitir o objeto do fluxo nos backups retornados",
            "schema": {
              "type": "string",
              "example": "false",
              "default": "true"
            }
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados obtidos com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "flowsBackups": {
                      "type": "array",
                      "description": "Backups dos fluxos",
                      "items": {
                        "$ref": "#/components/schemas/LivechatFlowsBackups"
                      }
                    },
                    "count": {
                      "$ref": "#/components/schemas/Count"
                    },
                    "offset": {
                      "$ref": "#/components/schemas/Offset"
                    },
                    "total": {
                      "$ref": "#/components/schemas/Total"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro na obtenção dos dados",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/flows.backups/{_id}/manual": {
      "post": {
        "x-internal": true,
        "operationId": "createLivechatFlowsBackupsManual",
        "summary": "Criar um novo backup do fluxo manualmente",
        "description": "Criar de forma manual um backup do fluxo informado.",
        "tags": [
          "Fluxo"
        ],
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID do fluxo alvo do backup"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Backup do fluxo criado com sucesso, retorna o backup criado",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "flowBackup": {
                      "$ref": "#/components/schemas/LivechatFlowsBackups"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ocorreu um erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "message": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/logs": {
      "get": {
        "x-internal": true,
        "operationId": "getLivechatLogs",
        "tags": [
          "Auditoria"
        ],
        "summary": "Obter registros de utilização dos endpoints",
        "description": "Retorna os logs das interações realizadas com os endpoints do Omnichannel",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Texto livre para busca geral nos logs."
          },
          {
            "name": "omniMethods",
            "in": "query",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Lista de métodos do Omnichannel a serem filtrados."
          },
          {
            "name": "httpMethod",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Método HTTP da requisição (GET, POST, etc.)."
          },
          {
            "name": "routes",
            "in": "query",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Lista de rotas de API a serem filtradas nos logs."
          },
          {
            "name": "usersId",
            "in": "query",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Lista de IDs de usuários cujas requisições devem ser incluídas."
          },
          {
            "name": "requestBody",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Filtro textual no corpo da requisição original."
          },
          {
            "name": "showOnlyAppsRequest",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            },
            "description": "Se definido como 'true', exibe apenas requisições feitas por apps."
          },
          {
            "name": "statusCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "100",
                "200",
                "300",
                "400",
                "500"
              ]
            },
            "description": "Filtro por classe de status HTTP. Valores possíveis: 100, 200, 300, 400, 500."
          },
          {
            "name": "createdAt",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "json"
            },
            "description": "Filtro por data de criação. Deve ser um JSON com os campos `startDate` e `endDate`. Exemplo:\n\n`{\"startDate\": \"2025-06-01\", \"endDate\": \"2025-06-20\"}`"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de logs retornada",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "logs": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Log"
                      },
                      "description": "Lista de registros de logs da aplicação."
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/logs/omniMethods": {
      "get": {
        "x-internal": true,
        "operationId": "livechatLogsOmniMethods",
        "tags": [
          "Auditoria"
        ],
        "summary": "Obter a lista de métodos disponíveis",
        "description": "Retorna a lista de métodos Omnichannel disponíveis",
        "parameters": [
          {
            "$ref": "#/components/parameters/Offset"
          },
          {
            "$ref": "#/components/parameters/Count"
          },
          {
            "name": "filter",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Filtro de texto",
              "example": "Filtro de texto"
            }
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de métodos Omnichannel retornada",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "routes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "routes": {
                            "type": "array",
                            "description": "Lista de métodos/funções do Omnichannel.",
                            "items": {
                              "type": "object",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "description": "Nome do método.",
                                  "example": "metodo1"
                                }
                              }
                            }
                          },
                          "total": {
                            "type": "integer",
                            "description": "Número total de métodos disponíveis.",
                            "example": 10
                          },
                          "offset": {
                            "type": "integer",
                            "description": "Número de itens ignorados no início da listagem (para paginação).",
                            "example": 0
                          },
                          "count": {
                            "type": "integer",
                            "description": "Quantidade de métodos retornados nesta página.",
                            "example": 25
                          }
                        }
                      },
                      "description": "Lista de registros de logs da aplicação."
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/logs/routes": {
      "get": {
        "x-internal": true,
        "operationId": "livechatLogsRoutes",
        "tags": [
          "Auditoria"
        ],
        "summary": "Obter a lista de rotas disponíveis",
        "description": "Retorna a lista de rotas do Omnichannel",
        "parameters": [
          {
            "$ref": "#/components/parameters/Offset"
          },
          {
            "$ref": "#/components/parameters/Count"
          },
          {
            "name": "filter",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Filtro de texto",
              "example": "Filtro de texto"
            }
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de rotas retornada",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "routes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "routes": {
                            "type": "array",
                            "description": "Lista de rotas do Omnichannel.",
                            "items": {
                              "type": "object",
                              "properties": {
                                "path": {
                                  "type": "string",
                                  "description": "Caminho da rota da API.",
                                  "example": "login"
                                },
                                "httpMethods": {
                                  "type": "array",
                                  "description": "Lista de métodos HTTP disponíveis para a rota.",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "get",
                                      "post",
                                      "put",
                                      "patch",
                                      "delete",
                                      "options",
                                      "head"
                                    ]
                                  },
                                  "example": [
                                    "post"
                                  ]
                                }
                              }
                            }
                          },
                          "total": {
                            "type": "integer",
                            "description": "Número total de rotas disponíveis.",
                            "example": 10
                          },
                          "offset": {
                            "type": "integer",
                            "description": "Número de itens ignorados no início da listagem (para paginação).",
                            "example": 0
                          },
                          "count": {
                            "type": "integer",
                            "description": "Quantidade de rotas retornados nesta página.",
                            "example": 25
                          }
                        }
                      }
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/room.close": {
      "post": {
        "operationId": "livechatRoomClose",
        "summary": "Encerrar atendimento",
        "description": "Encerrar um atendimento em aberto.",
        "tags": [
          "Ações na conversa"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "rid"
                ],
                "properties": {
                  "userId": {
                    "type": "string",
                    "description": "ID do usuário que encerrou o atendimento. Se não informado, será utilizado o usuário autenticado. Obrigatório caso utilizado autenticação via app token. ",
                    "example": "AqoYPDZmxxyFrpTiH"
                  },
                  "rid": {
                    "type": "string",
                    "description": "ID do atendimento",
                    "example": "7ySboe9pKXFYP3MLG"
                  },
                  "token": {
                    "type": "string",
                    "description": "Token do contato (WHATS + número). Identifica o contato como o autor do encerramento do atendimento",
                    "example": "WHATS-5551998812833"
                  },
                  "tags": {
                    "type": "array",
                    "description": "Tags a serem adicionadas ao atendimento, somente adiciona, não sobrescreve",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "Urgente",
                      "Prioritário"
                    ]
                  },
                  "tabulacao": {
                    "type": "string",
                    "description": "Classificação",
                    "example": "Suporte - Resolvido"
                  },
                  "statusTabulacao": {
                    "type": "string",
                    "description": "Status da Classificação",
                    "example": "Sucesso"
                  },
                  "customFields": {
                    "type": "object",
                    "description": "Campos personalizados do atendimento para atualização",
                    "example": {
                      "personalizado_1": "12345",
                      "personalizado_2": 1000
                    }
                  },
                  "closingMessageSent": {
                    "type": "boolean",
                    "description": "Informa se a mensagem de encerramento já foi enviada, se `true`, não envia a mensagem de encerramento do departamento (caso exista)",
                    "example": true
                  },
                  "forceClose": {
                    "type": "boolean",
                    "description": "Assegura o encerramento imediato da sala, não direcionando a possíveis destinos após fechamento do departamento atual.",
                    "example": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Atendimento encerrado com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "rid": {
                      "type": "string",
                      "description": "Id do atendimento",
                      "example": "7ySboe9pKXFYP3MLG"
                    },
                    "comment": {
                      "type": "string",
                      "description": "Comentário relacionado ao status da operação de encerramento",
                      "example": "Encerrado pelo visitante"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ocorreu um erro no encerramento do atendimento",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/livechat/room.create": {
      "post": {
        "x-internal": true,
        "operationId": "livechatRoomCreate",
        "summary": "Criar sala de atendimento (omnichannel)",
        "description": "Cria uma nova sala de atendimento (omnichannel) com base nos dados fornecidos. Inicia um novo atendimento com cliente.",
        "tags": [
          "Ações na conversa"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "platform",
                  "channel",
                  "visitor",
                  "room"
                ],
                "properties": {
                  "platform": {
                    "type": "string",
                    "description": "Plataforma de atendimento",
                    "example": "WHATS"
                  },
                  "channel": {
                    "type": "string",
                    "description": "Identificador do canal",
                    "example": "555430468151"
                  },
                  "channelDescription": {
                    "type": "string",
                    "description": "Descrição do canal. Parâmetro opcional, obtido automaticamente.",
                    "example": "Canal Principal"
                  },
                  "visitor": {
                    "type": "object",
                    "description": "Dados do contato.",
                    "required": [
                      "token",
                      "name",
                      "phone"
                    ],
                    "properties": {
                      "token": {
                        "type": "string",
                        "description": "Token de identificação do contato",
                        "example": "WHATS-5555998112844"
                      },
                      "name": {
                        "type": "string",
                        "description": "Nome do contato",
                        "example": "Arthur M"
                      },
                      "phone": {
                        "type": "string",
                        "description": "Telefone do contato",
                        "example": "5555998112844"
                      },
                      "agentePreferido": {
                        "type": "string",
                        "description": "Agente preferido",
                        "example": "31dd13r12596ddJ1k"
                      },
                      "consentimento": {
                        "type": "string",
                        "description": "Consentimento do contato",
                        "example": "Coletado"
                      },
                      "consentimentoEvidencia": {
                        "type": "string",
                        "description": "Evidência do consentimento do contato",
                        "example": "Website XYZ, caixa de seleção marcada em 01/01/2024 10:00hs"
                      },
                      "empresa": {
                        "type": "string",
                        "description": "Empresa do contato",
                        "example": "Convert Company"
                      },
                      "stopReceivingCampaigns": {
                        "type": "boolean",
                        "description": "Indica se o contato não deseja receber campanhas",
                        "example": false
                      },
                      "customFields": {
                        "type": "object",
                        "description": "Campos personalizados do contato, devem ser previamente criados na plataforma.",
                        "example": {
                          "idade": 30,
                          "cidade": "Passo Fundo"
                        }
                      }
                    }
                  },
                  "department": {
                    "type": "string",
                    "description": "Id do departamento. Utilizado somente em atendimentos ativos, para especificar o departamento de criação do atendimento",
                    "example": "7QLQtep3qSKG3T256"
                  },
                  "agent": {
                    "type": "object",
                    "description": "Dados do atendente.",
                    "required": [
                      "id"
                    ],
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Id, nome de usuário ou e-mail do atendente. Utilizado somente em atendimentos ativos, para especificar o atendente de criação do atendimento",
                        "example": "31dd13r12596ddJ1k"
                      }
                    }
                  },
                  "flowId": {
                    "type": "string",
                    "description": "Id do Fluxo. Utilizado somente em atendimentos ativos, o atendimento deve ser atendido pelo bot",
                    "example": "uY44YjrdP596kdJRk"
                  },
                  "room": {
                    "type": "object",
                    "description": "Dados do atendimento.",
                    "required": [
                      "livechatData"
                    ],
                    "properties": {
                      "livechatData": {
                        "type": "object",
                        "description": "Dados personalizados do atendimento.",
                        "required": [
                          "tipo_mensagem"
                        ],
                        "properties": {
                          "tipo_mensagem": {
                            "type": "string",
                            "enum": [
                              "receptiva",
                              "ativa"
                            ],
                            "description": "Identificador do tipo do atendimento",
                            "example": "receptiva"
                          }
                        }
                      },
                      "tags": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "example": [
                            "Urgente",
                            "IA"
                          ]
                        }
                      },
                      "topic": {
                        "type": "string"
                      }
                    }
                  },
                  "message": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "Primeira mensagem do atendimento",
                    "example": "Bom dia!"
                  },
                  "contextId": {
                    "type": "string",
                    "description": "Identificador único da mensagem (atendimentos receptivos). Utilizado para evitar mensagens duplicadas, impede a criação da sala se necessário.",
                    "example": "HBgLMTY0NjcwNDM1OTUVAgARGA9wcm9kdWN0X2lucXVpcnkA"
                  },
                  "replyToMessageId": {
                    "type": "string",
                    "description": "Id da mensagem para a qual esta é uma resposta",
                    "example": "Kb23di4Hq33Re1qnS"
                  },
                  "templateId": {
                    "type": "string",
                    "description": "Id do template utilizado para iniciar o atendimento. Utilizado somente para atendimentos do tipo ativo.",
                    "example": "template_primeiro_contato_cliente"
                  },
                  "components": {
                    "type": "object",
                    "description": "Dados estruturados do template enviado, substituem o `message`.",
                    "required": [
                      "body"
                    ],
                    "properties": {
                      "header": {
                        "type": "object",
                        "required": [
                          "type"
                        ],
                        "properties": {
                          "type": {
                            "type": "string"
                          },
                          "text": {
                            "type": "string"
                          },
                          "link": {
                            "type": "string"
                          },
                          "filename": {
                            "type": "string"
                          }
                        }
                      },
                      "body": {
                        "type": "object",
                        "required": [
                          "type",
                          "text"
                        ],
                        "properties": {
                          "type": {
                            "type": "string"
                          },
                          "text": {
                            "type": "string"
                          }
                        }
                      },
                      "footer": {
                        "type": "object",
                        "required": [
                          "type",
                          "text"
                        ],
                        "properties": {
                          "type": {
                            "type": "string"
                          },
                          "text": {
                            "type": "string"
                          }
                        }
                      },
                      "buttons": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "required": [
                            "type",
                            "text"
                          ],
                          "properties": {
                            "type": {
                              "type": "string"
                            },
                            "text": {
                              "type": "string"
                            },
                            "phone_number": {
                              "type": "string"
                            },
                            "url": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  },
                  "subject": {
                    "type": "string"
                  },
                  "referral": {
                    "type": "object"
                  }
                }
              },
              "examples": {
                "receptiveSimple": {
                  "summary": "Receptivo - Simples",
                  "description": "Exemplo de criação de atendimento receptivo simples, o contato iniciou a conversa.",
                  "value": {
                    "platform": "WHATS",
                    "channel": "555430462151",
                    "visitor": {
                      "token": "WHATS-5555998112844",
                      "name": "Arthur M",
                      "phone": "5555998112844"
                    },
                    "room": {
                      "livechatData": {
                        "tipo_mensagem": "receptiva"
                      }
                    },
                    "message": "Boa tarde!!!"
                  }
                },
                "proactiveSimpleWithButtons": {
                  "summary": "Ativo - Simples com Botões",
                  "description": "Exemplo de criação de atendimento ativo simples com botões, o agente iniciou a conversa.",
                  "value": {
                    "platform": "WHATS",
                    "channel": "555430462151",
                    "visitor": {
                      "token": "WHATS-5555998112844",
                      "name": "Arthur M",
                      "phone": "5555998112844"
                    },
                    "department": "f346d6h8bEHYYyv22",
                    "agent": {
                      "id": "NQ7cWyJ58MeiRm312"
                    },
                    "room": {
                      "livechatData": {
                        "tipo_mensagem": "ativa"
                      }
                    },
                    "templateId": "516172bf-76e4-4237-9cab-496973c3edae",
                    "components": {
                      "body": {
                        "type": "TEXT",
                        "text": "Boa tarde Arthur, aqui é um agente da Convert Company.\nPodemos conversar agora?"
                      },
                      "buttons": [
                        {
                          "type": "TEXT",
                          "text": "Sim"
                        },
                        {
                          "type": "TEXT",
                          "text": "Não"
                        }
                      ]
                    }
                  }
                },
                "proactiveAutomatic": {
                  "summary": "Ativo - Automático (Fluxo)",
                  "description": "Exemplo de criação de atendimento ativo automático, a resposta cai direto em um fluxo sendo executada por um bot.",
                  "value": {
                    "platform": "WHATS",
                    "channel": "555430462151",
                    "visitor": {
                      "token": "WHATS-5555998112844",
                      "name": "Arthur M",
                      "phone": "5555998112844"
                    },
                    "flowId": "p6TbnQnFz7RnjSxqg",
                    "room": {
                      "livechatData": {
                        "tipo_mensagem": "ativa"
                      }
                    },
                    "templateId": "516172bf-76e4-4237-9cab-496973c3edae",
                    "components": {
                      "body": {
                        "type": "TEXT",
                        "text": "Boa tarde Arthur, aqui é um agente da Convert Company.\nPodemos conversar agora?"
                      },
                      "buttons": [
                        {
                          "type": "TEXT",
                          "text": "Sim"
                        },
                        {
                          "type": "TEXT",
                          "text": "Não"
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Sala criada com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "visitor": {
                      "$ref": "#/components/schemas/Visitor"
                    },
                    "room": {
                      "$ref": "#/components/schemas/LivechatRoom"
                    },
                    "success": {
                      "type": "boolean",
                      "description": "Status da operação.",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ocorreu um erro ao criar a sala",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "success",
                    "message"
                  ],
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "message": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    },
                    "details": {
                      "type": "object",
                      "description": "Mais detalhes sobre o erro."
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/livechat/room.forward": {
      "post": {
        "operationId": "livechatRoomForward",
        "summary": "Transferir atendimento",
        "description": "Transferir um atendimento em andamento.",
        "tags": [
          "Ações na conversa"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "roomId"
                ],
                "properties": {
                  "roomId": {
                    "type": "string",
                    "description": "ID do atendimento",
                    "example": "7ySboe9pKXFYP3MLG"
                  },
                  "departmentId": {
                    "type": "string",
                    "description": "ID do departamento destino da transferência. O único cenário em que não é obrigatório é caso informado `flowId`",
                    "example": "4rGQ7ZadLjKumuf6o"
                  },
                  "userId": {
                    "type": "string",
                    "description": "ID do agente destino da transferência",
                    "example": "d32QddadLjKuiop31"
                  },
                  "flowId": {
                    "type": "string",
                    "description": "Id do Fluxo. O atendimento será realizado de forma automática pelo bot",
                    "example": "uY44YjrdP596kdJRk"
                  },
                  "transferredById": {
                    "type": "string",
                    "description": "Id, nome de usuário ou e-mail do usuário autor da transferência. Se não informado, será utilizado o usuário autenticado. Obrigatório caso utilizado autenticação via app token.",
                    "example": "AqoYPDZmxxyFrpTiH"
                  },
                  "comment": {
                    "type": "string",
                    "description": "Comentário da transferência, não será visto pelo contato",
                    "example": "Estou lhe transferindo esse atendimento referente a compras..."
                  },
                  "clientAction": {
                    "type": "boolean",
                    "description": "Indica se a transferência foi resultado de uma ação realizada pelo contato",
                    "example": false
                  },
                  "hideHistory": {
                    "type": "boolean",
                    "description": "Ocultar o histórico anterior da conversa",
                    "example": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Atendimento transferido com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Mensagem de retorno, pode contar aviso relacionado a comportamentos de fallback",
                      "example": "Room successfully transferred!"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ocorreu um erro na transferência do atendimento",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/livechat/room.send.read.receipt": {
      "post": {
        "x-internal": true,
        "operationId": "livechatRoomSendReadReceipt",
        "summary": "Enviar rebido de leitura",
        "description": "Marca todas as mensagens anteriores de um atendimento (aberto) como lidas e opcionalmente permite emitir a ação de digitando. Funciona somente em canais com API oficial Meta.",
        "tags": [
          "Ações na conversa"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "roomId",
                  "channel"
                ],
                "properties": {
                  "roomId": {
                    "type": "string",
                    "description": "ID do atendimento",
                    "example": "7ySboe9pKXFYP3MLG"
                  },
                  "channel": {
                    "type": "string",
                    "description": "Número do canal (plataforma)",
                    "example": "555430268151"
                  },
                  "sendTyping": {
                    "type": "boolean",
                    "description": "Informa se deve enviar o status digitando, por padrão é `false`. Se não for enviada uma mensagem em seguida, em no máximo 25s a ação é removida.",
                    "example": true
                  },
                  "typingIndicator": {
                    "type": "string",
                    "description": "Tipo de indicador de digitação, por padrão é `text`",
                    "example": "text"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Recibo de leitura (e status digitando) enviado com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ocorreu um erro no envio do recibo de leitura",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/livechat/room.summary/{roomId}": {
      "post": {
        "operationId": "livechatRoomSummaryId",
        "summary": "Analisar com IA",
        "description": "Analisar com IA o atendimento utilizando o Vertt, para isso o ambiente deve ter licença de IA.",
        "tags": [
          "Ações na conversa"
        ],
        "parameters": [
          {
            "name": "roomId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID do atendimento"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "withCache": {
                    "type": "boolean",
                    "description": "Indica se o cache deve ser utilizado durante a geração do resumo",
                    "example": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resumo criado com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "summary": {
                      "$ref": "#/components/schemas/Summary"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/room.transcription/{roomId}": {
      "get": {
        "operationId": "livechatRoomTranscriptionId",
        "tags": [
          "Ações na conversa"
        ],
        "summary": "Gerar transcrição para IA",
        "description": "Gerar a transcrição do atendimento pronto para utilização em modelos de IA (ex.: OpenAI)",
        "parameters": [
          {
            "name": "roomId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID do atendimento"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "processImages": {
                    "type": "boolean",
                    "description": "Indica se as imagens devem ser processadas durante a transcrição",
                    "example": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Transcrição feita com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "transcription": {
                      "$ref": "#/components/schemas/Transcription"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/room/{_id}": {
      "put": {
        "operationId": "updateLivechatRoom",
        "tags": [
          "Ações na conversa"
        ],
        "summary": "Atualizar atendimento",
        "description": "Atualizar os dados de um atendimento",
        "parameters": [
          {
            "$ref": "#/components/parameters/_Id"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "tags": {
                    "type": "array",
                    "description": "Tags a serem adicionadas ao atendimento, somente adiciona, não sobrescreve",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "Urgente",
                      "Prioritário"
                    ]
                  },
                  "topic": {
                    "type": "string",
                    "description": "Tópico",
                    "example": "Anúncio 123"
                  },
                  "tabulacao": {
                    "type": "string",
                    "description": "Classificação",
                    "example": "Suporte - Resolvido"
                  },
                  "statusTabulacao": {
                    "type": "string",
                    "description": "Status da Classificação",
                    "example": "Sucesso"
                  },
                  "customFields": {
                    "type": "object",
                    "description": "Campos personalizados",
                    "example": {
                      "personalizado_1": "12345",
                      "personalizado_2": 1000
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Atendimento atualizado",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "updated": {
                      "type": "boolean",
                      "description": "Status da atualização, se `true` o atendimento foi localizado e atualizado com sucesso",
                      "example": true
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/room/{_id}/bot-context": {
      "get": {
        "x-internal": true,
        "operationId": "getLivechatRoomBotContext",
        "tags": [
          "Ações na conversa"
        ],
        "summary": "Obter dados do atendimento para o Bot",
        "description": "Obter todos os dados necessários pelo bot para processar o atendimento",
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID do atendimento"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Atendimento atualizado",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "context": {
                      "type": "object",
                      "required": [
                        "room"
                      ],
                      "properties": {
                        "room": {
                          "type": "object",
                          "description": "Dados do Atendimento"
                        },
                        "visitor": {
                          "type": "object",
                          "description": "Dados do Contato"
                        },
                        "agent": {
                          "type": "object",
                          "description": "Dados do Agente"
                        },
                        "customFieldsIds": {
                          "type": "array",
                          "description": "Campos personalizados disponíveis na plataforma",
                          "items": {
                            "type": "string"
                          }
                        },
                        "settings": {
                          "type": "object",
                          "description": "Configurações da plataforma"
                        },
                        "flow": {
                          "type": "object",
                          "description": "Dados do fluxo"
                        }
                      }
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/rooms": {
      "get": {
        "operationId": "getLivechatRooms",
        "tags": [
          "Ações na conversa"
        ],
        "summary": "Obter dados dos atendimentos",
        "description": "Obtém dados de um ou mais atendimentos, possibilitando vários critérios de filtro",
        "parameters": [
          {
            "$ref": "#/components/parameters/Offset"
          },
          {
            "$ref": "#/components/parameters/Count"
          },
          {
            "$ref": "#/components/parameters/Sort"
          },
          {
            "$ref": "#/components/parameters/Fields"
          },
          {
            "name": "roomIds",
            "in": "query",
            "description": "Lista de IDs de atendimentos filtrados",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "createdAt",
            "in": "query",
            "description": "Data de criação do atendimento, enviado como JSON serializado na query string.",
            "schema": {
              "type": "string",
              "example": "{\"start\": \"2024-01-01T16:34\", \"end\": \"2025-05-05T16:34\"}"
            }
          },
          {
            "name": "closedAt",
            "in": "query",
            "description": "Data de encerramento do atendimento, enviado como JSON serializado na query string.",
            "schema": {
              "type": "string",
              "example": "{\"start\": \"2024-01-01T16:34\", \"end\": \"2025-05-05T16:34\"}"
            }
          },
          {
            "name": "agents",
            "in": "query",
            "description": "ID(s) dos agentes filtrados",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "departmentId",
            "in": "query",
            "description": "ID do departamento para filtro",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "nps",
            "in": "query",
            "description": "Filtro por nota NPS (Net Promoter Score)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "open",
            "in": "query",
            "description": "Se o atendimento está aberto (true) ou encerrado (false)",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tags",
            "in": "query",
            "description": "Tags associadas ao atendimento",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "topic",
            "in": "query",
            "description": "Tópico da conversa",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "roomName",
            "in": "query",
            "description": "Nome do atendimento para busca",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tabulacao",
            "in": "query",
            "description": "Filtro por tabulação do atendimento",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "statusTabulacao",
            "in": "query",
            "description": "Status da tabulação (ex: pendente, concluída)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "description": "Tipo de contato: 'ativo' ou 'receptivo'",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "contactNumber",
            "in": "query",
            "description": "Número do contato",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "channel",
            "in": "query",
            "description": "Canal de origem (ex: WHATS, TELEGRAM)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "in": "query",
            "description": "Token de identificação do contato no atendimento",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "term",
            "in": "query",
            "description": "Termo de busca genérico (nome, número, etc.)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "withTagsColor",
            "in": "query",
            "description": "Incluir cores das tags nos resultados",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "withAgentsNames",
            "in": "query",
            "description": "Incluir nomes dos agentes nos resultados",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "withVisitorRemoved",
            "in": "query",
            "description": "Incluir visitantes removidos",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "withVisitorInfos",
            "in": "query",
            "description": "Incluir informações do visitante",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "withVerttInfos",
            "in": "query",
            "description": "Incluir informações do Vertt (customizado)",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "waitingResponse",
            "in": "query",
            "description": "Filtrar atendimentos aguardando resposta",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "origin",
            "in": "query",
            "description": "Origem da conversa (ex: campanha, indicação)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "showOnlyWithNPS",
            "in": "query",
            "description": "Mostrar apenas atendimentos com NPS atribuído",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "showOnlyWithBot",
            "in": "query",
            "description": "Mostrar apenas atendimentos com bot",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "showOnlyWithoutAgent",
            "in": "query",
            "description": "Mostrar apenas atendimentos sem agente atribuído",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "showOnlyWithoutClassification",
            "in": "query",
            "description": "Mostrar apenas atendimentos sem classificação",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "description": "IDs dos grupos de tags para filtro",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ignoreAutomaticallyServed",
            "in": "query",
            "description": "Ignorar atendimentos servidos automaticamente",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "referrals",
            "in": "query",
            "description": "Referências de origem externas",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados obtidos com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "rooms": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/LivechatRoom"
                      }
                    },
                    "count": {
                      "$ref": "#/components/schemas/Count"
                    },
                    "offset": {
                      "$ref": "#/components/schemas/Offset"
                    },
                    "total": {
                      "$ref": "#/components/schemas/Total"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/templates/send": {
      "post": {
        "operationId": "livechatTemplatesSend",
        "summary": "Enviar Template",
        "description": "Enviar um template para o contato.",
        "tags": [
          "Mensagem"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "id_broker",
                  "username",
                  "numero"
                ],
                "properties": {
                  "id_broker": {
                    "type": "string",
                    "description": "Id do template na Meta. Localizado na tela de templates da plataforma como ID (WhatsApp API)",
                    "example": "a743229d-8d35-4b99-abf9-e3fa73e0914b"
                  },
                  "username": {
                    "type": "string",
                    "description": "Telefone ou código de destino para o envio do template. Deve ser informado com código de país no formato 5554984080633.",
                    "example": "5554984080633"
                  },
                  "numero": {
                    "type": "string",
                    "description": "Número do seu canal de WhatsApp pelo qual deseja fazer o envio. O template deve estar criado para este canal.",
                    "example": "555430238151"
                  },
                  "department": {
                    "type": "string",
                    "description": "ID do departamento de destino da conversa. Se o parâmetro `create_room` for `true` ou o parâmetro `agentSelected` for informado, este parâmetro passa a ser obrigatório.",
                    "example": "4rGQ7ZadLjKumuf6o"
                  },
                  "agentSelected": {
                    "type": "string",
                    "description": "ID, nome de usuário ou e-mail do agente de destino da conversa. Caso informado, o atendimento criado é transferido para o agente no departamento, caso contrário, manda para a fila do departamento.",
                    "example": "MFK3jjHvsvff5eFd3"
                  },
                  "flowId": {
                    "type": "string",
                    "description": "Id do Fluxo. O atendimento será realizado de forma automática pelo bot",
                    "example": "uY44YjrdP596kdJRk"
                  },
                  "vars": {
                    "type": "array",
                    "description": "Variáveis do template. Deve ser passado exatamente o mesmo número de variáveis esperado e em casos de template sem variáveis, o parâmetro não deve ser passado.",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "Bom dia",
                      "Arthur",
                      "Convert Company"
                    ]
                  },
                  "midia": {
                    "type": "object",
                    "description": "Dados da mídia do template. Mídia enviada por URL (`tipo_midia` + `link`) ou em base64 (`tipo_midia` + `mimeType` + `base64`).",
                    "properties": {
                      "tipo_midia": {
                        "type": "string",
                        "description": "Tipo da mídia (ex.: IMAGE, VIDEO, DOCUMENT, AUDIO)",
                        "example": "IMAGE"
                      },
                      "link": {
                        "type": "string",
                        "description": "URL pública da mídia. Use quando a mídia estiver hospedada em um link.",
                        "example": "https://images.unsplash.com/photo-1579353977828-2a4eab540b9a?q=80&w=1000&auto=format&fit=crop"
                      },
                      "mimeType": {
                        "type": "string",
                        "description": "Tipo MIME do conteúdo. Obrigatório quando usar `base64` (ex.: image/png, video/mp4, application/pdf).",
                        "example": "image/png"
                      },
                      "base64": {
                        "type": "string",
                        "description": "Conteúdo da mídia codificado em base64. Use junto com `mimeType` para enviar imagem, vídeo ou documento sem URL.",
                        "example": "iVBORw0KGgoAAAANSUhEUgA"
                      }
                    },
                    "example": {
                      "tipo_midia": "IMAGE",
                      "mimeType": "image/png",
                      "base64": "iVBORw0KGgoAAAANSUhEUgA"
                    }
                  },
                  "fields": {
                    "type": "array",
                    "description": "Campos adicionais",
                    "items": {
                      "type": "object"
                    },
                    "example": [
                      {
                        "topic": "Exemplo de Tópico"
                      }
                    ]
                  },
                  "campanha": {
                    "type": "string",
                    "description": "Título da Campanha",
                    "example": "Campanha Promocional"
                  },
                  "nomeContato": {
                    "type": "array",
                    "description": "Nome do contato de destino",
                    "items": {
                      "type": "string"
                    },
                    "example": "Arthur Marques"
                  },
                  "create_room": {
                    "type": "boolean",
                    "description": "Define se será criada um atendimento. Seu valor padrão é `true`.",
                    "default": true,
                    "example": true
                  },
                  "sync": {
                    "type": "boolean",
                    "description": "Aplica-se somente a casos onde `create_room` é true, torna a criação síncrona, uma vez habilitado esse endpoint retorna o id da sala criada (`roomId`).",
                    "default": false,
                    "example": true
                  }
                }
              },
              "examples": {
                "simpleTemplate": {
                  "summary": "Template Simples",
                  "description": "Exemplo de envio de template com conteúdo simples, criando o atendimento e transferindo para o agente no departamento.",
                  "value": {
                    "id_broker": "a87c89bc-4ac3-45f8-d2d2-e4850facc68d",
                    "username": "WHATS-5551998812833",
                    "numero": "555430268151",
                    "department": "dWkxryyiDg5sZPFmp",
                    "agentSelected": "MFKujjHvsvff5eFAs"
                  }
                },
                "varsTemplate": {
                  "summary": "Template com Variáveis",
                  "description": "Exemplo de envio de template com variáveis, os valores informados preenchem respectivamente as variáveis presentes no template.",
                  "value": {
                    "id_broker": "1285389b-asf3-45f8-d232-e4812facc68d",
                    "username": "WHATS-5551998812833",
                    "numero": "555430268151",
                    "department": "dWkxryyiDg5sZPFmp",
                    "agentSelected": "MFKujjHvsvff5eFAs",
                    "vars": [
                      "Bom dia",
                      "Arthur",
                      "o Gabriel",
                      "Convert"
                    ]
                  }
                },
                "mediaTemplate": {
                  "summary": "Template com Mídia (URL)",
                  "description": "Exemplo de envio de template com mídia via link. Os valores em `vars` preenchem as variáveis do template.",
                  "value": {
                    "id_broker": "1285389b-asf3-45f8-d232-e4812facc68d",
                    "username": "WHATS-5551998812833",
                    "numero": "555430268151",
                    "department": "dWkxryyiDg5sZPFmp",
                    "agentSelected": "MFKujjHvsvff5eFAs",
                    "vars": [
                      "Olá",
                      "Arthur"
                    ],
                    "midia": {
                      "tipo_midia": "DOCUMENT",
                      "link": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"
                    }
                  }
                },
                "mediaTemplateBase64": {
                  "summary": "Template com Mídia (base64)",
                  "description": "Exemplo de envio de template com mídia em base64 (imagem, vídeo, documento etc.). Informe `tipo_midia`, `mimeType` e `base64`.",
                  "value": {
                    "id_broker": "1285389b-asf3-45f8-d232-e4812facc68d",
                    "username": "WHATS-5551998812833",
                    "numero": "555430268151",
                    "department": "dWkxryyiDg5sZPFmp",
                    "agentSelected": "MFKujjHvsvff5eFAs",
                    "vars": [
                      "Olá",
                      "Arthur"
                    ],
                    "midia": {
                      "tipo_midia": "IMAGE",
                      "mimeType": "image/png",
                      "base64": "iVBORw0KGgoAAAANSUhEUgA"
                    }
                  }
                },
                "customFieldsTemplate": {
                  "summary": "Template com Campos Personalizados",
                  "description": "Exemplo de envio de template com campos personalizados, esses campos são atualizados no atendimento criado.",
                  "value": {
                    "id_broker": "1285389b-asf3-45f8-d232-e4812facc68d",
                    "username": "WHATS-5551998812833",
                    "numero": "555430268151",
                    "department": "dWkxryyiDg5sZPFmp",
                    "agentSelected": "MFKujjHvsvff5eFAs",
                    "vars": [
                      "Bom dia",
                      "Arthur",
                      "o Gabriel",
                      "Convert"
                    ],
                    "fields": [
                      {
                        "topic": "#SITE"
                      },
                      {
                        "protocolo": "C202007706021"
                      }
                    ]
                  }
                },
                "simpleTemplateAutomatic": {
                  "summary": "Template Simples com Atendimento Automático (Fluxo)",
                  "description": "Exemplo de envio de template com conteúdo simples, criando o atendimento e transferindo para o bot realizar o atendimento seguindo um fluxo.",
                  "value": {
                    "id_broker": "a87c89bc-4ac3-45f8-d2d2-e4850facc68d",
                    "username": "WHATS-5551998812833",
                    "numero": "555430268151",
                    "flowId": "p6TbnQnFz7RnjSxqg"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Template enviado com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "number",
                      "description": "Código do status da requisição",
                      "example": 200
                    },
                    "message": {
                      "type": "string",
                      "description": "Mensagem de retorno",
                      "example": "Template enviado com sucesso!"
                    },
                    "aditionalInfo": {
                      "type": "string",
                      "description": "Informações adicionais da requisição",
                      "example": "Mensagem de saída posicionada para envio. Atendimento 2697"
                    },
                    "codAtendimento": {
                      "type": "number",
                      "description": "Código do atendimento (uso interno)",
                      "example": "2697"
                    },
                    "roomId": {
                      "type": "string",
                      "description": "Id da sala criada, somente se `create_room` e `sync` true",
                      "example": "GPmrrSn2jQBMYPpfp"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ocorreu um erro no envio do Template",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/livechat/templates/send.status": {
      "post": {
        "operationId": "livechatTemplatesSendStatus",
        "summary": "Status de envio dos Templates",
        "description": "Obter o status de envio do(s) Template(s) na data e canais informados.",
        "tags": [
          "Mensagem"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "date",
                  "channel"
                ],
                "properties": {
                  "date": {
                    "type": "string",
                    "description": "Data do envio do template",
                    "example": "2025-06-25"
                  },
                  "channel": {
                    "type": "string",
                    "description": "Número do canal do template, onde está registrado (origem do envio)",
                    "example": "555430268151"
                  },
                  "destination": {
                    "type": "string",
                    "description": "Número do contato destino do template (destino do envio)",
                    "example": "555198812833"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Status do envio do(s) Template(s) obtido com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "number",
                      "description": "Código do status da requisição",
                      "example": 200
                    },
                    "templates": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "atendimento",
                          "origem",
                          "destino",
                          "msg",
                          "enviado",
                          "entregue",
                          "lido",
                          "codigo_erro",
                          "erro",
                          "resposta",
                          "criado_em",
                          "atualizado_em"
                        ],
                        "properties": {
                          "atendimento": {
                            "type": "string",
                            "description": "Código do atendimento (uso interno)",
                            "example": "2697"
                          },
                          "origem": {
                            "type": "string",
                            "description": "Canal de origem",
                            "example": "555430268151"
                          },
                          "destino": {
                            "type": "string",
                            "description": "Canal de destino",
                            "example": "555198812833"
                          },
                          "msg": {
                            "type": "string",
                            "description": "Conteúdo do template",
                            "example": "Podemos conversar agora?"
                          },
                          "enviado": {
                            "type": "integer",
                            "description": "Status de envio do template",
                            "example": 1
                          },
                          "entregue": {
                            "type": "integer",
                            "description": "Status de entrega do template ao destino",
                            "example": 1
                          },
                          "lido": {
                            "type": "integer",
                            "description": "Status de leitura do template pelo destino",
                            "example": 1
                          },
                          "codigo_erro": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Possível código de erro no envio",
                            "example": null
                          },
                          "erro": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Possível mensagem de erro no envio",
                            "example": null
                          },
                          "resposta": {
                            "type": "string",
                            "description": "Mensagem de resposta do contato ao template",
                            "example": "Sim"
                          },
                          "criado_em": {
                            "type": "string",
                            "description": "Data de registro do envio",
                            "example": "2025-06-25 09:11:27"
                          },
                          "atualizado_em": {
                            "type": "string",
                            "description": "Data de atualização do registro de envio",
                            "example": "2025-06-25 09:12:51"
                          }
                        }
                      }
                    },
                    "count": {
                      "$ref": "#/components/schemas/Count"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ocorreu um erro na obtenção do status do envio do(s) Template(s)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/livechat/timegroups": {
      "get": {
        "operationId": "getLivechatTimegroup",
        "tags": [
          "Grupo de Horários"
        ],
        "summary": "Listar grupos de horários",
        "parameters": [
          {
            "$ref": "#/components/parameters/Offset"
          },
          {
            "$ref": "#/components/parameters/Count"
          },
          {
            "$ref": "#/components/parameters/Sort"
          },
          {
            "$ref": "#/components/parameters/Text"
          },
          {
            "name": "withDepartments",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "withExceptionTimeGroup",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Grupos listados com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "timegroups": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TimeGroup"
                      }
                    },
                    "count": {
                      "$ref": "#/components/schemas/Count"
                    },
                    "offset": {
                      "$ref": "#/components/schemas/Offset"
                    },
                    "total": {
                      "$ref": "#/components/schemas/Total"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ocorreu um erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "message": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "insertLivechatTimegroup",
        "tags": [
          "Grupo de Horários"
        ],
        "summary": "Criar grupo de horário",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "nome",
                  "horarios"
                ],
                "properties": {
                  "nome": {
                    "type": "string"
                  },
                  "descricao": {
                    "type": "string"
                  },
                  "horarios": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Horario"
                    }
                  },
                  "flowHistory": {
                    "$ref": "#/components/schemas/FlowHistoryRequest"
                  },
                  "exceptionTimegroupId": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Grupo criado",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    },
                    "timegroups": {
                      "$ref": "#/components/schemas/TimeGroup"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/livechat/timegroups/{_id}": {
      "get": {
        "operationId": "getLivechatTimegroupsId",
        "tags": [
          "Grupo de Horários"
        ],
        "summary": "Obter grupo de horário por ID",
        "parameters": [
          {
            "$ref": "#/components/parameters/_Id"
          },
          {
            "name": "withDepartments",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Grupo retornado",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    },
                    "timegroups": {
                      "$ref": "#/components/schemas/TimeGroup"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ocorreu um erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "message": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "operationId": "updateLivechatTimegroupsId",
        "tags": [
          "Grupo de Horários"
        ],
        "summary": "Atualizar grupo",
        "parameters": [
          {
            "$ref": "#/components/parameters/_Id"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "nome": {
                    "type": "string"
                  },
                  "descricao": {
                    "type": "string"
                  },
                  "horarios": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Horario"
                    }
                  },
                  "flowHistory": {
                    "$ref": "#/components/schemas/FlowHistoryRequest"
                  },
                  "exceptionTimegroupId": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Grupo atualizado",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    },
                    "timegroups": {
                      "$ref": "#/components/schemas/TimeGroup"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "deleteLivechatTimegroupsId",
        "tags": [
          "Grupo de Horários"
        ],
        "summary": "Remover grupo",
        "parameters": [
          {
            "$ref": "#/components/parameters/_Id"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Grupo removido com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    },
                    "message": {
                      "type": "string",
                      "description": "Mensagem de sucesso."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/timegroups/test.user.timegroups/{userId}": {
      "get": {
        "operationId": "livechatTimegroupsTestUser",
        "tags": [
          "Grupo de Horários"
        ],
        "summary": "Testar grupos de usuário",
        "parameters": [
          {
            "$ref": "#/components/parameters/UserId"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Validação retornada",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "isValid": {
                      "type": "boolean",
                      "description": "Status da validação.",
                      "example": true
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ocorreu um erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "message": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/timegroups/test/{_id}": {
      "get": {
        "operationId": "livechatTimegroupsTestId",
        "tags": [
          "Grupo de Horários"
        ],
        "summary": "Testar grupo por ID",
        "parameters": [
          {
            "$ref": "#/components/parameters/_Id"
          },
          {
            "name": "date",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resultado da validação de horário",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimeGroupsTest"
                }
              }
            }
          },
          "400": {
            "description": "Ocorreu um erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "message": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/visitors.delete": {
      "post": {
        "operationId": "livechatVisitorsDelete",
        "summary": "Deletar um contato",
        "description": "Recebe uma lista de ids de contatos e exclui eles da base.",
        "tags": [
          "Contatos"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "visitorsId": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Lista de IDs dos contatos a serem excluídos.",
                    "example": [
                      "wPf3o2Y34s6H4csyfa"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Contatos deletados com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "description": "Status da operação.",
                      "example": true
                    },
                    "count": {
                      "type": "integer",
                      "description": "Número de contatos deletados",
                      "example": 1
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não autenticado",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Status da operação.",
                      "example": "error"
                    },
                    "message": {
                      "type": "string",
                      "description": "Mensagem de retorno",
                      "example": "You must be logged in to do this"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/livechat/visitors.hasWhatsAppSession/{id}/{channel}": {
      "get": {
        "operationId": "livechatVisitorsHasWhatsAppSession",
        "summary": "Verificar sessão WhatsApp do contato",
        "description": "Verifica se o contato possui uma sessão ativa do WhatsApp.",
        "tags": [
          "Contatos"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID ou Token do contato, ex: 'WHATS-5551998812233'"
          },
          {
            "name": "channel",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Canal da plataforma, ex: '555436017684'"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sessão verificada com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    },
                    "status": {
                      "type": "boolean",
                      "description": "Indica se há uma sessão ativa do WhatsApp para o contato no canal especificado.",
                      "example": true
                    },
                    "message": {
                      "type": "string",
                      "description": "Mensagem de retorno",
                      "example": "Há sessão disponível com o WhatsApp no canal 555436017684."
                    },
                    "visitorLastMessageWas": {
                      "type": "string",
                      "description": "Tempo desde a última mensagem do contato",
                      "example": "1h 13m 23.48s"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "message": {
                      "type": "string",
                      "description": "Mensagem de retorno",
                      "example": "You must be logged in to do this"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/visitors.search": {
      "get": {
        "operationId": "livechatVisitorsSearch",
        "summary": "Buscar lista de contatos",
        "description": "Retorna uma lista de contatos com base nos parâmetros fornecidos.",
        "tags": [
          "Contatos"
        ],
        "parameters": [
          {
            "name": "count",
            "in": "query",
            "description": "Número máximo de contatos a serem retornados.",
            "schema": {
              "type": "integer",
              "default": 25
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Deslocamento para paginação dos resultados.",
            "schema": {
              "type": "integer",
              "default": 25
            }
          },
          {
            "name": "withTagsColor",
            "description": "Mostrar informações das cores das tags.",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Ordenar os resultados com base em um campo específico.",
            "schema": {
              "type": "object",
              "example": {
                "lastChat.ts": -1
              }
            },
            "style": "deepObject"
          },
          {
            "name": "term",
            "in": "query",
            "description": "Termo de pesquisa para filtrar os contatos.",
            "schema": {
              "type": "string",
              "example": "gabriel"
            }
          },
          {
            "name": "phone",
            "in": "query",
            "description": "Número de telefone do contato para filtro",
            "schema": {
              "type": "string",
              "example": "21037000"
            }
          },
          {
            "name": "company",
            "in": "query",
            "description": "Nome da empresa do contato para filtro",
            "schema": {
              "type": "string",
              "example": "Convert Company"
            }
          },
          {
            "name": "origin",
            "in": "query",
            "description": "Origem do contato para filtro",
            "schema": {
              "type": "string",
              "enum": [
                "WHATS",
                "TELEGRAM",
                "MESSENGER",
                "INSTAGRAM",
                "EMAIL"
              ],
              "example": "WHATS"
            }
          },
          {
            "name": "livechatData",
            "in": "query",
            "description": "Campo personalizado associado ao contato para filtro",
            "schema": {
              "type": "object",
              "example": {
                "codigo_pessoa": "1"
              }
            },
            "style": "deepObject"
          },
          {
            "name": "contactStatus",
            "in": "query",
            "description": "Status do contato (bloqueado ou não bloqueado)",
            "schema": {
              "type": "string",
              "enum": [
                "blocked",
                "not-blocked"
              ],
              "example": "blocked"
            }
          },
          {
            "name": "contactGroups[]",
            "description": "IDs dos grupos de contato para filtro",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "THGDYv8Axg6vEwgQj"
              ]
            },
            "explode": true
          },
          {
            "name": "preferredAgent",
            "description": "Usuário do agente favorito para o contato",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "gabriel.leite"
            }
          },
          {
            "name": "tags[]",
            "in": "query",
            "description": "Tags associadas ao contato para filtro",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "⭐ Cliente"
              ]
            },
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de contatos retornada com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "description": "Status da operação.",
                      "example": true
                    },
                    "visitors": {
                      "type": "array",
                      "description": "Lista de contatos",
                      "items": {
                        "$ref": "#/components/schemas/ContactFromList"
                      }
                    },
                    "tagsColor": {
                      "type": "object",
                      "description": "Cores das tags associadas aos contatos",
                      "example": {
                        "Cliente": "#FF5733"
                      }
                    },
                    "total": {
                      "type": "integer",
                      "description": "Número total de contatos encontrados",
                      "example": 100
                    },
                    "offset": {
                      "type": "integer",
                      "description": "Deslocamento atual para paginação",
                      "example": 0
                    },
                    "count": {
                      "type": "integer",
                      "description": "Número de contatos retornados na resposta",
                      "example": 25
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não autenticado",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Status da operação.",
                      "example": "error"
                    },
                    "message": {
                      "type": "string",
                      "description": "Mensagem de retorno",
                      "example": "You must be logged in to do this"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/logger.customLog": {
      "post": {
        "x-internal": true,
        "operationId": "loggerCustomLog",
        "summary": "Inserir log personalizado",
        "description": "Insere no log do Omni um registro personalizado.",
        "tags": [
          "Logs"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomLog"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Log registrado com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "description": "Status da operação.",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "description": "Status da operação.",
                      "example": false
                    },
                    "message": {
                      "type": "string",
                      "description": "Descrição do motivo do erro",
                      "example": "Invalid value for `level`"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/messages.send": {
      "post": {
        "operationId": "messagesSend",
        "summary": "Enviar mensagem (v2)",
        "description": "Inserir/enviar uma nova mensagem na sala. Versão mais recente de endpoint para envio de mensagens. Caso autenticado via app token, obrigatório informar `userId` ou `visitorId`.",
        "tags": [
          "Mensagem"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": [
                  "roomId"
                ],
                "properties": {
                  "roomId": {
                    "type": "string",
                    "description": "Id da sala",
                    "example": "AqoYPDZmxxyFrpTiH"
                  },
                  "userId": {
                    "type": "string",
                    "description": "Id, nome de usuário ou e-mail do usuário remetente da mensagem. Se não informado, será utilizado o usuário autenticado. ",
                    "example": "AqoYPDZmxxyFrpTiH"
                  },
                  "visitorId": {
                    "type": "string",
                    "description": "Id ou token do visitante remetente da mensagem.",
                    "example": "WHATS-5551990812244"
                  },
                  "text": {
                    "type": "string",
                    "description": "Conteúdo em texto da mensagem",
                    "example": "Bom dia! Tudo bem?"
                  },
                  "file": {
                    "type": "string",
                    "format": "binary",
                    "description": "Binário do arquivo a ser enviado (ex: PDF, imagem, etc.)"
                  },
                  "contextId": {
                    "type": "string",
                    "description": "Identificador único da mensagem (apenas livechat).",
                    "example": "HBgLMTY0NjcwNDM1OTUVAgARGA9wcm9kdWN0X2lucXVpcnkA"
                  },
                  "replyToMessageId": {
                    "type": "string",
                    "description": "Identificador único da mensagem a ser citada, aceita wamid/contextId.",
                    "example": "Qhxkx9mZJRRSRPKTa"
                  },
                  "skipWebhook": {
                    "type": "string",
                    "enum": [
                      "true",
                      "false"
                    ],
                    "description": "Não enviar os webhooks de mensagem enviada (pós-envio bem sucedido)",
                    "example": "true"
                  },
                  "previewUrl": {
                    "type": "string",
                    "enum": [
                      "true",
                      "false"
                    ],
                    "description": "Parâmetro utilizado pela Meta para definir se deve ou não renderizar pré-visualização de links dentro da mensagem",
                    "example": "true"
                  },
                  "templateId": {
                    "type": "string",
                    "description": "Id do template de mensagem a ser utilizado (apenas livechat)",
                    "example": "4610f65a-a424-464c-1240-e4890746a969"
                  },
                  "components": {
                    "type": "string",
                    "description": "Conteúdo estruturado da mensagem. Deve ser um JSON serializado em string.",
                    "example": "{\"body\":{\"type\":\"TEXT\",\"text\":\"Olá Arthur! Gostaria de conversar com você, está disponível?\"},\"buttons\":[{\"type\":\"QUICK_REPLY\",\"text\":\"Sim\"},{\"type\":\"QUICK_REPLY\",\"text\":\"Não\"}]}"
                  }
                }
              },
              "examples": {
                "mensagemComTexto": {
                  "summary": "Mensagem de texto simples",
                  "description": "Exemplo de envio de mensagem simples (remetente é o usuário autenticado).",
                  "value": {
                    "roomId": "ATCmNGG4i8hWfrxSp",
                    "text": "Olá! Isso é uma mensagem sem anexo."
                  }
                },
                "mensagemComAnexo": {
                  "summary": "Mensagem com anexo (arquivo)",
                  "description": "Envio de arquivo binário (ex.: PDF, imagem) junto com um texto utilizado como legenda do anexo. Enviado via `multipart/form-data`.",
                  "value": {
                    "roomId": "ATCmNGG4i8hWfrxSp",
                    "text": "Segue em anexo a proposta comercial.",
                    "file": "<binário do arquivo>"
                  }
                },
                "mensagemDeVisitante": {
                  "summary": "Mensagem enviada por visitante",
                  "description": "Envio de mensagem em nome do visitante (contato) da sala. Informe `visitorId` com o id ou token do visitante. Obrigatório quando autenticado via app token e o remetente for o contato.",
                  "value": {
                    "roomId": "ATCmNGG4i8hWfrxSp",
                    "visitorId": "WHATS-5551990812244",
                    "text": "Olá, gostaria de mais informações sobre o produto."
                  }
                },
                "mensagemDeUsuarioEspecifico": {
                  "summary": "Mensagem enviada por usuário específico",
                  "description": "Envio de mensagem em nome de um agente específico. Informe `userId` com o id, nome de usuário ou e-mail do agente. Obrigatório quando autenticado via app token e o remetente for um agente.",
                  "value": {
                    "roomId": "ATCmNGG4i8hWfrxSp",
                    "userId": "agente.arthur",
                    "text": "Bom dia! Estou à disposição para ajudar."
                  }
                },
                "mensagemComCitacao": {
                  "summary": "Mensagem citando/respondendo outra",
                  "description": "Envio de mensagem citando uma mensagem anterior, seja da mesma sala ou de outra.",
                  "value": {
                    "roomId": "ATCmNGG4i8hWfrxSp",
                    "text": "Perfeito, podemos seguir com essa opção!",
                    "replyToMessageId": "Qhxkx9mZJRRSRPKTa"
                  }
                },
                "mensagemComTemplate": {
                  "summary": "Mensagem com template",
                  "description": "Registro do envio de um template pré-aprovado na sala. Não realiza de fato o envio do template, apenas registra a utilização do template para que o conteúdo seja renderizado corretamente.",
                  "value": {
                    "roomId": "ATCmNGG4i8hWfrxSp",
                    "userId": "dev.convert",
                    "templateId": "4610f65a-a424-464c-1240-e4890746a969",
                    "components": "{\"body\":{\"type\":\"TEXT\",\"text\":\"Olá Arthur! Gostaria de conversar com você, está disponível?\"},\"buttons\":[{\"type\":\"QUICK_REPLY\",\"text\":\"Sim\"},{\"type\":\"QUICK_REPLY\",\"text\":\"Não\"}]}"
                  }
                },
                "mensagemComContextId": {
                  "summary": "Mensagem com identificador de contexto",
                  "description": "Envio de mensagem informando `contextId`, um identificador único personalizado utilizado para rastreamento/deduplicação externa (apenas livechat).",
                  "value": {
                    "roomId": "ATCmNGG4i8hWfrxSp",
                    "visitorId": "WHATS-5551990812244",
                    "text": "Bom dia, tudo bem sim e você?",
                    "contextId": "HBgLMTY0NjcwNDM1OTUVAgARGA9wcm9kdWN0X2lucXVpcnkA"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Mensagem enviada com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "$ref": "#/components/schemas/Message"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Ocorreu um erro no envio da mensagem",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/rooms.addTags": {
      "post": {
        "operationId": "roomsAddTags",
        "tags": [
          "Ações na conversa"
        ],
        "summary": "Adicionar tags ao atendimento",
        "description": "Adiciona diversas tags a um atendimento específico",
        "parameters": [
          {
            "name": "roomId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID da sala de atendimento onde as tags serão adicionadas"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "tags"
                ],
                "properties": {
                  "tags": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Lista de tags a serem adicionadas ao atendimento"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Tags adicionadas ao atendimento com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "updated": {
                      "type": "boolean",
                      "description": "Indica se as tags foram adicionadas com sucesso",
                      "example": true
                    },
                    "newTags": {
                      "type": "array",
                      "description": "Lista das novas tags adicionadas ao atendimento",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "gpSSLq6A8LasdastJwT3KT"
                          },
                          "name": {
                            "type": "string",
                            "example": "Atendimento ao Cliente"
                          },
                          "description": {
                            "type": "string",
                            "example": "Suporte técnico"
                          },
                          "color": {
                            "type": "string",
                            "example": "#343a40"
                          },
                          "_updatedAt": {
                            "type": "string",
                            "format": "date-time",
                            "example": "2025-02-18T19:36:07.125Z"
                          },
                          "scope": {
                            "type": "string",
                            "example": "room"
                          },
                          "hidden": {
                            "type": "boolean",
                            "example": false
                          }
                        }
                      }
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rooms.export": {
      "get": {
        "operationId": "roomsExport",
        "tags": [
          "Ações na conversa"
        ],
        "summary": "Exportar dados do atendimento",
        "description": "Exportar todos os dados de um atendimento, inclusive as mensagens trocadas",
        "parameters": [
          {
            "name": "rid",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID do atendimento"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados exportados com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "room": {
                      "$ref": "#/components/schemas/RoomWithMessages"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rooms.removeTags": {
      "post": {
        "operationId": "roomsRemoveTags",
        "tags": [
          "Ações na conversa"
        ],
        "summary": "Remover tags do atendimento",
        "description": "Remove diversas tags a um atendimento específico",
        "parameters": [
          {
            "name": "roomId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID da sala de atendimento onde as tags serão removidas"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "tags"
                ],
                "properties": {
                  "tags": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "Lista de tags a serem removidas do atendimento"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Tags removidas do atendimento com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/rooms.upload/{rid}": {
      "post": {
        "operationId": "roomsUploadRid",
        "tags": [
          "Mensagem"
        ],
        "summary": "Enviar arquivo na sala",
        "description": "Enviar um arquivo na sala, permite também o envio de uma descrição. Funciona em qualquer tipo de sala (direta, canal, equipe, etc.), porém o usuário que fizer a requisição precisa fazer parte da sala.",
        "parameters": [
          {
            "name": "rid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID da sala"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": [
                  "file"
                ],
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary",
                    "description": "Binário do arquivo a ser enviado (ex: PDF, imagem, etc.)"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição opcional do arquivo",
                    "example": "Esse arquivo que você queria?"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Arquivo enviado com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "$ref": "#/components/schemas/MessageAttachmentUpload"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro no envio do arquivo",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/users.list": {
      "get": {
        "operationId": "getUsersList",
        "tags": [
          "Usuários"
        ],
        "summary": "Obter dados dos usuários",
        "description": "Obtém dados de um ou mais usuários, possibilitando vários critérios de filtro",
        "parameters": [
          {
            "$ref": "#/components/parameters/Offset"
          },
          {
            "$ref": "#/components/parameters/Count"
          },
          {
            "$ref": "#/components/parameters/Sort"
          },
          {
            "$ref": "#/components/parameters/Fields"
          },
          {
            "name": "text",
            "in": "query",
            "description": "Texto de busca genérico (busca em nome, nome de usuário e e-mail)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "usersIds",
            "in": "query",
            "description": "Lista de IDs dos usuários",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "11327ZaFLjKu1uf6o",
                "d3355Ns2cYK7Z12TaS"
              ]
            }
          },
          {
            "name": "usernames",
            "in": "query",
            "description": "Lista de nomes de usuários",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "arthur-silva",
                "bruno-santos"
              ]
            }
          },
          {
            "name": "roles",
            "in": "query",
            "description": "Lista de papéis dos usuários. Exemplo: roles[]=user&roles[]=livechat-agent",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "user",
                "livechat-agent"
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Status do usuário na plataforma (online, offline, not-offline, away, busy)",
            "schema": {
              "type": "string",
              "example": "online"
            }
          },
          {
            "name": "statusLivechat",
            "in": "query",
            "description": "Status do usuário como agente nos atendimentos (`available` ou `not-available`)",
            "schema": {
              "type": "string",
              "example": "available"
            }
          },
          {
            "name": "active",
            "in": "query",
            "description": "Usuário está ativo para utilização",
            "schema": {
              "type": "string",
              "example": "active"
            }
          },
          {
            "name": "onlyAgents",
            "in": "query",
            "description": "Retorna apenas usuários com papel de agente",
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "name": "onlyUsers",
            "in": "query",
            "description": "Retorna apenas usuários comuns (sem papel de agente e não bot)",
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "name": "onlySupervisors",
            "in": "query",
            "description": "Retorna apenas usuários com papel de supervisor",
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "name": "showConvertUsers",
            "in": "query",
            "description": "Incluir usuários da Convert Company",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "showOnlyUsersWithLicenses",
            "in": "query",
            "description": "Busca somente usuários ocupando licenças na plataforma",
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "name": "departments",
            "in": "query",
            "description": "Buscar usuários que façam parte dos departamentos (IDs) ",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "4rGQ7ZaFLjKu1uf6o",
                "EZd2Ns2cYK7ZNzTaS"
              ]
            }
          },
          {
            "name": "includesDepartments",
            "in": "query",
            "description": "Retorna junto das informações dos usuários os dados dos departamentos relacionados",
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados obtidos com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "users": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/User"
                      }
                    },
                    "count": {
                      "$ref": "#/components/schemas/Count"
                    },
                    "offset": {
                      "$ref": "#/components/schemas/Offset"
                    },
                    "total": {
                      "$ref": "#/components/schemas/Total"
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/vertt/clientStats": {
      "get": {
        "x-internal": true,
        "operationId": "getVerttClientStats",
        "tags": [
          "Vertt"
        ],
        "summary": "Obter status de utilização do Vertt",
        "description": "Exibe os status de utilização das APIs do Vertt para o cliente",
        "parameters": [
          {
            "name": "initialDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Data inicial do intervalo no formato YYYY-MM-DD (ex: 2025-06-01)"
          },
          {
            "name": "finalDate",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Data final do intervalo no formato YYYY-MM-DD (ex: 2025-06-10)"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Modelos listados com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "msg": {
                      "type": "string",
                      "example": "Stats de uso:"
                    },
                    "status": {
                      "type": "integer",
                      "example": 200
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "id_cliente": {
                          "type": "integer",
                          "example": 1
                        },
                        "nome_cliente": {
                          "type": "string",
                          "example": "Convert Company"
                        },
                        "total_requests": {
                          "type": "integer",
                          "example": 170
                        },
                        "total_hours_used": {
                          "type": "number",
                          "format": "float",
                          "example": 0.77
                        },
                        "total_transcriptions": {
                          "type": "integer",
                          "example": 158
                        },
                        "total_completions": {
                          "type": "integer",
                          "example": 3
                        },
                        "completion_tokens_used": {
                          "type": "integer",
                          "example": 136
                        },
                        "total_summarizations": {
                          "type": "integer",
                          "example": 0
                        },
                        "summarization_tokens_used": {
                          "type": "integer",
                          "example": 0
                        },
                        "remaining_completion_tokens": {
                          "type": "integer",
                          "example": 1999864
                        },
                        "remaining_summarization_tokens": {
                          "type": "integer",
                          "example": 2000000
                        },
                        "remaining_hours": {
                          "type": "number",
                          "format": "float",
                          "example": 199.23
                        },
                        "data_ini": {
                          "type": "string",
                          "format": "date",
                          "example": "2024-10-01"
                        },
                        "data_fim": {
                          "type": "string",
                          "format": "date",
                          "example": "2024-10-31"
                        }
                      }
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/vertt/completions": {
      "post": {
        "x-internal": true,
        "operationId": "verttCompletions",
        "tags": [
          "Vertt"
        ],
        "summary": "Gerar conclusão de chat",
        "description": "Gerar uma conclusão de chat, utiliza os mesmos parâmetros definidos na API do Vertt, funcionando como um proxy para acesso via Omnichannel.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "messages",
                  "model"
                ],
                "properties": {
                  "messages": {
                    "type": "array",
                    "description": "Array de objetos contendo os papéis (roles) que podem ser definidos para gerar uma conversação através da API de completions",
                    "items": {
                      "type": "object",
                      "required": [
                        "role",
                        "content"
                      ],
                      "properties": {
                        "role": {
                          "type": "string",
                          "enum": [
                            "system",
                            "user",
                            "assistant"
                          ],
                          "description": "O papel da mensagem na conversa",
                          "example": "system"
                        },
                        "content": {
                          "type": "string",
                          "description": "O conteúdo da mensagem"
                        }
                      },
                      "example": [
                        {
                          "role": "system",
                          "content": "Você é um assistente cuja função será encaminhar usuários para setor 'x'"
                        },
                        {
                          "role": "user",
                          "content": "Olá, preciso de ajuda com minha conta"
                        }
                      ]
                    }
                  },
                  "model": {
                    "type": "string",
                    "example": "gpt-4o",
                    "enum": [
                      "gpt-4o,gpt-3.5-turbo-0125",
                      "gpt-4o-mini",
                      "chatgpt-4o-latest",
                      "gpt-4o-2024-08-06",
                      "gpt-4o-2024-05-13"
                    ],
                    "description": "O modelo a ser utilizado para as completions"
                  },
                  "temperature": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 2,
                    "description": "Valor numérico entre 0 e 2 que controla a aleatoriedade da saída."
                  },
                  "response_format": {
                    "type": "object",
                    "required": [
                      "type"
                    ],
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "json_object",
                          "text"
                        ]
                      }
                    },
                    "description": "Força o modelo a retornar um JSON ou text"
                  },
                  "parse_json": {
                    "type": "boolean",
                    "enum": [
                      true,
                      false
                    ],
                    "example": "true/false",
                    "description": "Retorna um JSON parseado no conteúdo da completion"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta gerada com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "msg": {
                      "type": "string",
                      "example": "Chat completion criada com sucesso"
                    },
                    "status": {
                      "type": "integer",
                      "example": 201
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "response": {
                          "type": "string",
                          "description": "Texto gerado pela completion",
                          "example": "Resposta da completion"
                        },
                        "prompt_tokens": {
                          "type": "integer",
                          "description": "Número de tokens utilizados no prompt",
                          "example": 139
                        },
                        "completion_tokens": {
                          "type": "integer",
                          "description": "Número de tokens utilizados na resposta gerada",
                          "example": 23
                        },
                        "total_tokens": {
                          "type": "integer",
                          "description": "Total de tokens utilizados na requisição",
                          "example": 162
                        }
                      }
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/vertt/models": {
      "get": {
        "x-internal": true,
        "operationId": "getVerttModels",
        "tags": [
          "Vertt"
        ],
        "summary": "Listar modelos de IA disponíveis no Vertt",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "summarizations",
                "transcriptions",
                "completions"
              ]
            },
            "description": "Tipo de modelo do Vertt"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Modelos listados com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "msg": {
                      "type": "string",
                      "description": "Mensagem de retorno com o tipo listado.",
                      "example": "Modelos summarizations:"
                    },
                    "status": {
                      "type": "integer",
                      "example": 200
                    },
                    "data": {
                      "type": "array",
                      "description": "Lista dos modelos disponíveis.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "example": 1
                          },
                          "model": {
                            "type": "string",
                            "example": "gpt-4o-mini"
                          },
                          "broker": {
                            "type": "string",
                            "example": "openai"
                          },
                          "multiplier": {
                            "type": "number",
                            "example": 1
                          },
                          "description": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "example": null
                          },
                          "available_in_completions": {
                            "type": "boolean",
                            "example": true
                          },
                          "available_in_summarizations": {
                            "type": "boolean",
                            "example": true
                          },
                          "available_in_transcriptions": {
                            "type": "boolean",
                            "example": false
                          },
                          "available_in_tts": {
                            "type": "boolean",
                            "example": false
                          },
                          "available_in_assistants": {
                            "type": "boolean",
                            "example": false
                          },
                          "input_cost": {
                            "type": "number",
                            "example": 0.15
                          },
                          "output_cost": {
                            "type": "number",
                            "example": 0.6
                          },
                          "minute_cost": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "example": null
                          },
                          "character_cost": {
                            "type": [
                              "number",
                              "null"
                            ],
                            "example": null
                          },
                          "is_active": {
                            "type": "boolean",
                            "example": true
                          }
                        }
                      }
                    },
                    "pagination": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "integer",
                          "example": 10
                        },
                        "per_page": {
                          "type": "integer",
                          "example": 50
                        },
                        "current_page": {
                          "type": "integer",
                          "example": 1
                        },
                        "last_page": {
                          "type": "integer",
                          "example": 1
                        },
                        "from": {
                          "type": "integer",
                          "example": 1
                        },
                        "to": {
                          "type": "integer",
                          "example": 10
                        }
                      }
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/vertt/summarization": {
      "post": {
        "x-internal": true,
        "operationId": "verttSummarization",
        "tags": [
          "Vertt"
        ],
        "summary": "Gerar resumo de conteúdo fornecido",
        "description": "Gerar um resumo a partir de um conteúdo fornecido utilizando os mesmos parâmetros definidos na API do Vertt, funcionando como um proxy para acesso via Omnichannel.",
        "responses": {
          "200": {
            "description": "Modelos listados com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "msg": {
                      "type": "string",
                      "example": "Objetivos definidos com sucesso"
                    },
                    "status": {
                      "type": "integer",
                      "example": 201
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "objetivo_1": {
                          "type": "string",
                          "example": "O cliente gostou da qualidade do atendimento recebido"
                        },
                        "objetivo_2": {
                          "type": "string",
                          "example": "O atendimento foi avaliado como positivo pelo cliente"
                        },
                        "objetivo_3": {
                          "type": "string",
                          "example": "Reduzir o tempo médio de resposta para aumentar a satisfação do cliente"
                        },
                        "objetivo_4": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "example": [
                            "gentileza",
                            "rapidez",
                            "eficiência",
                            "clareza",
                            "resolução"
                          ]
                        }
                      }
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/vertt/textToSpeech": {
      "post": {
        "x-internal": true,
        "operationId": "verttTextToSpeech",
        "tags": [
          "Vertt"
        ],
        "summary": "Gerar áudio com base em texto",
        "description": "Gerar um áudio com base em um texto utilizando o Vertt. Utiliza os mesmos parâmetros definidos na API do Vertt, funcionando como um proxy para acesso via Omnichannel.",
        "responses": {
          "200": {
            "description": "Retorna um arquivo de áudio (MP3) gerado a partir do texto fornecido.",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Ocorreu um erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/vertt/transcript": {
      "post": {
        "x-internal": true,
        "operationId": "verttTranscript",
        "tags": [
          "Vertt"
        ],
        "summary": "Gerar transcrição de um áudio em texto",
        "description": "Utiliza os mesmos parâmetros definidos na API do Vertt, funcionando como um proxy para acesso via Omnichannel.",
        "responses": {
          "200": {
            "description": "Áudio gerado com sucesso a partir do texto.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "msg": {
                      "type": "string",
                      "example": "A transcrição do áudio é a seguinte: "
                    },
                    "status": {
                      "type": "integer",
                      "example": 201
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "duration": {
                          "type": "number",
                          "format": "float",
                          "description": "Duração do áudio em segundos.",
                          "example": 23.066094
                        },
                        "model": {
                          "type": "string",
                          "description": "Nome do modelo utilizado para transcrição.",
                          "example": "whisper-local"
                        },
                        "text": {
                          "type": "string",
                          "description": "Texto completo resultante da transcrição.",
                          "example": "Texto total da transcrição"
                        },
                        "timestamps": {
                          "type": "array",
                          "description": "Lista de trechos com seus respectivos timestamps.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "text": {
                                "type": "string",
                                "example": "Texto da transcrição 1"
                              },
                              "timestamp": {
                                "type": "array",
                                "items": {
                                  "type": "number"
                                },
                                "minItems": 2,
                                "maxItems": 2,
                                "example": [
                                  0,
                                  1
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    "success": {
                      "$ref": "#/components/schemas/SuccessTrue"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/livechat/analytics/dashboards/kpi.indicators": {
      "get": {
        "operationId": "livechatConversationsIndicatorsFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Indicadores Gerais",
        "description": "Retorna os dados do bloco de Indicadores da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "total": {
                          "type": "number",
                          "example": 4
                        },
                        "distintos": {
                          "type": "number",
                          "example": 1
                        },
                        "msgs": {
                          "type": "number",
                          "example": 14
                        },
                        "saida": {
                          "type": "number",
                          "example": 4
                        },
                        "entrada": {
                          "type": "number",
                          "example": 0
                        },
                        "esperaMedia": {
                          "type": "number",
                          "example": 0
                        },
                        "duracaoMediaDeChat": {
                          "type": "number",
                          "example": 1271.12375
                        },
                        "totalFlagged": {
                          "type": "number",
                          "example": 0
                        }
                      },
                      "description": "Dados consolidados dos indicadores de KPI."
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.bydepartment": {
      "get": {
        "operationId": "livechatConversationsByDepartmentsFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Por Departamento",
        "description": "Retorna os dados do bloco 'Por Departamento' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "LsPEMrWaBRNnNrgQP"
                          },
                          "qtde": {
                            "type": "number",
                            "example": 362
                          },
                          "msgs": {
                            "type": "number",
                            "example": 1771
                          },
                          "nome": {
                            "type": "string",
                            "example": "Desenvolvimento "
                          },
                          "color": {
                            "type": "string",
                            "example": "#16bd00"
                          }
                        }
                      },
                      "description": "Lista de departamentos com os KPIs correspondentes."
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.byagents": {
      "get": {
        "operationId": "livechatConversationsByAgentsFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Atendimentos por Agente",
        "description": "Retorna os dados do bloco 'Atendimentos por Agente' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_id": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "example": "admin.convert"
                          },
                          "username": {
                            "type": "string",
                            "example": "admin.convert"
                          },
                          "qtde": {
                            "type": "number",
                            "example": 314
                          },
                          "msgs": {
                            "type": "number",
                            "example": 1438
                          },
                          "nome": {
                            "type": "string",
                            "example": "Admin Convert"
                          }
                        }
                      },
                      "description": "Lista de agentes com os KPIs correspondentes."
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.waitingagents": {
      "get": {
        "operationId": "livechatConversationsByWaitingAgentsFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Espera Média",
        "description": "Retorna os dados do bloco 'Espera Média' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "admin.convert"
                          },
                          "total": {
                            "type": "number",
                            "example": 37175.715
                          },
                          "media": {
                            "type": "string",
                            "example": "4.00"
                          },
                          "mediaSegundos": {
                            "type": "number",
                            "example": 239.84332258064518
                          },
                          "nome": {
                            "type": "string",
                            "example": "Admin Convert"
                          }
                        }
                      },
                      "description": "Lista de agentes com o tempo médio de espera e total de espera."
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.waitingbydepartment": {
      "get": {
        "operationId": "livechatConversationsByWaitingbyDepartmentFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Espera Média por Departamento",
        "description": "Retorna os dados do bloco 'Espera Média por Departamento' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "LsPEMrWaBRNnNrgQP"
                          },
                          "total": {
                            "type": "number",
                            "example": 104046.863
                          },
                          "media": {
                            "type": "string",
                            "example": "10.77"
                          },
                          "mediaSegundos": {
                            "type": "number",
                            "example": 646.2538074534162
                          },
                          "name": {
                            "type": "string",
                            "example": "Desenvolvimento "
                          },
                          "color": {
                            "type": "string",
                            "example": "#16bd00"
                          }
                        }
                      },
                      "description": "Lista de departamentos com o tempo médio de espera e total de espera."
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.rankingnumbers": {
      "get": {
        "operationId": "livechatConversationsRankingNumbersFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Ranking de Números (Top 15)",
        "description": "Retorna os dados do bloco 'Ranking de Números (Top 15)' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "5554999999999"
                          },
                          "nome": {
                            "type": "string",
                            "example": "Fulano da Silva (5554999999999)"
                          },
                          "total": {
                            "type": "number",
                            "example": 198
                          },
                          "msgs": {
                            "type": "number",
                            "example": 1617
                          }
                        }
                      },
                      "description": "Lista de números com total de atendimentos e mensagens."
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.weekday": {
      "get": {
        "operationId": "livechatConversationsWeekdayFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Por Dia da Semana",
        "description": "Retorna os dados do bloco 'Por Dia da Semana' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_id": {
                            "type": "number",
                            "example": 2
                          },
                          "nome": {
                            "type": "string",
                            "example": "Segunda-Feira"
                          },
                          "total": {
                            "type": "number",
                            "example": 49
                          },
                          "msgs": {
                            "type": "number",
                            "example": 459
                          }
                        }
                      },
                      "description": "Lista de dias da semana com total de atendimentos e mensagens."
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.byday": {
      "get": {
        "operationId": "livechatConversationsBydayFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Por Dia",
        "description": "Retorna os dados do bloco 'Por Dia' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "2025-06-16"
                          },
                          "total": {
                            "type": "number",
                            "example": 2
                          },
                          "msgs": {
                            "type": "number",
                            "example": 2
                          }
                        }
                      },
                      "description": "Lista de dias com total de atendimentos e mensagens."
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                },
                "example": {
                  "data": [
                    {
                      "_id": "2025-06-16",
                      "total": 2,
                      "msgs": 2
                    },
                    {
                      "_id": "2025-06-17",
                      "total": 23,
                      "msgs": 24
                    },
                    {
                      "_id": "2025-06-18",
                      "total": 24,
                      "msgs": 48
                    },
                    {
                      "_id": "2025-06-20",
                      "total": 1,
                      "msgs": 79
                    },
                    {
                      "_id": "2025-06-23",
                      "total": 1,
                      "msgs": 1
                    },
                    {
                      "_id": "2025-06-24",
                      "total": 3,
                      "msgs": 3
                    },
                    {
                      "_id": "2025-06-25",
                      "total": 4,
                      "msgs": 13
                    },
                    {
                      "_id": "2025-06-26",
                      "total": 2,
                      "msgs": 5
                    },
                    {
                      "_id": "2025-06-27",
                      "total": 10,
                      "msgs": 17
                    },
                    {
                      "_id": "2025-06-30",
                      "total": 3,
                      "msgs": 11
                    }
                  ],
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.byhour": {
      "get": {
        "operationId": "livechatConversationsByHourFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Por Hora",
        "description": "Retorna os dados do bloco 'Por Hora' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_id": {
                            "type": "number",
                            "example": 0
                          },
                          "total": {
                            "type": "number",
                            "example": 0
                          },
                          "msgs": {
                            "type": "number",
                            "example": 0
                          }
                        }
                      },
                      "description": "Lista de horas do dia com total de atendimentos e mensagens."
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                },
                "example": {
                  "data": [
                    {
                      "_id": 0,
                      "total": 0,
                      "msgs": 0
                    },
                    {
                      "_id": 1,
                      "total": 0,
                      "msgs": 0
                    },
                    {
                      "_id": 2,
                      "total": 0,
                      "msgs": 0
                    },
                    {
                      "_id": 3,
                      "total": 0,
                      "msgs": 0
                    },
                    {
                      "_id": 4,
                      "total": 0,
                      "msgs": 0
                    },
                    {
                      "_id": 5,
                      "total": 0,
                      "msgs": 0
                    },
                    {
                      "_id": 6,
                      "total": 0,
                      "msgs": 0
                    },
                    {
                      "_id": 7,
                      "total": 0,
                      "msgs": 0
                    },
                    {
                      "_id": 8,
                      "total": 26,
                      "msgs": 242
                    },
                    {
                      "_id": 9,
                      "total": 29,
                      "msgs": 67
                    },
                    {
                      "_id": 10,
                      "total": 30,
                      "msgs": 169
                    },
                    {
                      "_id": 11,
                      "total": 50,
                      "msgs": 249
                    },
                    {
                      "_id": 12,
                      "total": 1,
                      "msgs": 1
                    },
                    {
                      "_id": 13,
                      "total": 23,
                      "msgs": 221
                    },
                    {
                      "_id": 14,
                      "total": 161,
                      "msgs": 402
                    },
                    {
                      "_id": 15,
                      "total": 25,
                      "msgs": 278
                    },
                    {
                      "_id": 16,
                      "total": 11,
                      "msgs": 156
                    },
                    {
                      "_id": 17,
                      "total": 37,
                      "msgs": 81
                    },
                    {
                      "_id": 18,
                      "total": 3,
                      "msgs": 3
                    },
                    {
                      "_id": 19,
                      "total": 0,
                      "msgs": 0
                    },
                    {
                      "_id": 20,
                      "total": 0,
                      "msgs": 0
                    },
                    {
                      "_id": 21,
                      "total": 0,
                      "msgs": 0
                    },
                    {
                      "_id": 22,
                      "total": 0,
                      "msgs": 0
                    },
                    {
                      "_id": 23,
                      "total": 0,
                      "msgs": 0
                    }
                  ],
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.nps": {
      "get": {
        "operationId": "livechatConversationsNPSFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "NPS",
        "description": "Retorna os dados do bloco 'NPS' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "object",
                      "properties": {
                        "totalPorNPS": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "_id": {
                                "type": "string",
                                "example": "😁 5"
                              },
                              "qtde": {
                                "type": "number",
                                "example": 1
                              },
                              "color": {
                                "type": "string",
                                "example": "#10b981"
                              }
                            }
                          },
                          "description": "Lista de ratings NPS com quantidade e cor."
                        },
                        "npsStats": {
                          "type": "object",
                          "properties": {
                            "rating": {
                              "type": "string",
                              "example": "50.00"
                            },
                            "level": {
                              "type": "string",
                              "example": "great"
                            },
                            "message": {
                              "type": "string",
                              "example": "Ótimo"
                            }
                          },
                          "description": "Resumo do NPS calculado."
                        }
                      }
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                },
                "example": {
                  "data": {
                    "totalPorNPS": [
                      {
                        "_id": "😁 5",
                        "qtde": 1,
                        "color": "#10b981"
                      },
                      {
                        "_id": "🙂 4",
                        "qtde": 1,
                        "color": "#fbbf24"
                      }
                    ],
                    "npsStats": {
                      "rating": "50.00",
                      "level": "great",
                      "message": "Ótimo"
                    }
                  },
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.nps.atendente": {
      "get": {
        "operationId": "livechatConversationsNPSAtendentesFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "NPS por Atendente",
        "description": "Retorna os dados do bloco 'NPS por Atendente' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "nome": {
                            "type": "string",
                            "example": "Admin Convert"
                          },
                          "media": {
                            "type": "string",
                            "example": "4.5"
                          }
                        }
                      },
                      "description": "Lista de atendentes com a média do NPS."
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                },
                "example": {
                  "data": [
                    {
                      "nome": "Admin Convert",
                      "media": "4.5"
                    }
                  ],
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.nps.sent.not.responded": {
      "get": {
        "operationId": "livechatConversationsNPSNotRespondedFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "NPS Enviadas x Não Respondidas",
        "description": "Retorna os dados do bloco 'NPS Enviadas x Não Respondidas' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "2025-07-18"
                          },
                          "enviadas": {
                            "type": "number",
                            "example": 1
                          },
                          "naoRespondida": {
                            "type": "number",
                            "example": 0
                          },
                          "porcentagemRespondidas": {
                            "type": "number",
                            "example": 100
                          },
                          "porcentagemNaoRespondidas": {
                            "type": "number",
                            "example": 0
                          }
                        }
                      },
                      "description": "Lista de dias com NPS enviadas x não respondidas e suas porcentagens."
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                },
                "example": {
                  "data": [
                    {
                      "_id": "2025-07-18",
                      "enviadas": 1,
                      "naoRespondida": 0,
                      "porcentagemRespondidas": 100,
                      "porcentagemNaoRespondidas": 0
                    },
                    {
                      "_id": "2025-07-30",
                      "enviadas": 1,
                      "naoRespondida": 0,
                      "porcentagemRespondidas": 100,
                      "porcentagemNaoRespondidas": 0
                    }
                  ],
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.identificator": {
      "get": {
        "operationId": "livechatConversationsIdentificatorFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Atendimentos por Identificador de Entrada",
        "description": "Retorna os dados do bloco 'Atendimentos por Identificador de Entrada' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "N/A"
                          },
                          "qtde": {
                            "type": "number",
                            "example": 396
                          }
                        }
                      },
                      "description": "Lista de identificadores de entrada com a quantidade de atendimentos."
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                },
                "example": {
                  "data": [
                    {
                      "_id": "N/A",
                      "qtde": 396
                    }
                  ],
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.identification.tabulation": {
      "get": {
        "operationId": "livechatConversationsIdentificationTabulationFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Atendimentos por Identificador - Classificação",
        "description": "Retorna os dados do bloco 'Atendimentos por Identificador - Classificação' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "success"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "_id",
                          "qtde"
                        ],
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "N/A => Desenvolvimento",
                            "description": "Identificador de entrada seguido de classificação"
                          },
                          "qtde": {
                            "type": "number",
                            "example": 18,
                            "description": "Quantidade de atendimentos"
                          }
                        }
                      }
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.tags": {
      "get": {
        "operationId": "livechatConversationsTagsFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Atendimentos por Tag",
        "description": "Retorna os dados do bloco 'Atendimentos por Tag' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "totalRooms",
                    "success"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "_id",
                          "qtde",
                          "color"
                        ],
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "Atendimento",
                            "description": "Nome da tag"
                          },
                          "qtde": {
                            "type": "number",
                            "example": 18,
                            "description": "Quantidade de atendimentos com essa tag"
                          },
                          "color": {
                            "type": "string",
                            "example": "#007acc",
                            "description": "Cor associada à tag (pode estar vazia)"
                          }
                        }
                      }
                    },
                    "totalRooms": {
                      "type": "number",
                      "example": 396,
                      "description": "Total de atendimentos considerando todas as tags"
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.tabulations": {
      "get": {
        "operationId": "livechatConversationsTabulationsFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Atendimentos por Classificação",
        "description": "Retorna os dados do bloco 'Atendimentos por Classificação' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "success"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "_id",
                          "qtde"
                        ],
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "Desenvolvimento",
                            "description": "Nome da classificação"
                          },
                          "qtde": {
                            "type": "number",
                            "example": 114,
                            "description": "Quantidade de atendimentos com essa classificação"
                          }
                        }
                      }
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.statustabulation": {
      "get": {
        "operationId": "livechatConversationsStatusTabulationFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Atendimentos por Status Classificação",
        "description": "Retorna os dados do bloco 'Atendimentos por Status Classificação' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "success"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "_id",
                          "qtde"
                        ],
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "Concluído",
                            "description": "Nome da classificação"
                          },
                          "qtde": {
                            "type": "number",
                            "example": 114,
                            "description": "Quantidade de atendimentos com essa classificação"
                          }
                        }
                      },
                      "description": "Lista de classificações com a quantidade de atendimentos em cada uma"
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.byline": {
      "get": {
        "operationId": "livechatConversationsByLineFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Atendimentos por Linha",
        "description": "Retorna os dados do bloco 'Atendimentos por Linha' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "success"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "_id",
                          "qtde",
                          "msgs",
                          "channelType",
                          "channelDescription"
                        ],
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "555430468155",
                            "description": "Identificador do canal ou linha"
                          },
                          "channelType": {
                            "type": "string",
                            "example": "WHATS",
                            "description": "Tipo do canal (ex: WHATS, EMAIL, INSTAGRAM)"
                          },
                          "channelDescription": {
                            "type": "string",
                            "example": "🚀 Convert 8155 (555430468155)",
                            "description": "Descrição do canal ou linha"
                          },
                          "qtde": {
                            "type": "number",
                            "example": 584,
                            "description": "Quantidade de atendimentos"
                          },
                          "msgs": {
                            "type": "number",
                            "example": 2970,
                            "description": "Quantidade de mensagens"
                          }
                        }
                      },
                      "description": "Lista de linhas ou canais com seus atendimentos e mensagens"
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.auto.closed": {
      "get": {
        "operationId": "livechatConversationsByAutoClosedFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Encerrados Automaticamente",
        "description": "Retorna os dados do bloco 'Encerrados Automaticamente' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "success"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "_id",
                          "name",
                          "qtde"
                        ],
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "LsPEMrWaBRNnNrgQP",
                            "description": "Identificador único do departamento ou linha"
                          },
                          "name": {
                            "type": "string",
                            "example": "Desenvolvimento",
                            "description": "Nome do departamento ou linha"
                          },
                          "qtde": {
                            "type": "number",
                            "example": 74,
                            "description": "Quantidade de atendimentos encerrados automaticamente"
                          }
                        }
                      },
                      "description": "Lista de departamentos ou linhas com a quantidade de atendimentos encerrados automaticamente"
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.byAnalyzeSentiment": {
      "get": {
        "operationId": "livechatConversationsByAnalyzeSentimentFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Classificação de Sentimento",
        "description": "Retorna os dados do bloco 'Classificação de Sentimento' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "success"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "_id",
                          "qtde"
                        ],
                        "properties": {
                          "_id": {
                            "description": "Identificador do sentimento, pode ser string ou objeto",
                            "anyOf": [
                              {
                                "type": "string",
                                "example": "Positivo"
                              },
                              {
                                "type": "string",
                                "example": "Neutro"
                              },
                              {
                                "type": "string",
                                "example": "Negativo"
                              }
                            ]
                          },
                          "qtde": {
                            "type": "number",
                            "example": 252,
                            "description": "Quantidade de atendimentos classificados com este sentimento"
                          }
                        }
                      },
                      "description": "Lista de sentimentos com a quantidade de atendimentos"
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.byEngagementLevel": {
      "get": {
        "operationId": "livechatConversationsByEngagementLevelFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Nível de Engajamento",
        "description": "Retorna os dados do bloco 'Nível de Engajamento' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "success"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "_id",
                          "qtde"
                        ],
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "Baixo",
                            "description": "Nível de sentimento"
                          },
                          "qtde": {
                            "type": "number",
                            "example": 248,
                            "description": "Quantidade de atendimentos para esta classificação de sentimento do cliente"
                          }
                        }
                      },
                      "description": "Lista de classificações de sentimento com a quantidade de atendimentos"
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.byKeywords": {
      "get": {
        "operationId": "livechatConversationsByKeywordsFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Palavras chave",
        "description": "Retorna os dados do bloco 'Palavras chave' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "success"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "_id",
                          "qtde"
                        ],
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "Venda",
                            "description": "Palavra-chave identificada nos atendimentos"
                          },
                          "qtde": {
                            "type": "number",
                            "example": 11,
                            "description": "Quantidade de atendimentos que mencionaram essa palavra-chave"
                          }
                        }
                      },
                      "description": "Lista de palavras-chave extraídas dos atendimentos com sua quantidade"
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.byProductsAndServices": {
      "get": {
        "operationId": "livechatConversationsByProductsAndServicesFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Produtos e Serviços",
        "description": "Retorna os dados do bloco 'Produtos e Serviços' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "success"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "_id",
                          "qtde"
                        ],
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "Plano Premium",
                            "description": "Nome do produto ou serviço"
                          },
                          "qtde": {
                            "type": "number",
                            "example": 1,
                            "description": "Quantidade de atendimentos relacionados a esse produto ou serviço"
                          }
                        }
                      },
                      "description": "Lista de produtos ou serviços extraídos dos atendimentos com sua quantidade"
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.flaggedByAgent": {
      "get": {
        "operationId": "livechatConversationsFlaggedByAgentFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Sinalizado por Agente",
        "description": "Retorna os dados do bloco 'Sinalizado por Agente' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "success"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "_id",
                          "qtde",
                          "name",
                          "username"
                        ],
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "admin.convert",
                            "description": "Identificador do agente"
                          },
                          "name": {
                            "type": "string",
                            "example": "Admin Convert",
                            "description": "Nome completo do agente"
                          },
                          "username": {
                            "type": "string",
                            "example": "admin.convert",
                            "description": "Username do agente"
                          },
                          "qtde": {
                            "type": "number",
                            "example": 1,
                            "description": "Quantidade de atendimentos sinalizados com o agente"
                          }
                        }
                      },
                      "description": "Lista de agentes com a quantidade de atendimentos que foram sinalizados com eles"
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/livechat/analytics/dashboards/kpi.flaggedByDepartment": {
      "get": {
        "operationId": "livechatConversationsFlaggedByDepartmentFilter",
        "tags": [
          "KPIs"
        ],
        "summary": "Sinalizado por Departamento",
        "description": "Retorna os dados do bloco 'Sinalizado por Departamento' da página de KPI's.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-17T03:00:00.000Z",
              "description": "Data inicial do filtro (ISO 8601)"
            }
          },
          {
            "name": "end",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-25T02:59:00.000Z",
              "description": "Data final do filtro (ISO 8601)"
            }
          },
          {
            "name": "startClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-07T16:47:00.000Z",
              "description": "Data inicial do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "endClosed",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-10-14T18:44:00.000Z",
              "description": "Data final do período de fechamento dos atendimentos"
            }
          },
          {
            "name": "channels",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "17841414261325760",
                "555430468155"
              ],
              "description": "IDs dos canais separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tagGroupsIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "67b736c5c10742772ed112da"
              ],
              "description": "IDs dos grupos de tags"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "departments",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "s4vwRkckeeu2tm5hb",
                "LsPEMrWaBRNnNrgQP"
              ],
              "description": "IDs dos departamentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "agents",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "3Nv3YLWJ2bsyoKCaw",
                "mp4D8G9wx4x6K579h"
              ],
              "description": "IDs dos agentes"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "nps",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "example": [
                1,
                2
              ],
              "description": "Valores de NPS separados por vírgula"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tabulacao",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Dev",
                "Suporte"
              ],
              "description": "Classificações aplicadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "example": [
                "Arquivamento",
                "Atendimento"
              ],
              "description": "Tags associadas aos atendimentos"
            },
            "style": "form",
            "explode": false
          },
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "#site",
              "description": "Tópico do atendimento"
            }
          },
          {
            "name": "contactType",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "ativa",
                "receptiva"
              ],
              "example": "ativa",
              "description": "Tipo de contato (ativa ou receptiva)"
            }
          },
          {
            "name": "customFieldsChat",
            "in": "query",
            "schema": {
              "type": "object",
              "description": "Objeto contendo os campos customizados dos atendimentos. As chaves são dinâmicas e enviadas no formato `customFieldsChat[chave]=valor` na URL.",
              "additionalProperties": {
                "type": [
                  "string",
                  "number",
                  "boolean",
                  "array",
                  "object",
                  "null"
                ],
                "description": "Valor dos campos customizados, que pode ser de qualquer tipo."
              },
              "example": {
                "ticket": "123456",
                "telefone_comercial": "+55 11 99999-9999",
                "random_list": [
                  "item1",
                  "item2"
                ],
                "number_field": 42,
                "long_text": "Texto longo de exemplo...",
                "date_field": "2025-10-24T13:00:00Z",
                "bool_field": true
              }
            },
            "style": "deepObject",
            "explode": true
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados filtrados retornados com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "_id",
                      "name",
                      "qtde"
                    ],
                    "properties": {
                      "_id": {
                        "type": "string",
                        "example": "LsPEMrWaBRNnNrgQP",
                        "description": "Identificador único do departamento"
                      },
                      "name": {
                        "type": "string",
                        "example": "Desenvolvimento",
                        "description": "Nome do departamento"
                      },
                      "qtde": {
                        "type": "number",
                        "example": 1,
                        "description": "Quantidade de atendimentos sinalizados com este departamento"
                      },
                      "color": {
                        "type": "string",
                        "example": "#16bd00",
                        "description": "Cor associada ao departamento (opcional)"
                      }
                    }
                  },
                  "description": "Lista de departamentos com a quantidade de atendimentos sinalizados com eles"
                }
              }
            }
          },
          "400": {
            "description": "Erro nos parâmetros informados.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "$ref": "#/components/schemas/SuccessFalse"
                    },
                    "error": {
                      "$ref": "#/components/schemas/ErrorMessage"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/webhooks": {
      "get": {
        "operationId": "getWebhooks",
        "tags": [
          "Webhooks"
        ],
        "summary": "Listar webhooks existentes",
        "description": "Retorna uma lista de webhooks cadastrados no sistema. Permite filtros por nome, status, eventos, URL e busca textual. É necessário possuir a permissão `view-webhooks`.",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "description": "Texto para busca no nome, endpoint ou evento dos webhooks.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filtra webhooks pelo nome de Webhooks.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Filtra webhooks por status (ativo/inativo).",
            "schema": {
              "type": "string",
              "enum": [
                "active",
                "inactive"
              ]
            }
          },
          {
            "name": "events",
            "in": "query",
            "description": "Filtra webhooks pelos eventos configurados.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endpointUrl",
            "in": "query",
            "description": "Filtra webhooks pela URL de destino.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Número de itens a pular para paginação.",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "count",
            "in": "query",
            "description": "Quantidade de itens a retornar.",
            "schema": {
              "type": "integer",
              "default": 25
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Critério de ordenação em formato JSON.",
            "schema": {
              "type": "string",
              "example": "{\"name\": 1}"
            }
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de webhooks retornada com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "webhooks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "abc123"
                          },
                          "name": {
                            "type": "string",
                            "example": "Webhook de Mensagens"
                          },
                          "status": {
                            "type": "string",
                            "example": "active"
                          },
                          "events": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "example": "message.sent"
                            }
                          },
                          "endpointUrl": {
                            "type": "string",
                            "example": "https://meusite.com/webhook"
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "updatedAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        }
                      }
                    },
                    "total": {
                      "type": "integer",
                      "example": 10
                    },
                    "totalCreated": {
                      "type": "integer",
                      "example": 25
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não autorizado a visualizar webhooks."
          }
        }
      },
      "post": {
        "operationId": "createWebhook",
        "tags": [
          "Webhooks"
        ],
        "summary": "Criar um novo webhook",
        "description": "Cria um novo webhook no sistema. É necessário possuir a permissão `create-webhooks`.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "status",
                  "events",
                  "endpointUrl"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome descritivo do webhook.",
                    "example": "Webhook de mensagens recebidas"
                  },
                  "status": {
                    "type": "string",
                    "description": "Status do webhook.",
                    "enum": [
                      "active",
                      "inactive"
                    ],
                    "example": "active"
                  },
                  "events": {
                    "type": "array",
                    "description": "Lista de eventos que irão acionar o webhook.",
                    "items": {
                      "type": "string",
                      "example": "message.received"
                    }
                  },
                  "endpointUrl": {
                    "type": "string",
                    "description": "URL de destino para envio dos eventos do webhook.",
                    "example": "https://exemplo.com/webhook"
                  },
                  "customHeaders": {
                    "type": "array",
                    "description": "Cabeçalhos personalizados a serem enviados na requisição do webhook.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "type": "string",
                          "example": "Authorization"
                        },
                        "value": {
                          "type": "string",
                          "example": "Bearer token123"
                        }
                      }
                    }
                  },
                  "customOptions": {
                    "type": "object",
                    "description": "Configurações personalizadas para o comportamento do webhook.",
                    "additionalProperties": {
                      "type": "object",
                      "additionalProperties": {
                        "type": [
                          "string",
                          "boolean"
                        ]
                      }
                    },
                    "example": {
                      "Message": {
                        "receiveSystemMessages": true
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook criado com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "webhook": {
                      "type": "string",
                      "example": "69ad1bf21f426311127af54c"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro de validação ou parâmetros inválidos.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": false
                    },
                    "error": {
                      "type": "string",
                      "example": "Invalid payload."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não autorizado a criar webhooks."
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/webhooks/{_id}": {
      "delete": {
        "operationId": "deleteWebhook",
        "tags": [
          "Webhooks"
        ],
        "summary": "Deletar um webhook existente",
        "description": "Remove permanentemente um webhook e todos os logs associados a ele. É necessário possuir a permissão `delete-webhooks`.",
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "description": "ID do webhook a ser deletado.",
            "schema": {
              "type": "string",
              "example": "69ad1bf21f426311127af54c"
            }
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webhook deletado com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "deleted": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro de validação ou falha ao deletar o webhook.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": false
                    },
                    "error": {
                      "type": "string",
                      "example": "Webhook not found."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não autorizado a deletar webhooks."
          }
        }
      },
      "put": {
        "operationId": "updateWebhook",
        "tags": [
          "Webhooks"
        ],
        "summary": "Atualizar um webhook existente",
        "description": "Atualiza os dados de um webhook já existente. É necessário possuir a permissão `modify-webhooks`. Os campos aceitos são os mesmos da criação.",
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "description": "ID do webhook a ser atualizado.",
            "schema": {
              "type": "string",
              "example": "69ad1bf21f426311127af54c"
            }
          },
          {
            "name": "returnUpdatedDocument",
            "in": "query",
            "required": false,
            "description": "Se definido como `true`, retorna o documento atualizado após a modificação.",
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ],
              "example": "true"
            }
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "status",
                  "events",
                  "endpointUrl"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome descritivo do webhook.",
                    "example": "Webhook de atualização de mensagens"
                  },
                  "status": {
                    "type": "string",
                    "description": "Status do webhook.",
                    "enum": [
                      "active",
                      "inactive"
                    ],
                    "example": "inactive"
                  },
                  "events": {
                    "type": "array",
                    "description": "Lista de eventos que irão acionar o webhook.",
                    "items": {
                      "type": "string",
                      "example": "message.sent"
                    }
                  },
                  "endpointUrl": {
                    "type": "string",
                    "description": "URL de destino para envio dos eventos do webhook.",
                    "example": "https://exemplo.com/webhook"
                  },
                  "customHeaders": {
                    "type": "array",
                    "description": "Cabeçalhos personalizados a serem enviados na requisição do webhook.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "type": "string",
                          "example": "Authorization"
                        },
                        "value": {
                          "type": "string",
                          "example": "Bearer token123"
                        }
                      }
                    }
                  },
                  "customOptions": {
                    "type": "object",
                    "description": "Configurações personalizadas para o comportamento do webhook.",
                    "additionalProperties": {
                      "type": "object",
                      "additionalProperties": {
                        "type": [
                          "string",
                          "boolean"
                        ]
                      }
                    },
                    "example": {
                      "Message": {
                        "receiveSystemMessages": false
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook atualizado com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "updated": {
                      "type": "boolean",
                      "example": true
                    },
                    "updatedDocument": {
                      "type": "object",
                      "description": "Documento atualizado retornado quando `returnUpdatedDocument=true`.",
                      "properties": {
                        "_id": {
                          "type": "string",
                          "example": "69ad1bf21f426311127af54c"
                        },
                        "name": {
                          "type": "string",
                          "example": "Webhook de atualização de mensagens"
                        },
                        "status": {
                          "type": "string",
                          "example": "inactive"
                        },
                        "events": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "example": "message.sent"
                          }
                        },
                        "endpointUrl": {
                          "type": "string",
                          "example": "https://exemplo.com/webhook"
                        },
                        "updatedAt": {
                          "type": "string",
                          "format": "date-time",
                          "example": "2025-11-07T12:00:00Z"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro de validação ou parâmetros inválidos.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": false
                    },
                    "error": {
                      "type": "string",
                      "example": "Invalid payload or webhook not found."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não autorizado a modificar webhooks."
          }
        }
      }
    },
    "/webhooks/{_id}/logs": {
      "get": {
        "operationId": "getWebhookLogs",
        "tags": [
          "Webhooks"
        ],
        "summary": "Listar logs de um webhook específico",
        "description": "Retorna os logs de execução de um webhook específico, incluindo detalhes das requisições enviadas, status de resposta e estatísticas agregadas. É necessário possuir a permissão `view-webhooks-logs`.",
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "description": "ID do webhook para listar os logs.",
            "schema": {
              "type": "string",
              "example": "69ad1bf21f426311127af54c"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Texto de busca para filtrar logs (por id, evento, status ou erro).",
            "schema": {
              "type": "string",
              "example": "message.sent"
            }
          },
          {
            "name": "success",
            "in": "query",
            "required": false,
            "description": "Filtra logs com base no resultado da execução.",
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "name": "events",
            "in": "query",
            "required": false,
            "description": "Filtra logs pelos tipos de eventos registrados.",
            "schema": {
              "type": "string",
              "example": "message.received"
            }
          },
          {
            "name": "dontLimitCount",
            "in": "query",
            "required": false,
            "description": "Se verdadeiro, ignora a limitação padrão de contagem de registros para estatísticas.",
            "schema": {
              "type": "boolean",
              "example": false
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "required": false,
            "description": "Filtra logs a partir de uma data específica (formato ISO 8601).",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-11-01T00:00:00Z"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "required": false,
            "description": "Filtra logs até uma data específica (formato ISO 8601).",
            "schema": {
              "type": "string",
              "format": "date-time",
              "example": "2025-11-07T23:59:59Z"
            }
          },
          {
            "name": "minimumResponseTime",
            "in": "query",
            "required": false,
            "description": "Filtra logs cuja resposta do webhook levou pelo menos esse tempo (em milissegundos).",
            "schema": {
              "type": "integer",
              "example": 500
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Número de itens a pular para paginação.",
            "schema": {
              "type": "integer",
              "default": 0
            }
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "description": "Quantidade de itens a retornar.",
            "schema": {
              "type": "integer",
              "default": 25
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "description": "Critério de ordenação em formato JSON.",
            "schema": {
              "type": "string",
              "example": "{\"timestamp\": -1}"
            }
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Logs retornados com sucesso.",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "logs": [
                    {
                      "_id": "690cfac3af8e18307e84655d",
                      "success": false,
                      "status": 401,
                      "statusText": "Unauthorized",
                      "responseTimeInMs": 1173,
                      "attempts": 1,
                      "webhookId": "68b8291db49b1b37fa6c173a",
                      "webhookEvent": "Message",
                      "headers": {
                        "server": "nginx",
                        "date": "Thu, 06 Nov 2025 19:45:07 GMT",
                        "content-type": "application/json",
                        "connection": "close",
                        "x-instance-id": "i95oHSWnq8AfCgY4c"
                      },
                      "requestPayload": {
                        "_id": "aaabbbcccdddeeeff",
                        "label": "Fulano da Silva",
                        "createdAt": "2025-10-30T12:21:03.720Z",
                        "lastMessageAt": "2025-11-06T11:54:22.148Z",
                        "customFields": {
                          "tipo_mensagem": "ativa"
                        },
                        "visitor": {
                          "_id": "6iEh13231jM2D2T8K",
                          "token": "WHATS-9999999999999",
                          "name": "Fulano da Silva",
                          "empresa": "Convert Company",
                          "username": "WHATS-9999999999999",
                          "phone": [
                            {
                              "phoneNumber": "9999999999999"
                            }
                          ],
                          "customFields": {
                            "linguagem_favorita": "Typescript",
                            "origem": "WHATS",
                            "id_whats": "9999999999999",
                            "destino": "5554999999999",
                            "canal_destino": "🚀 Convert 8155",
                            "os-contato": "Linux"
                          }
                        },
                        "agent": {
                          "_id": "31Eh1ae31jM2dasfg",
                          "username": "beltrano",
                          "name": "Beltrano da Silva",
                          "email": "beltrano@convertcompany.com.br"
                        },
                        "type": "Message",
                        "messages": [
                          {
                            "u": {
                              "_id": "31Eh1ae31jM2dasfg",
                              "username": "beltrano",
                              "name": "Beltrano da Silva"
                            },
                            "_id": "312NB2m31xW23i1m3Z",
                            "username": "beltrano",
                            "msg": "Olá Fulano, tudo bem?",
                            "ts": "2025-11-06T19:45:05.835Z",
                            "sentBy": "agent",
                            "agentId": "312NB2m31xW23i1m3Z"
                          }
                        ]
                      },
                      "responsePayload": {
                        "status": "error",
                        "message": "You must be logged in to do this."
                      },
                      "ts": "2025-11-06T19:45:07.446Z",
                      "_updatedAt": "2025-11-06T19:45:07.446Z"
                    }
                  ],
                  "total": 1,
                  "stats": {
                    "successCount": 0,
                    "errorCount": 1,
                    "averageResponseTime": 1173
                  },
                  "webhook": {
                    "_id": "68b8291db49b1b37fa6c173a",
                    "name": "Webhook de Mensagens",
                    "status": "active",
                    "events": [
                      "Message"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro de validação ou parâmetros inválidos.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": false
                    },
                    "error": {
                      "type": "string",
                      "example": "Invalid webhook ID or query parameters."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não autorizado a visualizar logs de webhooks."
          }
        }
      }
    },
    "/webhooks/{_id}/test": {
      "post": {
        "operationId": "testWebhookConnection",
        "tags": [
          "Webhooks"
        ],
        "summary": "Testar a conexão de um Webhook",
        "description": "Permite testar a conexão de um Webhook específico, enviando um payload customizado para o endpoint configurado. Essa rota realiza uma chamada HTTP real para o endpoint definido no Webhook e retorna o resultado da execução.\n\nÉ necessário possuir a permissão **test-webhooks** para utilizar esta rota.",
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "description": "ID do Webhook que será testado.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "customPayload": {
                    "type": "object",
                    "description": "Payload customizado a ser enviado para o endpoint do Webhook."
                  }
                },
                "example": {
                  "customPayload": {
                    "event": "Message",
                    "data": {
                      "text": "Mensagem de teste do Webhook"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resultado do teste do Webhook retornado com sucesso.",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "testResult": {
                    "success": true,
                    "status": 200,
                    "statusText": "OK",
                    "responseTime": 123,
                    "responseBody": {
                      "received": true,
                      "message": "Webhook test received successfully."
                    },
                    "executionDate": "2025-11-07T14:00:00.000Z"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro ao tentar executar o teste do Webhook.",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "testResult": {
                    "success": false,
                    "status": 0,
                    "statusText": "server error",
                    "responseTime": 0,
                    "error": "server error",
                    "executionDate": "2025-11-07T14:00:00.000Z"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não autorizado a testar webhooks."
          },
          "404": {
            "description": "Webhook não encontrado."
          }
        }
      }
    },
    "/webhooks/logReplay": {
      "post": {
        "operationId": "replayWebhookLog",
        "tags": [
          "Webhooks"
        ],
        "summary": "Reexecutar um log de Webhook (Replay)",
        "description": "Permite reexecutar um log de Webhook previamente registrado, enviando novamente a mesma requisição do log original para o endpoint configurado. Essa rota é útil para testar novamente a entrega de um evento sem precisar gerar um novo disparo real.\n\nÉ necessário possuir a permissão **replay-webhooks-logs** para utilizar esta rota.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "logId"
                ],
                "properties": {
                  "logId": {
                    "type": "string",
                    "description": "ID do log de Webhook que será reexecutado.",
                    "example": "690cfac3af8e18307e84655d"
                  },
                  "saveReplay": {
                    "type": "boolean",
                    "description": "Define se o resultado do replay deve ser salvo como um novo log no histórico.",
                    "example": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Replay executado com sucesso.",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "replayResult": {
                    "success": true,
                    "status": 200,
                    "statusText": "OK",
                    "responseTime": 145,
                    "responseBody": {
                      "message": "Webhook replay received successfully."
                    },
                    "executionDate": "2025-11-07T14:30:00.000Z"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro ao tentar reexecutar o log.",
            "content": {
              "application/json": {
                "example": {
                  "success": false,
                  "replayResult": {
                    "success": false,
                    "status": 0,
                    "statusText": "server error",
                    "responseTime": 0,
                    "error": "server error",
                    "executionDate": "2025-11-07T14:30:00.000Z"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não autorizado a reexecutar logs de webhooks."
          },
          "404": {
            "description": "Log de Webhook não encontrado."
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/webhooks/events": {
      "get": {
        "summary": "Listar eventos disponíveis para Webhooks",
        "description": "Retorna todos os eventos que podem ser observados e utilizados na criação de Webhooks. Esta rota requer a permissão `view-webhooks`.",
        "operationId": "getWebhooksEvents",
        "tags": [
          "Webhooks"
        ],
        "responses": {
          "200": {
            "description": "Lista de eventos disponíveis retornada com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "eventsAvailable": {
                      "type": "array",
                      "description": "Lista de eventos disponíveis para observação.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "key": {
                            "type": "string",
                            "description": "Identificador do evento.",
                            "example": "Message"
                          },
                          "options": {
                            "type": "array",
                            "description": "Lista de opções adicionais para configuração do evento, caso existam.",
                            "items": {
                              "type": "object",
                              "properties": {
                                "key": {
                                  "type": "string",
                                  "description": "Identificador da opção.",
                                  "example": "receiveVisitorMessages"
                                },
                                "i18nLabel": {
                                  "type": "string",
                                  "description": "Chave de tradução do rótulo da opção.",
                                  "example": "Receive_Visitor_Messages_Label"
                                },
                                "i18nDescription": {
                                  "type": "string",
                                  "description": "Chave de tradução da descrição da opção.",
                                  "example": "Receive_Visitor_Messages_Description"
                                },
                                "type": {
                                  "type": "string",
                                  "description": "Tipo da opção (ex: boolean, string, number).",
                                  "example": "boolean"
                                },
                                "defaultValue": {
                                  "description": "Valor padrão da opção.",
                                  "example": true
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "total": {
                      "type": "integer",
                      "description": "Número total de eventos disponíveis.",
                      "example": 6
                    }
                  }
                },
                "examples": {
                  "success": {
                    "summary": "Exemplo de resposta bem-sucedida",
                    "value": {
                      "eventsAvailable": [
                        {
                          "key": "LivechatSession"
                        },
                        {
                          "key": "LivechatSessionStart"
                        },
                        {
                          "key": "LivechatSessionTaken"
                        },
                        {
                          "key": "LivechatSessionQueued"
                        },
                        {
                          "key": "LivechatSessionForwarded"
                        },
                        {
                          "key": "Message",
                          "options": [
                            {
                              "key": "receiveVisitorMessages",
                              "i18nLabel": "Receive_Visitor_Messages_Label",
                              "i18nDescription": "Receive_Visitor_Messages_Description",
                              "type": "boolean",
                              "defaultValue": true
                            },
                            {
                              "key": "receiveAgentMessages",
                              "i18nLabel": "Receive_Agent_Messages_Label",
                              "i18nDescription": "Receive_Agent_Messages_Description",
                              "type": "boolean",
                              "defaultValue": true
                            },
                            {
                              "key": "receiveSystemMessages",
                              "i18nLabel": "Receive_System_Messages_Label",
                              "i18nDescription": "Receive_System_Messages_Description",
                              "type": "boolean",
                              "defaultValue": false
                            }
                          ]
                        }
                      ],
                      "total": 6,
                      "success": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não autorizado a visualizar webhooks.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": false
                    },
                    "error": {
                      "type": "string",
                      "example": "unauthorized"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/livechat/contact": {
      "post": {
        "summary": "Criar um novo contato do Livechat",
        "description": "Cria um novo contato no Livechat com as informações fornecidas. É necessário ter a permissão `can-edit-contact-preferred-agent` para definir o agente preferido durante a criação.",
        "operationId": "createLivechatContact",
        "tags": [
          "Contatos"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "Fulano Silva"
                  },
                  "channelSelected": {
                    "type": "string",
                    "example": "WHATS"
                  },
                  "empresa": {
                    "type": "string",
                    "example": "Convert Company"
                  },
                  "agentePreferido": {
                    "type": "string",
                    "example": "admin.convert"
                  },
                  "consentimento": {
                    "type": "string",
                    "example": "Pendente"
                  },
                  "consentimentoEvidencia": {
                    "type": "string",
                    "example": "http://link.com"
                  },
                  "email": {
                    "type": "string",
                    "example": "fulanosilva@email.com"
                  },
                  "phone": {
                    "type": "string",
                    "example": "5554999999999"
                  },
                  "customFields": {
                    "type": "object",
                    "example": {
                      "linguagem_favorita": "Typescript",
                      "os": "Linux"
                    }
                  },
                  "contactGroups": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "D4GAdEd4FHCJ5Yfpi",
                      "HwDn3XdFnuk52sCTS"
                    ]
                  },
                  "tags": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "example": [
                      "Lead"
                    ]
                  },
                  "stopReceivingCampaigns": {
                    "type": "boolean",
                    "example": false
                  }
                },
                "required": [
                  "name",
                  "channelSelected"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Contato criado com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "contact": {
                      "type": "object",
                      "example": {
                        "name": "Fulano Silva",
                        "phone": "5554999999999",
                        "email": "fulanosilva@email.com",
                        "channelSelected": "WHATS",
                        "empresa": "Convert Company",
                        "stopReceivingCampaigns": false,
                        "consentimento": "Pendente",
                        "consentimentoEvidencia": "http://link.com",
                        "customFields": {
                          "linguagem_favorita": "Typescript",
                          "os": "Linux"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Usuário sem permissão para definir o agente preferido.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": false
                    },
                    "error": {
                      "type": "string",
                      "example": "user-cannot-edit-preffered-agent"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      },
      "put": {
        "summary": "Atualizar um contato existente do Livechat",
        "description": "Atualiza as informações de um contato existente. É necessário informar o `contactId`. Caso o campo `preferredAgent` seja enviado, o usuário precisa ter a permissão `can-edit-contact-preferred-agent`.",
        "operationId": "updateLivechatContact",
        "tags": [
          "Contatos"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "contactId": {
                    "type": "string",
                    "example": "aBcDeFg123"
                  },
                  "name": {
                    "type": "string",
                    "example": "Fulano Silva Atualizado"
                  },
                  "preferredAgent": {
                    "type": "string",
                    "example": "admin.convert"
                  },
                  "phone": {
                    "type": "string",
                    "example": "5554998888888"
                  },
                  "email": {
                    "type": "string",
                    "example": "fulano.novo@email.com"
                  },
                  "company": {
                    "type": "string",
                    "example": "Convert Company"
                  },
                  "consent": {
                    "type": "string",
                    "example": "Aceito"
                  },
                  "consentEvidence": {
                    "type": "string",
                    "example": "Registro do CRM"
                  },
                  "stopReceivingCampaigns": {
                    "type": "boolean",
                    "example": true
                  },
                  "livechatData": {
                    "type": "object",
                    "example": {
                      "canalOrigem": "Instagram"
                    }
                  }
                },
                "required": [
                  "contactId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Contato atualizado com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "updated": {
                      "type": "boolean",
                      "example": true
                    },
                    "record": {
                      "type": "object",
                      "example": {
                        "_id": "aBcDeFg123",
                        "name": "Fulano Silva Atualizado",
                        "preferredAgent": "dsad321a1cd3r1as",
                        "preferredAgentName": "Beltrano Silva",
                        "email": "fulano.novo@email.com",
                        "phone": "5554998888888",
                        "company": "Convert Company",
                        "updatedAt": "2025-11-07T12:15:00.000Z"
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Usuário não tem permissão para editar o visitante ou o agente preferido.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": false
                    },
                    "error": {
                      "type": "string",
                      "example": "user-cannot-edit-preffered-agent"
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/livechat/contact.lastRoom/{contactId}": {
      "get": {
        "operationId": "LivechatContactLastRoom",
        "tags": [
          "Contatos"
        ],
        "summary": "Obtém o último atendimento de um contato",
        "description": "Retorna informações detalhadas sobre o último atendimento (sala) associado a um contato, incluindo dados do contato, canal, campos personalizados e métricas do atendimento. Requer autenticação.",
        "parameters": [
          {
            "name": "contactId",
            "in": "path",
            "required": true,
            "description": "ID do contato (visitorId ou token) para buscar o último atendimento",
            "schema": {
              "type": "string",
              "example": "6iEhqN6mdjM6D2T8K"
            }
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados retornados com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    },
                    "lastRoom": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "description": "Dados do último atendimento do contato",
                      "properties": {
                        "_id": {
                          "type": "string",
                          "example": "GdpyMWvEgF9mgT3GM"
                        },
                        "msgs": {
                          "type": "integer",
                          "example": 23
                        },
                        "lm": {
                          "type": "string",
                          "format": "date-time",
                          "example": "2025-11-06T19:45:16.051Z"
                        },
                        "fname": {
                          "type": "string",
                          "example": "Fulano Silva"
                        },
                        "departmentId": {
                          "type": "string",
                          "example": "LsPEMrWaBRNnNrgQP"
                        },
                        "departmentMain": {
                          "type": "string",
                          "example": "LsPEMrWaBRNnNrgQP"
                        },
                        "livechatData": {
                          "type": "object",
                          "example": {
                            "tipo_mensagem": "ativa",
                            "campo_custom": "valor123"
                          }
                        },
                        "destinyChannel": {
                          "type": "string",
                          "example": "555499999999"
                        },
                        "channelData": {
                          "type": "object",
                          "description": "Informações do canal de destino utilizado no atendimento",
                          "properties": {
                            "_id": {
                              "type": "string",
                              "example": "sEh6JtZCJcL5QSpPt"
                            },
                            "descricao": {
                              "type": "string",
                              "example": "🚀 Canal Convert"
                            },
                            "identificador": {
                              "type": "string",
                              "example": "555498888888"
                            },
                            "tipo": {
                              "type": "string",
                              "example": "WHATS"
                            }
                          }
                        },
                        "lastMessage": {
                          "type": "object",
                          "description": "Última mensagem registrada na sala",
                          "example": {
                            "msg": "Ok, muito obrigado!",
                            "u": {
                              "_id": "dsP123WaB321nargd",
                              "username": "fulano.silva",
                              "name": "Fulano Silva"
                            },
                            "ts": "2025-11-06T19:45:16.051Z"
                          }
                        },
                        "servedBy": {
                          "type": "object",
                          "description": "Agente que atendeu o visitante",
                          "example": {
                            "_id": "dsP123WaB321nargd",
                            "username": "fulano.silva",
                            "ts": "2025-11-04T18:40:15.581Z"
                          }
                        },
                        "closedBy": {
                          "type": "object",
                          "description": "Usuário que encerrou o atendimento",
                          "example": {
                            "_id": "dsP123WaB321nargd",
                            "username": "fulano.silva"
                          }
                        },
                        "metrics": {
                          "type": "object",
                          "description": "Métricas relacionadas ao atendimento",
                          "example": {
                            "reaction": {
                              "fd": "2025-10-30T12:23:23.830Z",
                              "ft": 2.982,
                              "tt": 146.568
                            },
                            "response": {
                              "avg": 45.5022,
                              "fd": "2025-10-30T12:23:23.830Z",
                              "ft": 83.925,
                              "total": 5,
                              "tt": 227.511
                            },
                            "chatDuration": 631445.63,
                            "serviceTimeDuration": 176693.769,
                            "visitorInactivity": 28247
                          }
                        },
                        "tags": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "example": [
                            "Atendimento",
                            "Atendimento ao Cliente"
                          ]
                        },
                        "statusTabulacao": {
                          "type": "string",
                          "example": "Vendido"
                        },
                        "tabulacao": {
                          "type": "string",
                          "example": "Comercial"
                        }
                      }
                    },
                    "contact": {
                      "type": "object",
                      "description": "Dados do contato consultado",
                      "properties": {
                        "_id": {
                          "type": "string",
                          "example": "6iEhqN6mdjM6D2T8K"
                        },
                        "name": {
                          "type": "string",
                          "example": "Fulano Silva"
                        },
                        "username": {
                          "type": "string",
                          "example": "WHATS-555499999999"
                        },
                        "phone": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "phoneNumber": {
                                "type": "string",
                                "example": "555499999999"
                              }
                            }
                          }
                        },
                        "email": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "example": null
                        },
                        "empresa": {
                          "type": "string",
                          "example": "Convert Company"
                        },
                        "channelSelected": {
                          "type": "string",
                          "example": "WHATS"
                        },
                        "consentimento": {
                          "type": "string",
                          "example": "Pendente"
                        },
                        "consentimentoEvidencia": {
                          "type": "string",
                          "example": ""
                        },
                        "stopReceivingCampaigns": {
                          "type": "boolean",
                          "example": false
                        },
                        "tags": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "example": [
                            "Contato Legal",
                            "Contato Muito Legal"
                          ]
                        },
                        "livechatData": {
                          "type": "object",
                          "example": {
                            "linguagem_favorita": "Javascript",
                            "os-contato": "Linux",
                            "origem": "WHATS",
                            "id_whats": "555499999999"
                          }
                        }
                      }
                    },
                    "contactCustomFields": {
                      "type": "object",
                      "description": "Definições dos campos personalizados do contato",
                      "example": {
                        "linguagem_favorita": {
                          "label": "Linguagem Favorita",
                          "type": "text"
                        },
                        "os-contato": {
                          "label": "Sistema Operacional",
                          "type": "text"
                        }
                      }
                    },
                    "roomCustomFields": {
                      "type": "object",
                      "description": "Definições dos campos personalizados da sala",
                      "example": {
                        "dog_preferido": {
                          "label": "Dog Preferido",
                          "type": "text"
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Erro de validação ou parâmetro inválido"
          },
          "401": {
            "description": "Não autorizado"
          },
          "404": {
            "description": "Contato ou último atendimento não encontrado"
          }
        }
      }
    },
    "/vertt/embeddingCollections": {
      "get": {
        "summary": "Listar bases de conhecimento",
        "operationId": "VerttEmbeddingCollectionsGetEmbeddings",
        "description": "Retorna uma lista de coleções de embeddings que são utilizadas como base de conhecimento para agentes de IA do Vertt.",
        "tags": [
          "Bases de conhecimento"
        ],
        "parameters": [
          {
            "in": "query",
            "name": "total",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "Quantidade total de registros (geralmente retornado pela API; não deve ser enviado pelo cliente)."
          },
          {
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "Quantidade de itens exibidos por página."
          },
          {
            "in": "query",
            "name": "current_page",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "Página atual da paginação."
          },
          {
            "in": "query",
            "name": "last_page",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "Última página disponível na paginação."
          },
          {
            "in": "query",
            "name": "from",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "Índice inicial referente ao lote retornado."
          },
          {
            "in": "query",
            "name": "to",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "Índice final referente ao lote retornado."
          },
          {
            "in": "query",
            "name": "offset",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "Deslocamento manual utilizado como alternativa à paginação por página."
          },
          {
            "in": "query",
            "name": "count",
            "schema": {
              "type": "number"
            },
            "required": false,
            "description": "Número de itens retornados pela API na requisição atual."
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de coleções de bases de conhecimento para uso com agentes do Vertt.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "msg": {
                      "type": "string",
                      "example": "Bases de conhecimento",
                      "description": "Mensagem informativa do serviço."
                    },
                    "status": {
                      "type": "number",
                      "example": 200,
                      "description": "Código HTTP da operação."
                    },
                    "data": {
                      "type": "array",
                      "description": "Lista de coleções disponíveis.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "number",
                            "example": 79
                          },
                          "display_name": {
                            "type": "string",
                            "example": "Documentação de F.A.Q"
                          },
                          "id_cliente": {
                            "type": "number",
                            "example": 1
                          },
                          "description": {
                            "type": "string",
                            "example": "Documentos com dúvidas sobre o produto"
                          },
                          "kb_identifier": {
                            "type": "string",
                            "example": "1_convertcompany_123123123123"
                          },
                          "document_count": {
                            "type": "number",
                            "example": 15
                          },
                          "total_chunks": {
                            "type": "number",
                            "example": 721
                          },
                          "metadata": {
                            "type": [
                              "object",
                              "null"
                            ],
                            "example": null
                          },
                          "is_active": {
                            "type": "boolean",
                            "example": true
                          }
                        }
                      }
                    },
                    "success": {
                      "type": "boolean",
                      "example": true,
                      "description": "Indica se a operação foi bem-sucedida."
                    },
                    "pagination": {
                      "type": "object",
                      "description": "Informações de paginação do retorno.",
                      "properties": {
                        "total": {
                          "type": "number",
                          "example": 3
                        },
                        "per_page": {
                          "type": "number",
                          "example": 100
                        },
                        "current_page": {
                          "type": "number",
                          "example": 1
                        },
                        "last_page": {
                          "type": "number",
                          "example": 1
                        },
                        "from": {
                          "type": "number",
                          "example": 1
                        },
                        "to": {
                          "type": "number",
                          "example": 3
                        }
                      }
                    },
                    "collectionsInfos": {
                      "type": "object",
                      "description": "Informações complementares sobre cada coleção.",
                      "additionalProperties": {
                        "type": "object",
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "79"
                          },
                          "totalFiles": {
                            "type": "number",
                            "example": 1
                          },
                          "totalSize": {
                            "type": "number",
                            "example": 6330407
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não possui permissão necessária.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": false
                    },
                    "error": {
                      "type": "string",
                      "example": "unauthorized"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Criar base de conhecimento",
        "operationId": "VerttEmbeddingCollectionsCreateEmbeddings",
        "description": "Cria uma coleção de embeddings que servirá como base de conhecimento para uso em agentes de IA do Vertt. Aceita upload de arquivos para processamento.",
        "tags": [
          "Bases de conhecimento"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "display_name": {
                    "type": "string",
                    "description": "Nome da base de conhecimento.",
                    "example": "F.A.Q"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição da base de conhecimento.",
                    "example": "Base de conhecimento com informações do produto."
                  },
                  "is_active": {
                    "type": "boolean",
                    "description": "Define se a base estará ativa ou não.",
                    "example": true
                  },
                  "file": {
                    "type": "array",
                    "description": "Arquivos enviados para indexação da base. Suporta múltiplos arquivos.",
                    "items": {
                      "type": "string",
                      "format": "binary"
                    }
                  }
                },
                "required": [
                  "display_name",
                  "description"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Base de conhecimento criada com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "msg": {
                      "type": "string",
                      "example": "Base de conhecimento criada"
                    },
                    "status": {
                      "type": "number",
                      "example": 201
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number",
                          "example": 81
                        },
                        "display_name": {
                          "type": "string",
                          "example": "F.A.Q"
                        },
                        "description": {
                          "type": "string",
                          "example": "Base de conhecimento com informações do produto."
                        },
                        "is_active": {
                          "type": "boolean",
                          "example": true
                        },
                        "kb_identifier": {
                          "type": "string",
                          "example": "1_convertcompany_123123123123"
                        }
                      }
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário sem permissão para criar novas coleções"
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/vertt/embeddingCollections/{identifier}": {
      "parameters": [
        {
          "in": "path",
          "name": "identifier",
          "schema": {
            "type": "string"
          },
          "required": true,
          "description": "Identificador único da base de conhecimento (ex.: `1`)."
        }
      ],
      "get": {
        "tags": [
          "Bases de conhecimento"
        ],
        "operationId": "VerttEmbeddingCollectionsGetOneEmbedding",
        "summary": "Buscar uma base",
        "description": "Retorna os dados da base de conhecimento associada ao identificador informado.",
        "responses": {
          "200": {
            "description": "Arquivos encontrados",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "files": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "SZrAiJuzXdMYvavWu"
                          },
                          "name": {
                            "type": "string",
                            "example": "LPI-Learning-Material-010-160-en.pdf"
                          },
                          "size": {
                            "type": "number",
                            "example": 6330407
                          },
                          "type": {
                            "type": "string",
                            "example": "application/pdf"
                          },
                          "collectionIdentifier": {
                            "type": "string",
                            "example": "79"
                          },
                          "jobId": {
                            "type": "number",
                            "example": 718
                          },
                          "embeddingUniqueName": {
                            "type": "string",
                            "example": "7H86dFN2DPyQTTzmX-LPI-Learning-Material-010-160-en.pdf"
                          },
                          "AmazonS3": {
                            "type": "object",
                            "properties": {
                              "path": {
                                "type": "string",
                                "example": "pXoufQgKXyjWcxpku/vertt-embeddings/SZrAiJuzXdMYvavWu/"
                              }
                            }
                          },
                          "store": {
                            "type": "string",
                            "example": "AmazonS3Middleware:VerttEmbeddings"
                          },
                          "_updatedAt": {
                            "type": "string",
                            "example": "2025-11-05T12:55:01.317Z"
                          },
                          "middlewareFileId": {
                            "type": "string",
                            "example": "f55c5e94-367a-4212-8eab-aa275c6e332c.pdf"
                          },
                          "complete": {
                            "type": "boolean",
                            "example": true
                          },
                          "etag": {
                            "type": "string",
                            "example": "uHrZPPMDF8wD3DGgt"
                          },
                          "path": {
                            "type": "string",
                            "example": "/ufs/AmazonS3Middleware:VerttEmbeddings/SZrAiJuzXdMYvavWu/LPI-Learning-Material-010-160-en.pdf"
                          },
                          "progress": {
                            "type": "number",
                            "example": 1
                          },
                          "token": {
                            "type": "string",
                            "example": "48089999ca"
                          },
                          "uploadedAt": {
                            "type": "string",
                            "example": "2025-11-05T12:55:26.018Z"
                          },
                          "uploading": {
                            "type": "boolean",
                            "example": false
                          },
                          "url": {
                            "type": "string",
                            "example": "https://liveomni01.convert.app.br/ufs/AmazonS3Middleware:VerttEmbeddings/SZrAiJuzXdMYvavWu/LPI-Learning-Material-010-160-en.pdf"
                          }
                        }
                      }
                    },
                    "total": {
                      "type": "number",
                      "example": 1
                    },
                    "uploadedCount": {
                      "type": "number",
                      "example": 1
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Não autenticado."
          },
          "403": {
            "description": "Usuário sem permissão `view-vertt-embedding-collections`."
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      },
      "post": {
        "tags": [
          "Bases de conhecimento"
        ],
        "summary": "Duplicar uma base",
        "operationId": "VerttEmbeddingCollectionsDuplicateOneEmbedding",
        "description": "Cria uma cópia da base de conhecimento identificada em `identifier`.",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "withDocuments": {
                    "type": "boolean",
                    "description": "Se true, também duplica os documentos associados.",
                    "example": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Base duplicada",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "collectionDuplicated": {
                      "type": "boolean",
                      "example": true
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Não autenticado."
          },
          "403": {
            "description": "Usuário sem permissão `create-vertt-embedding-collections`."
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      },
      "put": {
        "tags": [
          "Bases de conhecimento"
        ],
        "operationId": "VerttEmbeddingCollectionsUpdateOneEmbedding",
        "summary": "Atualizar uma base",
        "description": "Atualiza qualquer campo de uma base.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "display_name": {
                    "type": "string",
                    "description": "Nome da base de conhecimento.",
                    "example": "F.A.Q"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição da base de conhecimento.",
                    "example": "Base de conhecimento com informações do produto."
                  },
                  "is_active": {
                    "type": "boolean",
                    "description": "Define se a base estará ativa ou não.",
                    "example": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Base de conhecimento atualizada com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "msg": {
                      "type": "string",
                      "example": "Base atualizada"
                    },
                    "status": {
                      "type": "number",
                      "example": 200
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "number",
                          "example": 79
                        },
                        "display_name": {
                          "type": "string",
                          "example": "Novo nome"
                        },
                        "id_cliente": {
                          "type": "number",
                          "example": 1
                        },
                        "description": {
                          "type": "string",
                          "example": "Nova descrição"
                        },
                        "kb_identifier": {
                          "type": "string",
                          "example": "1_convertcompany_123123123123"
                        },
                        "document_count": {
                          "type": "number",
                          "example": 15
                        },
                        "total_chunks": {
                          "type": "number",
                          "example": 721
                        },
                        "is_active": {
                          "type": "boolean",
                          "example": true
                        }
                      }
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Não autenticado."
          },
          "403": {
            "description": "Usuário sem permissão `update-vertt-embedding-collections`."
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      },
      "delete": {
        "tags": [
          "Bases de conhecimento"
        ],
        "operationId": "VerttEmbeddingCollectionsDeleteOneEmbedding",
        "summary": "Excluir uma base",
        "description": "Remove permanentemente uma base.",
        "responses": {
          "200": {
            "description": "Base de conhecimento excluída",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted": {
                      "type": "boolean",
                      "example": true
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Não autenticado."
          },
          "403": {
            "description": "Usuário sem permissão `delete-vertt-embedding-collections`."
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/vertt/embeddingCollectionsFiles/{identifier}": {
      "get": {
        "operationId": "VerttEmbeddingCollectionsGetEmbeddingsFiles",
        "tags": [
          "Bases de conhecimento"
        ],
        "summary": "Listar arquivos da base",
        "description": "Retorna os arquivos associados a uma base de conhecimento específica.",
        "parameters": [
          {
            "in": "path",
            "name": "identifier",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Identificador único da base de conhecimento."
          },
          {
            "in": "query",
            "name": "offset",
            "required": false,
            "schema": {
              "type": "number",
              "default": 0
            },
            "description": "Offset inicial da paginação."
          },
          {
            "in": "query",
            "name": "count",
            "required": false,
            "schema": {
              "type": "number",
              "default": 25
            },
            "description": "Quantidade de registros retornados por página."
          },
          {
            "in": "query",
            "name": "text",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Filtro de busca textual (nome do arquivo)."
          },
          {
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Ordenação do resultado (JSON stringificado). Ex: `{ \"name\": 1 }`."
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de arquivos retornada com sucesso.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "files": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "_id": {
                            "type": "string",
                            "example": "SZrAiJuzXdMYvavWu"
                          },
                          "name": {
                            "type": "string",
                            "example": "LPI-Learning-Material.pdf"
                          },
                          "size": {
                            "type": "number",
                            "example": 6330407
                          },
                          "type": {
                            "type": "string",
                            "example": "application/pdf"
                          },
                          "collectionIdentifier": {
                            "type": "string",
                            "example": "79"
                          },
                          "jobId": {
                            "type": "number",
                            "example": 718
                          },
                          "embeddingUniqueName": {
                            "type": "string",
                            "example": "7H86dFN2DPyQTTzmX-LPI-Learning-Material.pdf"
                          },
                          "AmazonS3": {
                            "type": "object",
                            "properties": {
                              "path": {
                                "type": "string",
                                "example": "pXoufQgKXyjWcxpku/vertt-embeddings/SZrAiJuzXdMYvavWu/"
                              }
                            }
                          },
                          "store": {
                            "type": "string",
                            "example": "AmazonS3Middleware:VerttEmbeddings"
                          },
                          "_updatedAt": {
                            "type": "string",
                            "example": "2025-11-05T12:55:01.317Z"
                          },
                          "middlewareFileId": {
                            "type": "string",
                            "example": "f55c5e94-367a-4212-8eab-aa275c6e332c.pdf"
                          },
                          "complete": {
                            "type": "boolean",
                            "example": true
                          },
                          "etag": {
                            "type": "string",
                            "example": "uHrZPPMDF8wD3DGgt"
                          },
                          "path": {
                            "type": "string",
                            "example": "/ufs/AmazonS3Middleware:VerttEmbeddings/SZrAiJuzXdMYvavWu/LPI-Learning-Material.pdf"
                          },
                          "progress": {
                            "type": "number",
                            "example": 1
                          },
                          "token": {
                            "type": "string",
                            "example": "48089999ca"
                          },
                          "uploadedAt": {
                            "type": "string",
                            "example": "2025-11-05T12:55:26.018Z"
                          },
                          "uploading": {
                            "type": "boolean",
                            "example": false
                          },
                          "url": {
                            "type": "string",
                            "example": "https://seudominio.com.br/ufs/AmazonS3Middleware:VerttEmbeddings/SZrAiJuzXdMYvavWu/LPI-Learning-Material.pdf"
                          }
                        }
                      }
                    },
                    "total": {
                      "type": "number",
                      "example": 1
                    },
                    "uploadedCount": {
                      "type": "number",
                      "example": 1
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Não autenticado."
          },
          "403": {
            "description": "Usuário sem permissão `view-vertt-embedding-collections`."
          }
        }
      }
    },
    "/vertt/embeddingCollectionsChunks/{fileId}": {
      "get": {
        "operationId": "VerttEmbeddingCollectionsGetEmbeddingsChunks",
        "summary": "Listar chunks de um arquivo",
        "description": "Retorna a lista de chunks de embedding pertencentes a um arquivo específico.",
        "tags": [
          "Bases de conhecimento"
        ],
        "parameters": [
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Identificador único do arquivo"
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 0
            },
            "description": "Número de itens ignorados antes do retorno"
          },
          {
            "name": "count",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 25
            },
            "description": "Quantidade de itens retornados"
          },
          {
            "name": "text",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Filtro textual aplicado aos chunks"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Chunks retornados com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "chunks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "document": {
                            "type": "string"
                          },
                          "id": {
                            "type": "string"
                          },
                          "metadata": {
                            "type": "object",
                            "properties": {
                              "char_count": {
                                "type": "integer"
                              },
                              "chunk_index": {
                                "type": "integer"
                              },
                              "created_at": {
                                "type": "string",
                                "format": "date-time"
                              },
                              "document_id": {
                                "type": "string"
                              },
                              "document_name": {
                                "type": "string"
                              },
                              "document_type": {
                                "type": "string"
                              },
                              "kb_identifier": {
                                "type": "string"
                              },
                              "total_chunks": {
                                "type": "integer"
                              },
                              "updated_at": {
                                "type": "string",
                                "format": "date-time"
                              }
                            }
                          }
                        }
                      }
                    },
                    "has_document_filter": {
                      "type": "boolean"
                    },
                    "has_filters": {
                      "type": "boolean"
                    },
                    "total_chunks": {
                      "type": "integer"
                    },
                    "embeddingFile": {
                      "type": "object",
                      "properties": {
                        "_id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "size": {
                          "type": "integer"
                        },
                        "type": {
                          "type": "string"
                        },
                        "collectionIdentifier": {
                          "type": "string"
                        },
                        "embeddingUniqueName": {
                          "type": "string"
                        },
                        "uploadedAt": {
                          "type": "string",
                          "format": "date-time"
                        }
                      }
                    },
                    "success": {
                      "type": "boolean"
                    }
                  }
                },
                "examples": {
                  "success": {
                    "value": {
                      "chunks": [
                        {
                          "document": "<!-- image -->\n\n## Linux Essentials Version 1.6 English\n\n<!-- image -->\n\n## Table of Contents",
                          "id": "80c70c1e-c5b5-4e63-8c4a-82bcdc6fdb1b_0",
                          "metadata": {
                            "char_count": 93,
                            "chunk_index": 0,
                            "created_at": "2025-11-05T12:55:30.021392Z",
                            "document_id": "80c70c1e-c5b5-4e63-8c4a-82bcdc6fdb1b",
                            "document_name": "7H86dFN2DPyQTTzmX-LPI-Learning-Material.pdf",
                            "document_type": ".pdf",
                            "kb_identifier": "1_convertcompany_4d64bXHkY1HA",
                            "total_chunks": 721,
                            "updated_at": "2025-11-05T12:55:30.021392Z"
                          }
                        }
                      ],
                      "has_document_filter": false,
                      "has_filters": true,
                      "total_chunks": 721,
                      "embeddingFile": {
                        "_id": "SZrAiJuzXdMYvavWu",
                        "name": "LPI-Learning-Material.pdf",
                        "size": 6330407,
                        "type": "application/pdf",
                        "collectionIdentifier": "79",
                        "embeddingUniqueName": "7H86dFN2DPyQTTzmX-LPI-Learning-Material.pdf",
                        "uploadedAt": "2025-11-05T12:55:26.018Z"
                      },
                      "success": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não autorizado ou sem permissão"
          }
        }
      },
      "delete": {
        "operationId": "VerttEmbeddingCollectionsDeleteEmbeddingsChunk",
        "summary": "Remover um arquivo e seus chunks",
        "description": "Remove um arquivo de embeddings e todos os seus chunks relacionados.",
        "tags": [
          "Bases de conhecimento"
        ],
        "parameters": [
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Identificador do arquivo a ser removido"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Arquivo removido com seus chunks com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "deleted_count": {
                      "type": "number"
                    },
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    }
                  }
                },
                "examples": {
                  "success": {
                    "value": {
                      "deleted_count": 720,
                      "message": "720 chunks removidos da collection 'collection_1_convert_company'",
                      "success": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não autorizado ou sem permissão"
          }
        }
      }
    },
    "/vertt/embeddingChunks/{chunkId}": {
      "put": {
        "summary": "Editar um chunk",
        "operationId": "VerttEmbeddingCollectionsEditEmbeddingsChunk",
        "description": "Atualiza o conteúdo (texto) de um chunk pertencente a um arquivo de base de conhecimento.",
        "tags": [
          "Bases de conhecimento"
        ],
        "parameters": [
          {
            "name": "chunkId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Identificador único do chunk que será atualizado."
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "description": "Novo texto do chunk."
                  }
                },
                "required": [
                  "text"
                ]
              },
              "examples": {
                "updateChunkText": {
                  "value": {
                    "text": "Novo conteúdo atualizado do chunk"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Chunk atualizado com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "examples": {
                  "success": {
                    "value": {
                      "msg": "Chunk processado",
                      "status": 200,
                      "data": {
                        "chunk_id": "8a78485f-e093-4d5f-8e0d-646fd64d9c5c_0",
                        "collection_name": "collection_1_convert_company",
                        "metadata_updated": false,
                        "text_length": 23,
                        "updated_text_preview": "Novo conteúdo atualizado do chunk"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não autorizado ou sem permissão."
          }
        }
      },
      "delete": {
        "operationId": "VerttEmbeddingCollectionsDeleteChunk",
        "summary": "Remover um chunk",
        "description": "Exclui permanentemente um chunk de uma base.",
        "tags": [
          "Bases de conhecimento"
        ],
        "parameters": [
          {
            "name": "chunkId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Identificador único do chunk a ser removido."
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Chunk removido com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                },
                "examples": {
                  "success": {
                    "value": {
                      "deleted_chunk_id": "80c70c1e-c5b5-4e63-8c4a-82bcdc6fdb1b_3",
                      "message": "Chunk '80c70c1e-c5b5-4e63-8c4a-82bcdc6fdb1b_3' removido com sucesso",
                      "success": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não autorizado ou sem permissão."
          }
        }
      }
    },
    "/vertt/embeddingCollections/{identifier}/upload": {
      "post": {
        "operationId": "VerttEmbeddingCollectionsIdentifierUpload",
        "summary": "Upload de arquivos para uma base",
        "description": "Realiza o upload de arquivos PDF, TXT, DOCX ou conteúdo de texto para serem processados e adicionados à coleção de embeddings da base de conhecimento.",
        "tags": [
          "Bases de conhecimento"
        ],
        "parameters": [
          {
            "name": "identifier",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Identificador único da base de conhecimento."
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "files": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "binary"
                    },
                    "description": "Arquivos da base de conhecimento (PDF, TXT, DOCX, etc.)."
                  },
                  "text": {
                    "type": "string",
                    "description": "Conteúdo em texto puro que será salvo como arquivo e processado como documento da base."
                  },
                  "textFilename": {
                    "type": "string",
                    "description": "Nome do arquivo que será criado a partir do campo `text`."
                  },
                  "customMetadata": {
                    "type": "string",
                    "description": "JSON serializado contendo os metadados customizados dos chunks"
                  }
                }
              },
              "examples": {
                "uploadDocuments": {
                  "summary": "Envio de PDF + Texto",
                  "value": {
                    "files": [
                      "(binary)"
                    ],
                    "text": "Documentação complementar sobre Linux...",
                    "textFilename": "documentacao-linux.txt",
                    "customMetadata": "{ \"personalizado\": \"valor\" }"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Arquivos enviados para processamento assíncrono.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "msg": {
                      "type": "string",
                      "example": "Arquivos enviados para processamento"
                    },
                    "status": {
                      "type": "number",
                      "example": 202
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "job_id": {
                          "type": "number",
                          "example": 727
                        },
                        "kb_identifier": {
                          "type": "string",
                          "example": "1_convertcompany_ONXgBxIiccTw"
                        },
                        "status": {
                          "type": "string",
                          "example": "queued"
                        },
                        "input_type": {
                          "type": "string",
                          "example": "files"
                        }
                      }
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                },
                "examples": {
                  "success": {
                    "value": {
                      "msg": "Arquivos enviados para processamento",
                      "status": 202,
                      "data": {
                        "job_id": 727,
                        "kb_identifier": "1_convertcompany_ONXgBxIiccTw",
                        "status": "queued",
                        "input_type": "files"
                      },
                      "success": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não autorizado ou sem permissão."
          }
        }
      }
    },
    "/vertt/agents": {
      "get": {
        "tags": [
          "Agentes de IA"
        ],
        "operationId": "VerttAgentsGet",
        "summary": "Buscar agentes",
        "description": "Retorna uma lista paginada de agentes de IA registrados no Vertt. Requer permissão `view-vertt-agents`.",
        "parameters": [
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 0
            },
            "description": "Número de registros a pular para paginação"
          },
          {
            "name": "count",
            "in": "query",
            "schema": {
              "type": "integer",
              "default": 25
            },
            "description": "Quantidade de registros para retornar"
          },
          {
            "name": "sort",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Ordenação no formato JSON (ex: `{ \"name\": 1 }`)"
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Campos a serem retornados no formato JSON (ex: `{ \"name\": 1 }`)"
          },
          {
            "name": "text",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Filtro de busca por texto"
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "active",
                "inactive"
              ]
            },
            "description": "Filtro por status do agente"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de agentes retornada com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "agents": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/VerttAgent"
                      }
                    },
                    "offset": {
                      "type": "integer"
                    },
                    "count": {
                      "type": "integer"
                    },
                    "total": {
                      "type": "integer"
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Acesso não autorizado (sem permissão view-vertt-agents)"
          }
        }
      },
      "post": {
        "tags": [
          "Agentes de IA"
        ],
        "summary": "Criar um novo agente",
        "operationId": "VerttAgentsPost",
        "description": "Cria um novo agente de IA no Vertt. Requer permissão `manage-vertt-agents`.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "_id": {
                    "type": "string",
                    "example": "6920bf16ffa7b027bd1171b5"
                  },
                  "name": {
                    "type": "string",
                    "example": "Agente Legal"
                  },
                  "description": {
                    "type": "string",
                    "example": "Você é um assistente de vendas que ajuda os clientes a encontrar o produto ideal para eles."
                  },
                  "avatar": {
                    "type": "object",
                    "properties": {
                      "path": {
                        "type": "string",
                        "example": "/ufs/AmazonS3Middleware:Gallery/aSnz4aRBBx4hmRGR5/1200px-Atlanta_Zoo_Panda.jpg"
                      },
                      "galleryId": {
                        "type": "string",
                        "example": "aSnz4aRBBx4hmRGR5"
                      },
                      "_updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "example": "2025-11-21T19:37:40.756Z"
                      }
                    }
                  },
                  "model": {
                    "type": "string",
                    "example": "gpt-4o-mini"
                  },
                  "temperature": {
                    "type": "number",
                    "example": 1
                  },
                  "behavior": {
                    "type": "object",
                    "properties": {
                      "includeBusinessContext": {
                        "type": "boolean",
                        "example": true
                      },
                      "waitingTime": {
                        "type": "integer",
                        "example": 5
                      },
                      "includeAgentName": {
                        "type": "boolean",
                        "example": true
                      },
                      "sendTyping": {
                        "type": "boolean",
                        "example": true
                      },
                      "interpretImages": {
                        "type": "boolean",
                        "example": true
                      },
                      "automaticFollowUp": {
                        "type": "boolean",
                        "example": true
                      },
                      "followUpDelay": {
                        "type": "integer",
                        "example": 5
                      }
                    }
                  },
                  "instructions": {
                    "type": "string",
                    "example": "Você é um assistente especializado em atendimento ao cliente. Sempre seja educado..."
                  },
                  "knowledgeBases": {
                    "type": "object",
                    "properties": {
                      "ids": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        },
                        "example": [
                          "1_convertcompany_TA8SQOhMLbY1"
                        ]
                      },
                      "maxChunks": {
                        "type": "integer",
                        "example": 5
                      }
                    }
                  },
                  "tools": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "example": "add_comment"
                        }
                      }
                    }
                  },
                  "customTools": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "enabled": {
                          "type": "boolean",
                          "example": true
                        },
                        "type": {
                          "type": "string",
                          "example": "webhook"
                        },
                        "name": {
                          "type": "string",
                          "example": "webhook_producao"
                        },
                        "description": {
                          "type": "string",
                          "example": "Webhook"
                        },
                        "parameters": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string",
                                "example": "string"
                              },
                              "name": {
                                "type": "string",
                                "example": "teste"
                              },
                              "description": {
                                "type": "string",
                                "example": ""
                              },
                              "required": {
                                "type": "boolean",
                                "example": true
                              }
                            }
                          }
                        },
                        "executionMode": {
                          "type": "string",
                          "example": "reprocess_with_ai"
                        },
                        "method": {
                          "type": "string",
                          "example": "GET"
                        },
                        "url": {
                          "type": "string",
                          "example": "https://liveomni01.convert.app.br/api/v1/webhooks"
                        },
                        "headers": {
                          "type": "string",
                          "example": ""
                        },
                        "body": {
                          "type": "string",
                          "example": ""
                        },
                        "returnMap": {
                          "type": "object",
                          "example": {}
                        },
                        "exitInstructions": {
                          "type": "string",
                          "example": ""
                        }
                      }
                    }
                  },
                  "dataFields": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "_id": {
                          "type": "string",
                          "example": "kkf7dvet1763753836733"
                        },
                        "customField": {
                          "type": "string",
                          "example": "autocomplete_field"
                        },
                        "description": {
                          "type": "string",
                          "example": "autocomplete"
                        },
                        "example": {
                          "type": "string",
                          "example": ""
                        },
                        "type": {
                          "type": "string",
                          "example": "string"
                        },
                        "format": {
                          "type": "string",
                          "example": "text"
                        },
                        "required": {
                          "type": "boolean",
                          "example": true
                        }
                      }
                    }
                  },
                  "routes": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "_id": {
                          "type": "string",
                          "example": "oqj58i4u1763753846436"
                        },
                        "name": {
                          "type": "string",
                          "example": "transfer_to_main_department"
                        },
                        "condition": {
                          "type": "string",
                          "example": "quando o usuário solicitar falar com humano"
                        },
                        "destinationType": {
                          "type": "string",
                          "example": "transfer_to_department"
                        },
                        "destination": {
                          "type": "string",
                          "example": "XzcthcWpXT6fHN2pL"
                        }
                      }
                    }
                  },
                  "textSearch": {
                    "type": "string",
                    "example": "agente legal"
                  },
                  "_createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2025-11-21T19:35:50.037Z"
                  },
                  "_updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "example": "2025-11-21T19:37:40.756Z"
                  },
                  "count": {
                    "type": "integer",
                    "example": 1
                  },
                  "offset": {
                    "type": "integer",
                    "example": 0
                  },
                  "total": {
                    "type": "integer",
                    "example": 1
                  },
                  "success": {
                    "type": "boolean",
                    "example": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Agente criado com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "agent": {
                      "$ref": "#/components/schemas/VerttAgent"
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Acesso não autorizado (sem permissão manage-vertt-agents)"
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    },
    "/vertt/agents/{_id}": {
      "get": {
        "tags": [
          "Agentes de IA"
        ],
        "operationId": "VerttAgentsIdGet",
        "summary": "Obter um agente específico",
        "description": "Retorna os dados completos de um agente do Vertt pelo seu ID.",
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Identificador do agente"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Agente encontrado",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "agent": {
                      "$ref": "#/components/schemas/VerttAgent"
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Agente não encontrado"
          }
        }
      },
      "put": {
        "tags": [
          "Agentes de IA"
        ],
        "operationId": "VerttAgentsIdPut",
        "summary": "Atualizar um agente",
        "description": "Atualiza as informações de um agente existente no Vertt.",
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Identificador do agente"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerttAgent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Agente atualizado",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "agent": {
                      "$ref": "#/components/schemas/VerttAgent"
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Agente não encontrado"
          }
        }
      },
      "delete": {
        "tags": [
          "Agentes de IA"
        ],
        "operationId": "VerttAgentsIdDelete",
        "summary": "Remover um agente",
        "description": "Remove permanentemente um agente do Vertt.",
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Identificador do agente"
          },
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Agente removido",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Agente não encontrado"
          }
        }
      }
    },
    "/vertt/queryChunks": {
      "post": {
        "operationId": "VerttQueryChunks",
        "tags": [
          "Bases de conhecimento"
        ],
        "summary": "Consultar chunks por busca",
        "description": "Realiza uma busca semântica nos chunks das bases de conhecimento especificadas pelos seus IDs.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "ids",
                  "query"
                ],
                "properties": {
                  "ids": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "example": [
                      1,
                      2,
                      3
                    ],
                    "description": "Lista de IDs das bases de conhecimento onde será feita a busca."
                  },
                  "query": {
                    "type": "string",
                    "example": "O que quero buscar na base de conhecimento",
                    "description": "Texto da consulta que será buscado nos chunks."
                  },
                  "num_results": {
                    "type": "integer",
                    "example": 5,
                    "description": "Quantidade máxima de resultados retornados."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Busca realizada com sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "query": {
                      "type": "string",
                      "example": "Visualizar e editar ficheiros"
                    },
                    "results": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "content": {
                            "type": "string",
                            "description": "Conteúdo bruto do chunk retornado.",
                            "example": "<!-- image -->\n\nuname -a - Mostra informações..."
                          },
                          "id": {
                            "type": "string",
                            "example": "cfc42634-dee8-4454-a5b2-19b16c2cd262_7"
                          },
                          "metadata": {
                            "type": "object",
                            "properties": {
                              "char_count": {
                                "type": "integer",
                                "example": 822
                              },
                              "chunk_index": {
                                "type": "integer",
                                "example": 7
                              },
                              "created_at": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-12-10T17:04:52.078506Z"
                              },
                              "document_id": {
                                "type": "string",
                                "example": "cfc42634-dee8-4454-a5b2-19b16c2cd262"
                              },
                              "document_name": {
                                "type": "string",
                                "example": "A3evFGpkNhiWziqWf-XDManIntroLinux.pdf"
                              },
                              "document_type": {
                                "type": "string",
                                "example": ".pdf"
                              },
                              "kb_identifier": {
                                "type": "string",
                                "example": "1_convertcompany_O1ULah8ZEIKj"
                              },
                              "total_chunks": {
                                "type": "integer",
                                "example": 17
                              },
                              "updated_at": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-12-10T17:04:52.078506Z"
                              }
                            }
                          },
                          "score": {
                            "type": "number",
                            "format": "float",
                            "example": 0.29628313
                          }
                        }
                      }
                    },
                    "success": {
                      "type": "boolean",
                      "example": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Usuário não autorizado"
          }
        },
        "parameters": [
          {
            "name": "X-Auth-Token",
            "in": "header",
            "description": "Token do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "test8Tug..."
            }
          },
          {
            "name": "X-User-Id",
            "in": "header",
            "description": "ID do usuário autenticado.",
            "schema": {
              "type": "string",
              "example": "3F45jffv2v..."
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Token de Integração associado a um App. Substitui a autenticação via `X-User-Id` e `X-Auth-Token`.",
            "schema": {
              "type": "string",
              "example": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6..."
            }
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "XUserId": {
        "description": "ID do usuário autenticado.",
        "type": "apiKey",
        "in": "header",
        "name": "X-User-Id"
      },
      "XAuthToken": {
        "description": "Token do usuário autenticado.",
        "type": "apiKey",
        "in": "header",
        "name": "X-Auth-Token"
      },
      "AppBearerAuth": {
        "description": "Token de Integração para associação a um App",
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "SuccessTrue": {
        "type": "boolean",
        "description": "Status da operação.",
        "example": true
      },
      "SuccessFalse": {
        "type": "boolean",
        "description": "Status da operação.",
        "example": false
      },
      "ErrorMessage": {
        "type": "string",
        "description": "Mensagem de erro da operação.",
        "example": "The \"example\" parameter must be provided. [error-invalid-params]"
      },
      "Message": {
        "type": "object",
        "required": [
          "_id",
          "rid",
          "msg",
          "ts",
          "u",
          "_updatedAt"
        ],
        "properties": {
          "_id": {
            "type": "string",
            "description": "ID da mensagem",
            "example": "pmT94ScRBy22GjMWo"
          },
          "rid": {
            "type": "string",
            "description": "ID da sala ou canal",
            "example": "AqoYPDZmxxyFrpTiH"
          },
          "msg": {
            "type": "string",
            "description": "Mensagem de texto",
            "example": "Bom dia!"
          },
          "u": {
            "type": "object",
            "description": "Usuário remetente da mensagem",
            "required": [
              "_id",
              "username",
              "name"
            ],
            "properties": {
              "_id": {
                "type": "string",
                "description": "Id",
                "example": "NQ7cWyJ58MeiRm3es"
              },
              "username": {
                "type": "string",
                "description": "Nome de usuário",
                "example": "admin.convert"
              },
              "name": {
                "type": "string",
                "description": "Nome",
                "example": "Admin Convert"
              }
            }
          },
          "ts": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp da criação da mensagem"
          },
          "_updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Última atualização"
          },
          "currentStatus": {
            "type": "string",
            "description": "Status atual de leitura da mensagem",
            "enum": [
              "sent",
              "delivered",
              "read",
              "error"
            ]
          },
          "urls": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "mentions": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "channels": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        }
      },
      "LivechatFlowsBackups": {
        "type": "object",
        "required": [
          "_id",
          "type",
          "flowId",
          "flow",
          "_createdAt",
          "_updatedAt"
        ],
        "properties": {
          "_id": {
            "type": "string",
            "description": "Identificador único do registro",
            "example": "68adb654837b876000cf9afa"
          },
          "type": {
            "type": "string",
            "description": "Tipo do backup ('auto' ou 'manual')",
            "example": "auto"
          },
          "flowId": {
            "type": "string",
            "description": "Identificador do fluxo associado",
            "example": "EFAjuKsMQxFwsqRqQ"
          },
          "flow": {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string",
                "description": "Identificador único do fluxo",
                "example": "EFAjuKsMQxFwsqRqQ"
              },
              "nome": {
                "type": "string",
                "description": "Nome do fluxo",
                "example": "Fluxo Integração"
              },
              "descricao": {
                "type": "string",
                "description": "Descrição do fluxo",
                "example": "Integração Sistema X"
              },
              "objeto": {
                "type": "string",
                "description": "Objeto em formato JSON serializado",
                "example": "{\"data\":{\"start\":{\"goto\":\"6d0926a6-4dec-452a-8a3e-c69ab26b321c\",\"type\":\"start\"}}}"
              },
              "_updatedAt": {
                "type": "object",
                "properties": {
                  "$date": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Data de atualização do fluxo",
                    "example": "2025-08-26T12:59:15.293Z"
                  }
                }
              }
            }
          },
          "_createdAt": {
            "type": "object",
            "properties": {
              "$date": {
                "type": "string",
                "format": "date-time",
                "description": "Data de criação do registro",
                "example": "2025-08-26T13:27:48.026Z"
              }
            }
          },
          "_deletedAt": {
            "type": "object",
            "properties": {
              "$date": {
                "type": "string",
                "format": "date-time",
                "description": "Data de exclusão do registro",
                "example": "2025-09-25T13:27:47.997Z"
              }
            }
          },
          "_updatedAt": {
            "type": "object",
            "properties": {
              "$date": {
                "type": "string",
                "format": "date-time",
                "description": "Data de atualização do registro",
                "example": "2025-08-26T13:27:48.026Z"
              }
            }
          }
        }
      },
      "Count": {
        "type": "integer",
        "description": "Número de registros retornados.",
        "example": 10
      },
      "Offset": {
        "type": "integer",
        "description": "Número de registros ignorados",
        "example": 0
      },
      "Total": {
        "type": "integer",
        "description": "Número total de registros encontrados.",
        "example": 100
      },
      "Log": {
        "type": "object",
        "properties": {
          "_id": {
            "type": "string",
            "description": "Identificador único do log.",
            "example": "CsemHfYso2rsrEzG4"
          },
          "route": {
            "type": "string",
            "description": "Rota completa da API chamada.",
            "example": "/api/v1/omnichannel/contact"
          },
          "originIp": {
            "type": "string",
            "description": "Endereço IP de origem da requisição.",
            "example": "8.8.8.8"
          },
          "method": {
            "type": "string",
            "description": "Método HTTP utilizado na requisição.",
            "example": "PUT"
          },
          "device": {
            "type": "string",
            "description": "User-agent do dispositivo que realizou a requisição.",
            "example": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36"
          },
          "ts": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da requisição.",
            "example": "2025-05-21T11:09:00.164Z"
          },
          "statusCode": {
            "type": "integer",
            "description": "Código de status HTTP retornado pela API.",
            "example": 200
          },
          "endpoint": {
            "type": "string",
            "description": "Identificador interno do endpoint chamado.",
            "example": "omnichannel/contact"
          },
          "bodyPassed": {
            "type": "string",
            "description": "Corpo da requisição original enviado para a API (em JSON serializado).",
            "example": "{\"contactId\":\"123hqN6123M6D2123\",\"email\":\"fulano@email.com\"}"
          },
          "userId": {
            "type": "string",
            "description": "ID do usuário que executou a requisição.",
            "example": "user.name"
          },
          "name": {
            "type": "string",
            "description": "Nome do usuário que executou a requisição.",
            "example": "Fulano"
          },
          "username": {
            "type": "string",
            "description": "Username do usuário que executou a requisição.",
            "example": "user.name"
          },
          "contentSize": {
            "type": "string",
            "description": "Tamanho do conteúdo da resposta ou payload processado.",
            "example": "60"
          },
          "_updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da última atualização do log.",
            "example": "2025-05-21T11:09:00.166Z"
          }
        }
      },
      "VisitorPhone": {
        "type": "string"
      },
      "VisitorEmail": {
        "type": "string"
      },
      "Visitor": {
        "type": "object",
        "required": [
          "username",
          "ts",
          "token",
          "channelSelected"
        ],
        "properties": {
          "username": {
            "type": "string"
          },
          "ts": {
            "type": "string",
            "format": "date-time"
          },
          "token": {
            "type": "string"
          },
          "department": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "phone": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/VisitorPhone"
            }
          },
          "userAgent": {
            "type": "string"
          },
          "livechatData": {
            "type": "object",
            "additionalProperties": true
          },
          "empresa": {
            "type": "string"
          },
          "livechatBlocked": {
            "type": "boolean"
          },
          "host": {
            "type": "string"
          },
          "stopReceivingCampaigns": {
            "type": "boolean"
          },
          "visitorEmails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VisitorEmail"
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "consentimento": {
            "type": "string"
          },
          "consentimentoEvidencia": {
            "type": "string"
          },
          "channelSelected": {
            "type": "string"
          },
          "agentePreferido": {
            "type": "string"
          },
          "nomeAgentePreferido": {
            "type": "string"
          }
        }
      },
      "LivechatRoom": {
        "type": "object",
        "required": [
          "_id",
          "t",
          "msgs",
          "v",
          "tags",
          "closedAt",
          "metrics",
          "waitingResponse",
          "priorityId"
        ],
        "properties": {
          "_id": {
            "type": "string",
            "description": "ID da sala",
            "example": "3mc94ScRBy123jMWo"
          },
          "t": {
            "type": "string",
            "enum": [
              "d",
              "l",
              "c",
              "p"
            ],
            "example": "l"
          },
          "msgs": {
            "type": "number",
            "description": "Quantia de mensagens na sala",
            "example": 10
          },
          "v": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Visitor"
              },
              {
                "type": "object",
                "required": [
                  "status"
                ],
                "properties": {
                  "_id": {
                    "type": "string"
                  },
                  "token": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "online",
                      "busy",
                      "away",
                      "offline"
                    ]
                  }
                }
              }
            ]
          },
          "onHold": {
            "type": "boolean"
          },
          "departmentId": {
            "type": "string"
          },
          "departmentMain": {
            "type": "string"
          },
          "departmentHistory": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "surveyFeedback": {
            "type": "object",
            "properties": {
              "sent": {
                "type": "string"
              },
              "satisfaction": {
                "type": "string"
              }
            }
          },
          "tabulacao": {
            "type": "string"
          },
          "statusTabulacao": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "closedAt": {
            "type": "string",
            "format": "date-time"
          },
          "metrics": {
            "type": "object",
            "additionalProperties": true
          },
          "subject": {
            "type": "string"
          },
          "waitingResponse": {
            "type": "object",
            "additionalProperties": true
          },
          "priorityId": {
            "type": [
              "string",
              "number"
            ]
          },
          "inquiryTaken": {
            "type": "object",
            "properties": {
              "agent": {
                "type": "string"
              },
              "wait": {
                "type": "number"
              },
              "ts": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "servedBy": {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string"
              },
              "username": {
                "type": "string"
              },
              "ts": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "responseBy": {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string"
              },
              "username": {
                "type": "string"
              },
              "lastMessageTs": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "automatic": {
            "type": "boolean"
          },
          "automaticName": {
            "type": "string"
          },
          "closureNotice": {
            "type": "string"
          },
          "livechatData": {
            "type": "object",
            "properties": {
              "tipo_mensagem": {
                "type": "string",
                "enum": [
                  "receptiva",
                  "ativa"
                ]
              }
            },
            "additionalProperties": true
          }
        }
      },
      "Summary": {
        "type": "object",
        "properties": {
          "summarize": {
            "type": "string",
            "description": "Resumo geral da conversa",
            "example": "Cliente, Fulano da Silva, entrou em contato para solicitar a compra de um cabo USB, enviando uma foto do item desejado. O atendimento foi direto e sem objeções."
          },
          "customer_profile": {
            "type": "string",
            "description": "Perfil do cliente identificado",
            "example": "Potencial"
          },
          "main_intent": {
            "type": "string",
            "description": "Principal intenção identificada na conversa",
            "example": "Solicitação de serviço"
          },
          "objections": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Lista de objeções mencionadas pelo cliente",
            "example": []
          },
          "analyze_sentiment": {
            "type": "string",
            "description": "Sentimento geral da conversa",
            "example": "Positivo"
          },
          "identify_needs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Necessidades do cliente extraídas da conversa",
            "example": [
              "Cliente deseja adquirir um cabo USB."
            ]
          },
          "technical_barriers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Barreiras técnicas identificadas na conversa",
            "example": []
          },
          "engagement_level": {
            "type": "string",
            "description": "Nível de engajamento do cliente",
            "example": "Alto"
          },
          "follow_up_suggestion": {
            "type": "string",
            "description": "Sugestão de mensagem para follow-up",
            "example": "Agradeço pelo seu interesse! Fico à disposição para ajudar na finalização da compra."
          },
          "action_topics": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Tópicos recomendados para ação",
            "example": [
              "Confirmar preço e condições de pagamento do cabo.",
              "Finalizar a compra."
            ]
          },
          "suggest_improvements": {
            "type": "string",
            "description": "Sugestões de melhorias no atendimento",
            "example": "Manter o atendimento dinâmico, apresentando opções de pagamento e entrega imediatamente após a escolha do produto."
          },
          "relevant_insights": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Informações relevantes obtidas na conversa",
            "example": [
              "Cliente está interessado em produtos tecnológicos.",
              "Possível necessidade futura de acessórios adicionais."
            ]
          },
          "keywords": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Palavras-chave extraídas da conversa",
            "example": [
              "Cabo USB"
            ]
          },
          "interaction_timing": {
            "type": "string",
            "description": "Informações sobre o tempo e ritmo da conversa",
            "example": "Conversa durou 3 minutos, com respostas rápidas e sem períodos de inatividade."
          },
          "topics": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Tópicos principais discutidos",
            "example": [
              "Produto desejado",
              "Compra"
            ]
          },
          "extracted_data": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Dados adicionais extraídos da conversa",
            "example": []
          },
          "prompt_tokens": {
            "type": "integer",
            "description": "Quantidade de tokens utilizados no prompt",
            "example": 38847
          },
          "completion_tokens": {
            "type": "integer",
            "description": "Quantidade de tokens utilizados na geração da resposta",
            "example": 294
          },
          "total_tokens": {
            "type": "integer",
            "description": "Total de tokens utilizados na requisição",
            "example": 39141
          }
        }
      },
      "Transcription": {
        "type": "array",
        "description": "Mensagens transcritas do atendimento.",
        "items": {
          "type": "object",
          "properties": {
            "role": {
              "type": "string",
              "description": "Função da mensagem no contexto da conversa. Pode ser 'system', 'user' ou outro tipo.",
              "example": "user"
            },
            "name": {
              "type": "string",
              "description": "Identificador do autor da mensagem. Presente apenas em mensagens do tipo 'user'.",
              "example": "agente-user_name"
            },
            "content": {
              "type": "string",
              "description": "Conteúdo textual da mensagem, incluindo metadados como horário e tipo de ação.",
              "example": "[06/06/2025 19:17:15] Olá Fulano da Silva, tudo bem?"
            }
          },
          "required": [
            "role",
            "content"
          ]
        }
      },
      "Horario": {
        "type": "object",
        "required": [
          "descricao",
          "dia_ini",
          "dia_fim",
          "sem_ini",
          "sem_fim",
          "mes_ini",
          "mes_fim",
          "hora_ini",
          "hora_fim"
        ],
        "description": "Definição de um horário dentro de um grupo de horários",
        "properties": {
          "descricao": {
            "type": "string",
            "description": "Descrição da regra de horário",
            "example": "Seg a Sex - Tarde"
          },
          "dia_ini": {
            "type": "integer",
            "description": "Dia inicial (1-31)",
            "example": 1
          },
          "dia_fim": {
            "type": "integer",
            "description": "Dia final (1-31)",
            "example": 31
          },
          "sem_ini": {
            "type": "integer",
            "description": "Semana inicial (1-7)",
            "example": 1
          },
          "sem_fim": {
            "type": "integer",
            "description": "Semana final (1-7)",
            "example": 5
          },
          "mes_ini": {
            "type": "integer",
            "description": "Mês inicial (1-12)",
            "example": 1
          },
          "mes_fim": {
            "type": "integer",
            "description": "Mês final (1-12)",
            "example": 12
          },
          "hora_ini": {
            "type": "string",
            "format": "time",
            "description": "Hora inicial no formato HH:MM",
            "example": "13:30"
          },
          "hora_fim": {
            "type": "string",
            "format": "time",
            "description": "Hora final no formato HH:MM",
            "example": "18:00"
          },
          "ano": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Ano (opcional)",
            "example": 2025
          }
        }
      },
      "TimeGroup": {
        "type": "object",
        "required": [
          "_id",
          "nome",
          "horarios"
        ],
        "properties": {
          "_id": {
            "type": "string",
            "description": "ID",
            "example": "6e2CKdiPvaYicEZS5"
          },
          "nome": {
            "type": "string",
            "description": "Nome",
            "example": "Expediente Padrão"
          },
          "descricao": {
            "type": "string",
            "description": "Descrição",
            "example": "Horários de expediente padrão da empresa"
          },
          "horarios": {
            "type": "array",
            "description": "Regras de Horário",
            "items": {
              "$ref": "#/components/schemas/Horario"
            }
          },
          "flowHistory": {
            "type": "object",
            "description": "Histórico de fluxos por ID (objeto de objetos com ts e nodeId)",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "ts": {
                  "type": "string",
                  "format": "date-time",
                  "description": "Timestamp"
                },
                "nodeId": {
                  "type": "string",
                  "description": "ID do bloco do fluxo"
                }
              },
              "required": [
                "ts",
                "nodeId"
              ]
            }
          },
          "exceptionTimegroupId": {
            "type": "string",
            "description": "Grupo de Horários para Exceções",
            "example": "SrzTonhob6EdAfCZt"
          }
        }
      },
      "FlowHistoryRequest": {
        "type": "object",
        "required": [
          "ts",
          "flowId",
          "flowNodeId"
        ],
        "properties": {
          "ts": {
            "type": "string",
            "description": "Timestamp",
            "format": "date-time",
            "example": "2023-10-01T12:00:00Z"
          },
          "flowId": {
            "type": "string",
            "description": "ID do fluxo",
            "example": "6e2CKdiPvaYicEZS5"
          },
          "flowNodeId": {
            "type": "string",
            "description": "ID do bloco do fluxo"
          }
        }
      },
      "TimeGroupValidation": {
        "type": "object",
        "properties": {
          "index": {
            "type": "integer"
          },
          "descricao": {
            "type": "string"
          },
          "matched": {
            "type": "boolean"
          },
          "matches": {
            "type": "object",
            "properties": {
              "dia": {
                "type": "boolean"
              },
              "sem": {
                "type": "boolean"
              },
              "mes": {
                "type": "boolean"
              },
              "ano": {
                "type": "boolean"
              },
              "hora": {
                "type": "boolean"
              }
            }
          }
        }
      },
      "TimeGroupsTest": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string"
          },
          "match": {
            "type": "boolean"
          },
          "validation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimeGroupValidation"
            }
          },
          "exceptionValidation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TimeGroupValidation"
            }
          },
          "tg": {
            "$ref": "#/components/schemas/TimeGroup"
          },
          "success": {
            "$ref": "#/components/schemas/SuccessTrue"
          }
        }
      },
      "ContactFromList": {
        "type": "object",
        "properties": {
          "_id": {
            "type": "string",
            "description": "ID do contato",
            "example": "wPf3o2Y34s6H4csyfa"
          },
          "username": {
            "type": "string",
            "description": "Username do contato",
            "example": "WHATS-5554984086070"
          },
          "visitorEmails": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "address": {
                  "type": "string",
                  "description": "Email do visitante"
                }
              }
            },
            "example": [
              "joao.silva@convertcompany.com.br"
            ]
          },
          "channelSelected": {
            "type": "string",
            "description": "Canal selecionado pelo contato",
            "example": "WHATS"
          },
          "name": {
            "type": "string",
            "description": "Nome completo do contato",
            "example": "João Silva"
          },
          "phone": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "phoneNumber": {
                  "type": "string",
                  "description": "Número de telefone do contato"
                }
              }
            },
            "example": [
              {
                "phoneNumber": "5554984086070"
              }
            ]
          },
          "token": {
            "type": "string",
            "description": "Token associado ao contato",
            "example": "WHATS-5554984086070"
          },
          "livechatData": {
            "type": "object",
            "properties": {
              "canal_destino": {
                "type": "string",
                "description": "Canal de destino",
                "example": "WhatsApp 555421037000"
              },
              "origem": {
                "type": "string",
                "description": "Origem do contato",
                "example": "WHATS"
              },
              "id_whats": {
                "type": "string",
                "description": "ID do WhatsApp do contato",
                "example": "5554984086070"
              },
              "destino": {
                "type": "string",
                "description": "Destino da mensagem",
                "example": "555421037000"
              },
              "{custom_field}": {
                "type": "string",
                "description": "Campo personalizado associado ao contato",
                "example": "valor"
              }
            }
          },
          "lastChat": {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string",
                "description": "ID do último chat",
                "example": "wPf3o2Y34s6H4csyfa"
              },
              "ts": {
                "type": "string",
                "format": "date-time",
                "description": "Timestamp do último chat",
                "example": "2023-10-01T12:00:00Z"
              }
            }
          },
          "empresa": {
            "type": "string",
            "description": "Nome da empresa associada ao contato",
            "example": "Convert Company"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Lista de tags associadas ao contato",
            "example": [
              "Cliente"
            ]
          }
        }
      },
      "CustomLog": {
        "type": "object",
        "required": [
          "level",
          "message"
        ],
        "properties": {
          "level": {
            "type": "string",
            "description": "Nível de log permitido.",
            "enum": [
              "error",
              "log",
              "info",
              "success",
              "warn",
              "debug"
            ],
            "example": "error"
          },
          "message": {
            "type": "string",
            "description": "Conteúdo do log",
            "example": "Novo registro de log 123."
          }
        }
      },
      "RoomWithMessages": {
        "type": "object",
        "required": [
          "_id",
          "t",
          "msgs",
          "closedAt",
          "metrics",
          "waitingResponse",
          "priorityId"
        ],
        "properties": {
          "_id": {
            "type": "string",
            "description": "ID da sala",
            "example": "3mc94ScRBy123jMWo"
          },
          "t": {
            "type": "string",
            "enum": [
              "d",
              "l",
              "c",
              "p"
            ],
            "example": "l"
          },
          "msgs": {
            "type": "number",
            "description": "Quantia de mensagens na sala",
            "example": 10
          },
          "v": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Visitor"
              },
              {
                "type": "object",
                "required": [
                  "status"
                ],
                "properties": {
                  "_id": {
                    "type": "string"
                  },
                  "token": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "online",
                      "busy",
                      "away",
                      "offline"
                    ]
                  }
                }
              }
            ]
          },
          "onHold": {
            "type": "boolean"
          },
          "departmentId": {
            "type": "string"
          },
          "departmentMain": {
            "type": "string"
          },
          "departmentHistory": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "surveyFeedback": {
            "type": "object",
            "properties": {
              "sent": {
                "type": "string"
              },
              "satisfaction": {
                "type": "string"
              }
            }
          },
          "tabulacao": {
            "type": "string"
          },
          "statusTabulacao": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "closedAt": {
            "type": "string",
            "format": "date-time"
          },
          "metrics": {
            "type": "object",
            "additionalProperties": true
          },
          "subject": {
            "type": "string"
          },
          "waitingResponse": {
            "type": "object",
            "additionalProperties": true
          },
          "priorityId": {
            "type": [
              "string",
              "number"
            ]
          },
          "inquiryTaken": {
            "type": "object",
            "properties": {
              "agent": {
                "type": "string"
              },
              "wait": {
                "type": "number"
              },
              "ts": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "servedBy": {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string"
              },
              "username": {
                "type": "string"
              },
              "ts": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "responseBy": {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string"
              },
              "username": {
                "type": "string"
              },
              "lastMessageTs": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "automatic": {
            "type": "boolean"
          },
          "automaticName": {
            "type": "string"
          },
          "closureNotice": {
            "type": "string"
          },
          "livechatData": {
            "type": "object",
            "properties": {
              "tipo_mensagem": {
                "type": "string",
                "enum": [
                  "receptiva",
                  "ativa"
                ]
              }
            },
            "additionalProperties": true
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Message"
            }
          }
        }
      },
      "MessageAttachments": {
        "type": "array",
        "description": "Lista de anexos",
        "items": {
          "type": "object",
          "properties": {
            "ts": {
              "type": "string",
              "format": "date-time",
              "example": "1970-01-01T00:00:00.000Z"
            },
            "title": {
              "type": "string",
              "example": "Screenshot 2025-04-16 150455.png"
            },
            "title_link": {
              "type": "string",
              "example": "/file-upload/rgWXpFwaN5ECGEyrm/Screenshot%202025-04-16%20150455.png"
            },
            "title_link_download": {
              "type": "boolean",
              "example": true
            },
            "image_dimensions": {
              "type": "object",
              "properties": {
                "width": {
                  "type": "integer",
                  "example": 393
                },
                "height": {
                  "type": "integer",
                  "example": 669
                }
              }
            },
            "image_preview": {
              "type": "string",
              "description": "Imagem em base64",
              "example": "/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQ..."
            },
            "image_url": {
              "type": "string",
              "example": "/file-upload/rgWXpFwaN5ECGEyrm/Screenshot%202025-04-16%20150455.png"
            },
            "image_type": {
              "type": "string",
              "example": "image/png"
            },
            "image_size": {
              "type": "integer",
              "example": 11088
            },
            "type": {
              "type": "string",
              "example": "file"
            },
            "description": {
              "type": "string",
              "example": "Esse arquivo que você queria?"
            }
          }
        }
      },
      "MessageAttachmentUpload": {
        "type": "object",
        "properties": {
          "_id": {
            "type": "string",
            "description": "ID único da mensagem",
            "example": "xWJkfX4PHdwDqCnTZ"
          },
          "rid": {
            "type": "string",
            "description": "ID da sala (room ID)",
            "example": "qqDbBYZvavuumPyKo"
          },
          "ts": {
            "type": "string",
            "format": "date-time",
            "description": "Data e hora da criação da mensagem",
            "example": "2025-06-26T19:20:15.125Z"
          },
          "msg": {
            "type": "string",
            "description": "Conteúdo textual da mensagem",
            "example": ""
          },
          "file": {
            "type": "object",
            "description": "Informações do arquivo enviado",
            "properties": {
              "_id": {
                "type": "string",
                "example": "rgWXpFwaN5ECGEyrm"
              },
              "name": {
                "type": "string",
                "example": "Screenshot 2025-04-16 150455.png"
              },
              "type": {
                "type": "string",
                "example": "image/png"
              }
            }
          },
          "attachments": {
            "$ref": "#/components/schemas/MessageAttachments"
          },
          "u": {
            "type": "object",
            "description": "Usuário que enviou a mensagem",
            "properties": {
              "_id": {
                "type": "string",
                "example": "NQ7cWyJ58MeiRm3es"
              },
              "username": {
                "type": "string",
                "example": "dev.convert"
              },
              "name": {
                "type": "string",
                "example": "Desenvolvedor Convert"
              }
            }
          },
          "currentStatus": {
            "type": "string",
            "description": "Status atual da mensagem",
            "example": "pending"
          },
          "_updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Data da última atualização",
            "example": "2025-06-26T19:20:15.168Z"
          },
          "urls": {
            "type": "array",
            "description": "URLs detectadas na mensagem",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "User": {
        "type": "object",
        "required": [
          "_id",
          "username",
          "name",
          "emails",
          "active",
          "roles",
          "status",
          "lastLogin",
          "createdAt",
          "_updatedAt"
        ],
        "properties": {
          "_id": {
            "type": "string",
            "description": "Id do usuário",
            "example": "12GQ7ZaFLjKumufd2"
          },
          "username": {
            "type": "string",
            "description": "Nome de usuário",
            "example": "johndoe"
          },
          "name": {
            "type": "string",
            "description": "Nome",
            "example": "John Doe"
          },
          "emails": {
            "type": "array",
            "description": "E-mails",
            "items": {
              "type": "object",
              "properties": {
                "address": {
                  "type": "string",
                  "format": "email",
                  "example": "john@example.com"
                },
                "verified": {
                  "type": "boolean",
                  "example": true
                }
              },
              "required": [
                "address",
                "verified"
              ]
            }
          },
          "active": {
            "type": "boolean",
            "description": "Usuário está ativo para utilização",
            "example": true
          },
          "ldap": {
            "type": "boolean",
            "description": "Associado com LDAP",
            "example": true
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "user",
              "livechat-agent"
            ]
          },
          "phone": {
            "type": "string",
            "description": "Telefone para contato",
            "example": "5555999999999"
          },
          "status": {
            "type": "string",
            "description": "Status do usuário na plataforma",
            "example": "online"
          },
          "lastLogin": {
            "type": "string",
            "description": "Data do último login",
            "format": "date-time",
            "example": "2025-07-15T12:30:00Z"
          },
          "statusLivechat": {
            "type": "string",
            "description": "Status do usuário como agente nos atendimentos",
            "example": "available"
          },
          "departments": {
            "type": "array",
            "description": "Departamentos que é membro",
            "items": {
              "type": "object",
              "properties": {
                "_id": {
                  "type": "string",
                  "example": "4rGQ7ZaFLjKumuf6o"
                },
                "name": {
                  "type": "string",
                  "example": "💲 Comercial"
                }
              },
              "required": [
                "_id",
                "name"
              ]
            }
          },
          "createdAt": {
            "type": "string",
            "description": "Data de criação do usuário",
            "format": "date-time",
            "example": "2025-07-16T14:00:00Z"
          },
          "_updatedAt": {
            "type": "string",
            "description": "Data da última modificação do usuário",
            "format": "date-time",
            "example": "2025-07-16T15:45:00Z"
          }
        }
      },
      "VerttAgent": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Agente Legal"
          },
          "description": {
            "type": "string",
            "example": "Você é um assistente de vendas que ajuda os clientes a encontrar o produto ideal para eles."
          },
          "avatar": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string",
                "example": "/ufs/AmazonS3Middleware:Gallery/aSnz4aRBBx4hmRGR5/1200px-Atlanta_Zoo_Panda.jpg"
              },
              "galleryId": {
                "type": "string",
                "example": "aSnz4aRBBx4hmRGR5"
              },
              "_updatedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-11-21T19:37:40.756Z"
              }
            }
          },
          "model": {
            "type": "string",
            "example": "gpt-4o-mini"
          },
          "temperature": {
            "type": "number",
            "example": 1
          },
          "behavior": {
            "type": "object",
            "properties": {
              "includeBusinessContext": {
                "type": "boolean",
                "example": true
              },
              "waitingTime": {
                "type": "integer",
                "example": 5
              },
              "includeAgentName": {
                "type": "boolean",
                "example": true
              },
              "sendTyping": {
                "type": "boolean",
                "example": true
              },
              "interpretImages": {
                "type": "boolean",
                "example": true
              },
              "automaticFollowUp": {
                "type": "boolean",
                "example": true
              },
              "followUpDelay": {
                "type": "integer",
                "example": 5
              }
            }
          },
          "instructions": {
            "type": "string",
            "example": "Você é um assistente especializado em atendimento ao cliente. Sempre seja educado..."
          },
          "knowledgeBases": {
            "type": "object",
            "properties": {
              "ids": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "example": [
                  "1_convertcompany_TA8SQOhMLbY1"
                ]
              },
              "maxChunks": {
                "type": "integer",
                "example": 5
              }
            }
          },
          "tools": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "example": "add_comment"
                }
              }
            }
          },
          "customTools": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "enabled": {
                  "type": "boolean",
                  "example": true
                },
                "type": {
                  "type": "string",
                  "example": "webhook"
                },
                "name": {
                  "type": "string",
                  "example": "webhook_producao"
                },
                "description": {
                  "type": "string",
                  "example": "Webhook"
                },
                "parameters": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "example": "string"
                      },
                      "name": {
                        "type": "string",
                        "example": "teste"
                      },
                      "description": {
                        "type": "string",
                        "example": ""
                      },
                      "required": {
                        "type": "boolean",
                        "example": true
                      }
                    }
                  }
                },
                "executionMode": {
                  "type": "string",
                  "example": "reprocess_with_ai"
                },
                "method": {
                  "type": "string",
                  "example": "GET"
                },
                "url": {
                  "type": "string",
                  "example": "https://liveomni01.convert.app.br/api/v1/webhooks"
                },
                "headers": {
                  "type": "string",
                  "example": ""
                },
                "body": {
                  "type": "string",
                  "example": ""
                },
                "returnMap": {
                  "type": "object",
                  "example": {}
                },
                "exitInstructions": {
                  "type": "string",
                  "example": ""
                }
              }
            }
          },
          "dataFields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "_id": {
                  "type": "string",
                  "example": "kkf7dvet1763753836733"
                },
                "customField": {
                  "type": "string",
                  "example": "autocomplete_field"
                },
                "description": {
                  "type": "string",
                  "example": "autocomplete"
                },
                "example": {
                  "type": "string",
                  "example": ""
                },
                "type": {
                  "type": "string",
                  "example": "string"
                },
                "format": {
                  "type": "string",
                  "example": "text"
                },
                "required": {
                  "type": "boolean",
                  "example": true
                }
              }
            }
          },
          "routes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "_id": {
                  "type": "string",
                  "example": "oqj58i4u1763753846436"
                },
                "name": {
                  "type": "string",
                  "example": "transfer_to_main_department"
                },
                "condition": {
                  "type": "string",
                  "example": "quando o usuário solicitar falar com humano"
                },
                "destinationType": {
                  "type": "string",
                  "example": "transfer_to_department"
                },
                "destination": {
                  "type": "string",
                  "example": "XzcthcWpXT6fHN2pL"
                }
              }
            }
          },
          "textSearch": {
            "type": "string",
            "example": "agente legal"
          },
          "_createdAt": {
            "type": "string",
            "format": "date-time",
            "example": "2025-11-21T19:35:50.037Z"
          },
          "_updatedAt": {
            "type": "string",
            "format": "date-time",
            "example": "2025-11-21T19:37:40.756Z"
          }
        }
      }
    },
    "parameters": {
      "Offset": {
        "name": "offset",
        "in": "query",
        "description": "Número de registros a serem ignorados/pulados",
        "schema": {
          "type": "integer"
        }
      },
      "Count": {
        "description": "Contagem máxima de resultados a serem obtidos.",
        "name": "count",
        "in": "query",
        "schema": {
          "type": "integer"
        }
      },
      "Sort": {
        "name": "sort",
        "in": "query",
        "description": "Ordenação dos resultados, enviado como JSON serializado na query string.",
        "schema": {
          "type": "string",
          "example": "{\"ts\": -1}"
        }
      },
      "Fields": {
        "name": "fields",
        "in": "query",
        "description": "Objeto com campos adicionais, enviado como JSON serializado na query string.",
        "schema": {
          "type": "string",
          "example": "{\"departmentId\":1,\"departmentMain\":1}"
        }
      },
      "_Id": {
        "name": "_id",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        },
        "description": "ID do recurso"
      },
      "Text": {
        "name": "text",
        "in": "query",
        "schema": {
          "type": "string"
        }
      },
      "UserId": {
        "name": "userId",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        },
        "description": "ID do usuário"
      }
    }
  },
  "x-tagGroups": [
    {
      "name": "Atendimentos",
      "tags": [
        "Mensagem",
        "Ações na conversa",
        "E-mail"
      ]
    },
    {
      "name": "Relatórios",
      "tags": [
        "KPIs"
      ]
    },
    {
      "name": "Inteligência Artificial",
      "tags": [
        "Agentes de IA",
        "Bases de conhecimento"
      ]
    },
    {
      "name": "Administração",
      "tags": [
        "Usuários",
        "Departamento",
        "Logs",
        "Auditoria",
        "Tags",
        "Grupo de Horários",
        "Webhooks"
      ]
    }
  ]
}