Breadcrumbs

Fluxos de Atendimento, Questionários, Pesquisas e Workflows

Endpoints para consultar ações disponíveis em um fluxo de atendimento, executá-las sobre um caso, consultar as respostas de questionários associadas e buscar as pesquisas de satisfação respondidas.

Todas as requisições exigem o cabeçalho Authorization, veja Autenticação e Segurança.

Índice desta página


Buscar Ações por status e tipo do caso

Permite buscar ações, utilizando o status e o tipo do caso como parâmetros de busca.

Request

GET https://api.cvortex.com/v1/workflow-executions/actions/{statusId}/{caseTypeId}

Header: Authorization

Parâmetros de URI

Parâmetro

Descrição

Obrigatório

statusId

ID da statusFunction, correspondente à propriedade no flow status_status_property

Sim

caseTypeId

ID do tipo do caso, correspondente à propriedade no flow imperative_start_case_type_property

Sim

Response

JSON
[
  {
    "workflowId": "string",
    "actions": ["string"]
  }
]


Executar uma ação de um fluxo de atendimento

Permite executar uma ação de um fluxo de atendimento a partir de um caso.

Request

POST https://api.cvortex.com/v1/workflow-executions

Header: Authorization

Dica: com "F12" no navegador, pela tela de cadastro do formulário de ação, é possível copiar os valores que precisam ser enviados dentro do formRequestList.

Body

JSON
{
   "actionId": "ID Hash da ação a ser executada",
   "caseId": "ID Hash do caso",
   "caseTypeId": "ID Hash do tipo de caso do caso em questão",
   "statusFunctionId": "ID Hash do status de caso no fluxo",
   "formRequestList": [
      { "binding": "string", "value": "string" }
   ]
}

Response

JSON
{
   "workflowExecutionsRequest": "ID Hash da requisição WF criada"
}

Observações

  • A ação deve estar vinculada ao status do caso dentro do fluxo de atendimento no Workflow Studio.

  • A ação somente será executada se o caso estiver no status informado.


Transferir para Bot

Transfere o atendimento para um outro Bot cVortex.

Para que a execução seja feita com sucesso, o atendimento precisa garantir o seguinte estado:

  • ter um canal de chat ativo no caso;

  • não estar associado a nenhum agente;

  • estar aberto.

Se o atendimento não estiver conforme o esperado, a API retorna erro.

Request

POST https://api.cvortex.com/v1/wos/chatbot/start

Header: Authorization

Parâmetros de body

Nome

Tipo

Descrição

Obrigatório

caseId

string

ID Hash do atendimento que será transferido

Sim

workflowId

string

ID Hash do workflow de destino

Sim

Exemplo de request

JSON
{
  "caseId": "12341123412433124",
  "workflowId": "354353342434"
}


Buscar respostas de questionários por Caso e Ação

Recupera a lista de respostas de questionários de um determinado caso e ação.

Request

GET https://api.cvortex.com/v1/questionnaire/questionnaire-answer

Header: Authorization

Parâmetros de URI

Parâmetro

Descrição

Obrigatório

case-id

ID Hash correspondente ao caso

Sim

action-id

ID correspondente à ação do caso

Sim

Response

JSON
[
  {
    "id": "a9378ad3-8730-4800-852f-e96691508103",
    "name": "Teste Cosmos",
    "createdAt": 1706301660041,
    "questions": [
      {
        "id": "40a7e004-f9ea-4f90-8445-d0f89987dd15",
        "label": "Questão 1",
        "type": "DATE",
        "required": false,
        "answer": "1706301600000",
        "options": [],
        "answered": true
      },
      {
        "id": "b1f953cf-752b-4d5f-9d5d-8787bfb3c3c1",
        "label": "Questão 1",
        "type": "TEXT",
        "required": false,
        "answer": "abc",
        "options": [],
        "answered": true
      }
    ]
  }
]


Buscar pesquisas respondidas

Retorna as pesquisas respondidas dentro do período informado, agrupadas pelo caso de origem. Cada caso traz as pesquisas respondidas nele e, em cada pesquisa, as perguntas com suas respectivas respostas.

Request

GET https://api.cvortex.com/v1/external/survey/answers/search

Header: Authorization

Parâmetros de URI

Nome

Tipo

Descrição

Obrigatório

businessUnitId

hash

Identificador da unidade de negócio

Sim

startDate

number

Início do período de resposta, em timestamp (milissegundos)

Sim

endDate

number

Fim do período de resposta, em timestamp (milissegundos). Deve ser maior ou igual ao startDate

Sim

limit

number

Quantidade de casos retornados por página. Padrão: 300

Não

cursor

number

Ponto de continuação da listagem, obtido no next_cursor da página anterior. Não deve ser informado na primeira chamada

Não

O período é aplicado sobre a data em que a pesquisa foi respondida, não sobre a data de abertura ou de fechamento do caso.

Exemplo de request

GET https://api.cvortex.com/v1/external/survey/answers/search?businessUnitId=5f9b2c81a3d47e06b1c8f294&startDate=1754006400000&endDate=1754611200000&limit=25

Response

Código

Descrição

200

Operação realizada com sucesso

400

Parâmetro obrigatório não informado ou período inválido (startDate maior que endDate)

401

Token não informado ou inválido

403

Token sem a permissão necessária para consumo da API externa

Estrutura da página

Nome

Tipo

Descrição

content

array

Lista de casos retornados na página

size

number

Quantidade de casos presentes no content

next_cursor

number

Ponto de continuação para a próxima página. Retorna null quando não há mais registros

Estrutura de Case

Nome

Tipo

Descrição

caseId

hash

Identificador do caso

caseEasyId

number

Identificador numérico do caso, o mesmo exibido na interface

surveys

array

Pesquisas respondidas no caso

Estrutura de Survey

Nome

Tipo

Descrição

id

hash

Identificador da pesquisa

name

string

Nome da pesquisa

surveyType

string

Tipo da pesquisa: NPS, CSAT ou SURVEY

questions

array

Perguntas da pesquisa com as respostas do respondente

Estrutura de Question

Nome

Tipo

Descrição

id

hash

Identificador da pergunta

question

string

Enunciado da pergunta

questionType

string

Tipo da pergunta: RATING_RANGE para nota e TEXT para resposta aberta

answerId

hash

Identificador da resposta

answer

string

Resposta informada. A nota, quando RATING_RANGE; o texto, quando TEXT

Campos sem valor são omitidos do retorno. Uma pergunta do tipo TEXT não respondida retorna sem o campo answer.

Exemplo de response

JSON
{
  "content": [
    {
      "caseId": "3f2b8c1e9a7d4f60b5e21c83",
      "caseEasyId": 794674,
      "surveys": [
        {
          "id": "8a1c5d3e7b2f49a0c6d13e85",
          "name": "Pesquisa pós-atendimento",
          "surveyType": "CSAT",
          "questions": [
            {
              "id": "c4e9f21a8d6b3057e1a29b74",
              "question": "Como você avalia o atendimento?",
              "questionType": "RATING_RANGE",
              "answerId": "b7d2a94f6c1e8350a2f47d19",
              "answer": "9"
            },
            {
              "id": "e5a13c78b924f6d037c8b2a1",
              "question": "Deixe um comentário",
              "questionType": "TEXT",
              "answerId": "a91f47c6d2b85039e7c14a63",
              "answer": "Atendimento rápido, resolveu na primeira ligação."
            }
          ]
        },
        {
          "id": "d2f84a610c9b3e57a1d64b28",
          "name": "NPS trimestral",
          "surveyType": "NPS",
          "questions": [
            {
              "id": "7b6e2d54a1c93f08d5b27e4a",
              "question": "Qual a chance de você nos recomendar?",
              "questionType": "RATING_RANGE",
              "answerId": "f38c71e5b0d24a96c7e1385b",
              "answer": "10"
            }
          ]
        }
      ]
    },
    {
      "caseId": "9c47e1b35a82d6f04b93c15e",
      "caseEasyId": 794701,
      "surveys": [
        {
          "id": "8a1c5d3e7b2f49a0c6d13e85",
          "name": "Pesquisa pós-atendimento",
          "surveyType": "CSAT",
          "questions": [
            {
              "id": "c4e9f21a8d6b3057e1a29b74",
              "question": "Como você avalia o atendimento?",
              "questionType": "RATING_RANGE",
              "answerId": "1d9a3f26c845b7e09f2a64d3",
              "answer": "6"
            }
          ]
        }
      ]
    }
  ],
  "size": 2,
  "next_cursor": 1754923200000
}

Paginação

A listagem é paginada por cursor. O limit define quantos casos vêm em cada página, e não quantas pesquisas ou respostas.

  1. Faça a primeira chamada informando apenas businessUnitId, startDate, endDate e, opcionalmente, limit.

  2. Se o next_cursor da resposta vier preenchido, faça a próxima chamada repetindo os mesmos parâmetros e acrescentando cursor com esse valor.

  3. Repita até que o next_cursor retorne null, o que indica que não há mais registros no período.

Exemplo de continuação

GET https://api.cvortex.com/v1/external/survey/answers/search?businessUnitId=5f9b2c81a3d47e06b1c8f294&startDate=1754006400000&endDate=1754611200000&limit=25&cursor=1754923200000

Observações

  • O cursor é uma data de resposta e sempre avança dentro do período informado. Não altere o startDate entre as chamadas: mantenha o valor original e deixe o cursor controlar a posição da leitura.

  • Um caso que possua pesquisas respondidas em datas distantes pode aparecer em mais de uma página, cada vez com as pesquisas daquele trecho do período. Consolide os retornos pelo caseId.

  • Quando várias respostas compartilham exatamente o mesmo instante, a página pode retornar um caso a mais que o limit informado, para que nenhum registro seja perdido.