{
"$schema": "<http://json-schema.org/draft-07/schema#>",
"type": "object",
"properties": {
"definitions": {
"executeMock": {
"type": "boolean",
"description": "Indica se devemos utilizar a configuração mockada. Este parâmetro só é útil pelos desenvolvedores do Quoti-CSM e quando a extensão encontra-se no /develop",
"example": true
},
"defaultTab": {
"type": "object",
"description": "Propriedade responsável pela customização da tabela principal mostrada na tela do workspace. Exemplo de configuração que podemos realizar com essa prop: customizar colunas, títulos, filtros, itens que serão exibidos, número itens por página e literlamente qualquer caracteristica presente na tabela. Caso sua customização não encontre disponível, comunique sua ideia à equipe do Quoti",
"properties": {
"fields": {
"type": "array",
"description": "Todas as colunas que estarão presentes na tabela. Podemos configurar nome, ordem e valor que será exibido em cada célula da coluna.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Nome da propriedade retornada pelo CSM-API",
"example": "id"
},
"label": {
"type": "string",
"description": "Nome que será exibido na coluna da tabela",
"example": "Número"
},
"sortable": {
"type": "boolean",
"description": "Indica se a coluna é ordenável",
"example": true
},
"convert": {
"type": "string",
"description": "Função usada para converter o valor da célula. Utilizada para criar colunas computadas",
"example": "qtFunction return (input => input?.length ? this.shortName(input) : 'Não definido')(input)"
}
}
}
},
"params": {
"type": "object",
"description": "Essa prop será utilizada na requisição https de listagem dos tickets. Ou seja, nela podemos especificar qualquer campo listado na documentação <https://api.csm.quoti.cloud/api-explorer/#/Tickets/get__orgSlug__tickets>",
"properties": {
"includeQueue": {
"description": "Incluir informações da fila associada",
"type": "boolean",
"example": false
},
"includeSharedGroup": {
"type": "boolean",
"description": "Incluir chamados que possuem grupo compartilhado",
"example": false
},
"includeTicketGoals": {
"type": "boolean",
"description": "Incluir metas do chamado",
"example": true
},
"limit": {
"type": "number",
"description": "Lista a quantidade de itens que será retornada por página",
"example": 15
}
}
},
"createTicket": {
"type": "boolean",
"description": "Indica se é permitido criar chamado pela tela do workspace",
"example": true
},
"createDialogTitle": {
"type": "string",
"description": "Título da criação do chamado",
"example": "Adicionar chamado"
},
"attributes": {
"type": "array",
"description": "Indica a prop attributes presente na listagem dos chamados. ",
"items": {
"anyOf": [
{
"type": "string",
"description": "Nome da propriedade retornada pelo CSM API",
"example": "id"
},
{
"type": "array",
"description": "Nome da propriedade retornada pelo CSM API seguida de um alias",
"items": [
{
"type": "string",
"description": "Nome da propriedade",
"example": "TicketType.name"
},
{
"type": "string",
"description": "Alias",
"example": "type"
}
]
}
]
}
},
"filter": {
"type": "object",
"description": "Essa propriedade será passada para o parâmetro where da requisição de listagem dos chamados. Com esse parâmetro conseguimos especificar quais chamados deverão ser exibidos de acordo com suas características. Observe pelos exemplos que é possível filtrar por propriedades de modelos que estão associado ao chamado. Ou seja, é possível filtrar pelo ticketType, categoria, fila, informações adicionais entre outros",
"properties": {
"status": {
"type": "array",
"items": {
"type": "string",
"description": "Filtra por status"
},
"example": ["Em Andamento", "Pausado", "Aberto"]
},
"assignedToUser": {
"type": "array",
"items": {
"type": "number",
"description": "Atribuído ao usuário"
},
"example": ["run qtFunction return this.me?.id"]
},
"isAppointment": {
"type": "boolean",
"description": "Filtra por chamados agendados",
"example": false
},
"$TicketType.name$": {
"type": "object",
"properties": {
"not": {
"type": "array",
"items": {
"type": "string",
"description": "Filtra por nome do tipo do chamado"
},
"example": ["Aprovação"]
}
}
},
"$TicketType.id$": {
"type": "object",
"properties": {
"not": {
"type": "array",
"items": {
"type": "string",
"description": "Excluir"
},
"example": [
"run qtFunction return this.constants.TICKET_TYPE_CHAT_ID"
]
}
}
}
}
},
"filterConfig": {
"type": "object",
"description": "Configura propriedade que serão exibidas no componente filtro",
"properties": {
"hideQueue": {
"type": "boolean",
"description": "Indica se será possível filtrar pela fila",
"example": true
},
"hideRecipient": {
"type": "boolean",
"description": "Indica se será possível filtrar pelo destinatário",
"example": true
},
"disableCategory": {
"type": "boolean",
"description": "Indica se será possível filtrar pela categoria",
"example": true
},
"hideSectorTicket": {
"type": "boolean",
"description": "Indica se será possível filtrar por chamados compartilhados",
"example": true
},
"disableTicketType": {
"type": "boolean",
"description": "Indica se será possível filtrar pelo tipo do chamado",
"example": true
},
"hideAssignedToUser": {
"type": "boolean",
"description": "Indica se será possível filtrar pelo responsável do chamado",
"example": true
},
"notIncludeStatusFromTicketTypes": {
"type": "array",
"items": {
"type": "string",
"description": "Importante quando queremos listar apenas status de um determinado tipo no seletor de status do filtro",
"example": [
"run qtFunction return this.constants.TICKET_TYPE_CHAT_ID"
]
}
}
}
},
"order": {
"type": "array",
"description": "Indica a ordem padrão dos chamados, assim que a página é carregada",
"items": {
"type": "array",
"items": [
{
"type": "string",
"description": "Campo de ordenação",
"example": "TicketGoals.expireAt"
},
{
"type": "string",
"description": "Direção da ordenação",
"example": "ASC"
}
]
}
}
}
}
},
"workspace": {
"executeMock": { "$ref": "#/definitions/executeMock" },
"defaultTab": { "$ref": "#/definitions/defaultTab" },
"tabs": {
"description": "Permite realizar customização a nivel de tabs.",
"type": "array",
"items": {
"allOf": [
{ "$ref": "#/definitions/defaultTab" },
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Identificador da tabela. É boa prática não usar espaço e nem caracteres especiais",
"example": "ticketTable"
},
"path": {
"type": "string",
"description": "É boa prática deixar idêntico ao slug",
"example": "ticketTable"
},
"text": {
"type": "string",
"description": "Título da tabela",
"example": "Chamados em aberto que sou o responsável"
},
"tabTitle": {
"type": "string",
"description": "Título da aba",
"example": "Meus chamados"
}
}
}
]
}
},
"ticketAgentOverview": { "$ref": "#/ticketTypeOrCategory" },
"useTicketOverview": {
"type": "boolean",
"description": "Usar a antiga visão geral do chamado",
"example": false
}
},
"ticketTypeOrCategory": {
"type": "object",
"properties": {
"params": { "$ref": "#/definitions/executeMock" },
"texts": {
"type": "object",
"description": "Indica a configuração de textos que está presente na tela ticketAgentOverview",
"properties": {
"title": {
"type": "string",
"description": "Título da tela",
"examples": ["Chamado", "Ativo"]
},
"sidebar": {
"type": "object",
"properties": {
"openBy": {
"type": "string",
"description": "Texto na sideBar indicando quem criou o chamado",
"examples": ["Criado por"]
}
}
},
"generalInfo": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Título da seção de informações gerais",
"examples": ["Informações Gerais"]
},
"ticketName": {
"type": "string",
"description": "Nome do chamado",
"examples": ["Chamado", "Ativo"]
},
"deleteTicketBtn": {
"type": "string",
"description": "Texto do botão para apagar chamado",
"examples": ["Apagar chamado", "Apagar ativo"]
}
}
},
"ticketActions": {
"type": "object",
"description": "Descreve textos relacionados a seção de ações do chamado",
"properties": {
"title": {
"type": "string",
"description": "Título da seção de ações do chamado",
"examples": ["Eventos do chamado", "Eventos do ativo"]
},
"createBtn": {
"type": "string",
"description": "Texto do botão para criar uma mensagem",
"examples": ["Enviar"]
},
"ticketKind": {
"type": "string",
"description": "Natureza do chamado",
"examples": ["chamado", "ativo"]
},
"createPrivatelyBtn": {
"type": "string",
"description": "Texto do botão para criar nota privada",
"examples": ["Criar nota privada"]
},
"ticketCreatedHeader": {
"type": "string",
"description": "Título que será exibido na ação 'criação de um chamado'",
"examples": ["Criação do chamado", "Criação do ativo"]
},
"ticketUpdatedHeader": {
"type": "string",
"description": "Título que será exibido na ação 'criação de um chamado'",
"examples": ["Atualização do chamado", "Atualização do ativo"]
}
}
},
"additionalInfo": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Título da seção de informações adicionais",
"examples": ["Dados da Demanda", "Informações Adicionais"]
},
"saveBtn": {
"type": "string",
"description": "Texto do botão para salvar informações",
"examples": ["Salvar informações"]
}
}
},
"cancelTicketBtn": {
"type": "string",
"description": "Texto do botão para cancelar chamado",
"examples": ["Cancelar chamado", "Cancelar ativo"]
},
"downloadTicketBtn": {
"type": "string",
"description": "Texto do botão para baixar dados do chamado",
"examples": ["Baixar dados"]
}
}
},
"extraTabs": {
"type": "array",
"items": {
"allOf": [
{ "$ref": "#/definitions/defaultTab" },
{
"type": "object",
"properties": {
"condition": {
"type": "boolean",
"description": "Indica se a tab irá ou não aparecer",
"examples": [true, false]
},
"slug": {
"type": "string",
"description": "Slug da guia extra",
"examples": ["details", "ticketChildren"]
},
"path": {
"type": "string",
"description": "Caminho da guia extra. é boa prática o path ser igual ao slug",
"examples": ["details", "ticketChildren"]
},
"text": {
"type": "string",
"description": "Título da guia extra",
"examples": ["Detalhes", "Atendimentos Associados"]
}
}
}
],
"createTicketCatalog": {
"type": "string",
"description": "Catálogo de criação de chamado"
}
},
"description": "Configuração de guias extras"
},
"hideSLAs": {
"type": "boolean",
"description": "Indica se a tab ticketSla será mostrada. [Deprecated] Use ticket extraTabs[0].condition",
"examples": [true]
},
"hideQueue": {
"type": "boolean",
"description": "Indica se a tab ticketSla será mostrada. [Deprecated] Use ticket extraTabs[0].condition",
"examples": [true, false]
},
"hideMedias": {
"type": "boolean",
"description": "Indica se a tab ticketSla será mostrada. [Deprecated] Use ticket extraTabs[0].condition",
"examples": [true, false]
},
"hidePriority": {
"type": "boolean",
"description": "Indica se a prioridade está oculta",
"examples": [true]
},
"readOnlyType": {
"type": "boolean",
"description": "Indica se é possivel alterar o tipo do chamado",
"examples": [true]
},
"executeMock": {
"type": "boolean",
"description": "Indica se devemos utilizar a configuração mockada. Este parâmetro só é útil pelos desenvolvedores do Quoti-CSM e quando a extensão encontra-se no /develop",
"example": true
},
"ticketTypeId": {
"type": "integer",
"description": "ID do tipo de chamado. Usado em conjunto com a prop executeMock. Aplicará mock apenas nos chamados que possuirem esse tipo de chamado",
"examples": [100049, 4]
},
"sideBarTabs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"icon": {
"type": "string",
"description": "Ícone da barra lateral",
"examples": ["mdi-information"]
},
"path": {
"type": "string",
"description": "Caminho da guia da barra lateral",
"examples": ["attachments", "recordInfo", "agentAssist"]
},
"slug": {
"type": "string",
"description": "Slug da guia da barra lateral",
"examples": ["attachments", "recordInfo", "agentAssist"]
},
"text": {
"type": "string",
"description": "Texto da guia da barra lateral",
"examples": ["Informações"]
}
}
},
"description": "Configuração de guias da barra lateral"
},
"actionButtons": {
"type": "array",
"items": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Texto do botão de ação",
"examples": ["Criar Novo Atendimento", "Nova configuração"]
},
"type": {
"type": "string",
"description": "Tipo do botão de ação",
"examples": ["createTicket", "updateTicket", "general"]
},
"color": {
"type": "string",
"description": "Cor do botão de ação",
"examples": ["primary"]
},
"dense": {
"type": "boolean",
"description": "Indica se o botão de ação é denso",
"examples": [true]
},
"outlined": {
"type": "boolean",
"description": "Indica se o botão de ação é contornado",
"examples": [false]
},
"condition": {
"type": "boolean",
"description": "Condição para exibição do botão de ação",
"examples": [true]
},
"depressed": {
"type": "boolean",
"description": "Indica se o botão de ação é deprimido",
"examples": [true]
},
"action": {
"type": "string",
"description": "Ação associada ao botão de ação",
"examples": [
"qtFunction return this.createChildrenTicket({'headerTitle': 'Criar novo Atendimento','categoryId': 100045, 'ticketTypeId': 100050, 'ticketKind': 'atendimento'})",
"qtFunction return this.createChildrenTicket({'headerTitle': 'Manutenção - Ajuste Configuração','categoryId': 100771, 'ticketKind': 'movimentação'})"
]
}
}
},
"description": "Configuração de botões de ação"
},
"hideApprovals": {
"type": "boolean",
"description": "Indica se as aprovações estão ocultas",
"examples": [true]
},
"readOnlyStatus": {
"type": "boolean",
"description": "Indica se o status é somente leitura",
"examples": [true, false]
},
"serviceCatalog": {
"type": "object",
"properties": {
"skipConfirmationBeforeCreation": {
"description": "Indica se a confirmação deve ser ignorada antes da criação.",
"type": "boolean",
"examples": [true, false]
}
}
},
"readOnlyCategory": {
"description": "Indica se a categoria é somente leitura.",
"type": "boolean",
"examples": [true, false]
},
"createTicketCatalog": {
"description": "Catálogo utilizado para criar tickets.",
"type": "integer",
"examples": [153727]
},
"skipConfirmationBeforeCreation": {
"description": "Indica se a confirmação deve ser ignorada antes da criação.",
"type": "boolean",
"examples": [true, false]
},
"hideDependentTickets": {
"description": "Indica se os tickets associados devem ser ocultados.",
"type": "boolean",
"examples": [true, false]
}
}
}
}
}