Visão Geral
Acompanhe o status geral das demandas e do processamento
Operação T-Demand
Demanda, tasks, roteamento, integrações e status em uma visão de controle para priorização diária.
Tasks por status
Demandas x Status
Idade das tasks abertas
Saúde das APIs
Dashboard do Meu Ambiente
Ambiente atual
Distribuição por workspace (tasks, demandas, roteamentos e runs)
Os percentuais mostram o peso de cada workspace dentro do ambiente atual.
Top 5 demandas com mais Tasks importadas
?
Top 5 demandas com mais execuções de Task
?
Top 5 roteamentos com maior consumo
?
Últimos eventos do ambiente
?
Demandas
Crie templates de demanda, defina atributos de tasks e importe N tasks para roteamento.
| Nome | Tasks | Status | Status inicial | Atualizado | Acoes |
|---|
Tasks da demanda
Board de tasks.
Ao expirar, o compartilhamento deixa de abrir automaticamente.
Ao expirar, o formulario deixa de aceitar novos envios.
Roteamentos
Organize os fluxos autônomos que processam as tasks de cada demanda.
| Nome | Demanda | Início | Agendamento | Ativo | Ações |
|---|
Editor de fluxo
Selecione uma request existente na lista lateral ou crie uma nova integração para configurar, testar e salvar as keys conhecidas.
Documentação API T-Demand
Referência para sistemas externos criarem demandas, importarem tasks e consultarem processamento com mais espaço para leitura.
Use JSON para demandas e tasks. Campos do tipo file devem enviar metadados e content_base64; o arquivo fica no volume Docker.
Content-Type: application/json
Lista completa dos endpoints que podem ser chamados sem sessão de navegador (API key, webhooks, links públicos e infra).
Ajuste a busca ou limpe o filtro por metodo para ver todos os exemplos.
article
Criar demanda
Define o objeto dinâmico e os status das tasks.
POST/api/demands
A demanda é o template de entrada. Ela define quais atributos cada task deve carregar e qual status nasce como inicial.
{
"name": "Importação de contratos",
"description": "Entrada de contratos para validação",
"task_statuses": [
{ "name": "Recebida", "role": "pending", "initial": true },
{ "name": "Em analise", "role": "waiting", "initial": false },
{ "name": "Resolvida", "role": "success", "initial": false },
{ "name": "Falha", "role": "error", "initial": false }
],
"task_schema": {
"contractId": { "type": "string", "required": true },
"amount": { "type": "number", "required": true },
"attachment": { "type": "file", "required": false }
}
}
curl -X POST "http://localhost:3000/api/demands" \
-H "Content-Type: application/json" \
-H "X-TDemand-Api-Key: tdk_sua_chave" \
-d '{
"name": "Importação de contratos",
"description": "Entrada de contratos para validação",
"task_schema": {
"contractId": { "type": "string", "required": true },
"amount": { "type": "number", "required": true }
}
}'
{
"message": "OK",
"data": {
"id": 12846,
"protocol": "DEM-12846",
"name": "Importação de contratos"
}
}
format_list_bulleted
Consultar demandas
Lista demandas disponíveis no ambiente da chave usada.
GET/api/demands
Authorization: Bearer tdk_sua_chave
ou
X-TDemand-Api-Key: tdk_sua_chave
{
"message": "OK",
"count": 2,
"data": [
{
"id": 12846,
"protocol": "DEM-12846",
"name": "Importação de contratos",
"description": "Entrada de contratos para validação",
"task_schema": {
"contractId": { "type": "string", "required": true },
"attachment": { "type": "file", "required": false }
},
"task_statuses": [
{ "name": "Recebida", "role": "pending", "initial": true },
{ "name": "Resolvida", "role": "success", "initial": false }
]
}
]
}
upload_file
Importar tasks
Envia N tasks para uma demanda existente.
POST/api/demands/:id/tasks/import
Em demandas no modo Magica, atributos novos enviados pela API sao aprendidos automaticamente e adicionados ao schema da demanda. Em modo Builder/JSON, os atributos devem seguir o schema definido. Para arquivo, envie name, mime_type e content_base64.
{
"tasks": [
{
"id": "contract-001",
"contractId": "C-001",
"customerId": "ABC",
"amount": 1200,
"attachment": {
"name": "contrato.pdf",
"mime_type": "application/pdf",
"content_base64": "..."
}
}
]
}
curl -X POST "http://localhost:3000/api/demands/12846/tasks/import" \
-H "Content-Type: application/json" \
-H "X-TDemand-Api-Key: tdk_sua_chave" \
-d '{
"tasks": [
{
"id": "contract-001",
"contractId": "C-001",
"amount": 1200
}
]
}'
{
"message": "OK",
"count": 1,
"data": [
{
"id": 501,
"task_key": "contract-001",
"status": "Recebida"
}
]
}
manage_search
Buscar tasks (filtro)
Busca paginada via POST com filtros avançados.
POST/api/demands/:id/tasks/filter
Use este endpoint para pesquisa operacional com paginação, busca textual, status e filtros por atributos do payload.
{
"view": "table",
"page": 1,
"page_size": 50,
"search": "contract-001",
"status": "Recebida",
"sort_field": "updated_at",
"sort_direction": "desc",
"filters": {
"logic": "and",
"conditions": [
{
"field": "payload.amount",
"operator": "greater_or_equal",
"value": 1000
}
]
}
}
curl -X POST "http://localhost:3000/api/demands/12846/tasks/filter" \
-H "Content-Type: application/json" \
-H "X-TDemand-Api-Key: tdk_sua_chave" \
-d '{
"view": "table",
"page": 1,
"page_size": 20,
"search": "contract",
"status": "Recebida"
}'
{
"message": "OK",
"view": "table",
"count": 20,
"total_count": 132,
"page": 1,
"page_size": 20,
"page_count": 7,
"truncated": true,
"applied_filter": true,
"data": [
{
"id": 123,
"task_key": "contract-001",
"status": "Recebida",
"payload": {
"amount": 1200
}
}
]
}
view_kanban
Listar tasks
Listagem simples por GET para consultas rápidas.
GET/api/demands/:id/tasks
{
"message": "OK",
"count": 10,
"data": [
{
"id": 123,
"task_key": "contract-001",
"status": "Recebida",
"payload": {}
}
]
}
Demanda
-> Importação de Tasks
-> Roteamento
-> Status da Task
-> Status da Demanda
description
Detalhar task
Consulta uma task específica pelo ID.
GET/api/demands/:id/tasks/:taskId
Use este endpoint para carregar os dados completos de uma task (payload, status e timestamps) quando você já conhece o taskId.
curl -X GET "http://localhost:3000/api/demands/12846/tasks/501" \
-H "X-TDemand-Api-Key: tdk_sua_chave"
{
"message": "OK",
"data": {
"id": 501,
"demand_id": 12846,
"task_key": "contract-001",
"status": "Recebida",
"payload": {
"amount": 1200
},
"error_message": null,
"created_at": "2026-01-01T10:00:00.000Z",
"updated_at": "2026-01-01T10:05:00.000Z",
"processed_at": null
}
}
edit_document
Atualizar task
Atualiza status, task_key e payload de uma task existente.
PUT/api/demands/:id/tasks/:taskId
Use para atualizar uma task específica já criada na demanda. O payload é validado pelo schema da demanda (exceto modo Mágica).
{
"task_key": "contract-001",
"status": "Em analise",
"payload": {
"contractId": "C-001",
"amount": 1450,
"priority": "alta"
}
}
curl -X PUT "http://localhost:3000/api/demands/12846/tasks/501" \
-H "Content-Type: application/json" \
-H "X-TDemand-Api-Key: tdk_sua_chave" \
-d '{
"status": "Em analise",
"payload": {
"amount": 1450,
"priority": "alta"
}
}'
{
"message": "OK",
"data": {
"id": 501,
"task_key": "contract-001",
"status": "Em analise",
"payload": {
"contractId": "C-001",
"amount": 1450,
"priority": "alta"
}
}
}
merge_type
Patch payload da task
Atualiza partes do payload com set, merge e push em array.
PATCH/api/demands/:id/tasks/:taskId/payload
Use esse endpoint quando quiser alterar apenas partes do payload sem enviar o objeto inteiro novamente. O backend aplica as operações na ordem informada.
{
"operations": [
{ "op": "set", "path": "cliente.email", "value": "novo@email.com" },
{ "op": "merge", "path": "cliente", "value": { "status": "revisado" } },
{ "op": "push", "path": "historico", "value": { "evento": "atualizado" } }
]
}
curl -X PATCH "http://localhost:3000/api/demands/12846/tasks/501/payload" \
-H "Content-Type: application/json" \
-H "X-TDemand-Api-Key: tdk_sua_chave" \
-d '{
"operations": [
{ "op": "set", "path": "cliente.email", "value": "novo@email.com" },
{ "op": "push", "path": "tags", "value": "vip" }
]
}'
{
"message": "OK",
"data": {
"id": 501,
"task_key": "contract-001",
"status": "Em analise",
"payload": {
"cliente": {
"email": "novo@email.com"
},
"tags": ["vip"]
}
}
}
merge_type
Upsert task por match_key
Atualiza uma task por chave lógica ou cria quando não existir.
POST/api/demands/:id/tasks/upsert
Combine match_key + match_value para localizar a task. Se não encontrar, cria uma nova task (quando create_if_missing não for false).
{
"match_key": "payload.contractId",
"match_value": "C-001",
"merge_mode": "merge",
"create_if_missing": true,
"status": "Recebida",
"payload": {
"amount": 1800,
"customerId": "ABC"
}
}
curl -X POST "http://localhost:3000/api/demands/12846/tasks/upsert" \
-H "Content-Type: application/json" \
-H "X-TDemand-Api-Key: tdk_sua_chave" \
-d '{
"match_key": "task_key",
"match_value": "contract-001",
"merge_mode": "replace",
"payload": {
"contractId": "C-001",
"amount": 1800
}
}'
{
"message": "OK",
"data": {
"action": "updated",
"match_key": "task_key",
"match_value": "contract-001",
"data": {
"id": 501,
"task_key": "contract-001",
"status": "Recebida",
"payload": {
"contractId": "C-001",
"amount": 1800
}
}
}
}
Logs do sistema
Auditoria dos últimos 3 dias por padrão, com trilha de antes/depois das mudanças.
Imagem anexada
Visualização ampliada da imagem do comentário.