O que é

Processos é o módulo que desenha um trabalho que se repete e o faz andar sozinho. Cada processo tem dois modos: Desenho, para documentar como a empresa trabalha, e Automação, em que cada peça Tarefa vira uma tarefa de verdade no quadro, para a pessoa do papel, com prazo e checklist.

Na prática: você cria o processo em rascunho, envia o desenho (peças e conexões no mesmo formato do editor do painel), confere se ele pode executar e ativa. Cada gravação vira uma versão nova, e as antigas podem ser restauradas.

O que dá para fazer hoje

  • Listar e consultar processos, com o desenho da versão atual.
  • Criar um processo em rascunho, já com o desenho.
  • Salvar o desenho numa versão nova.
  • Editar nome, descrição, setor e responsável.
  • Conferir se o processo pode executar e quais papéis ele pede.
  • Listar as versões e restaurar uma antiga.
  • Ativar e desativar.
  • Iniciar o processo num quadro, com a pessoa de cada papel.
  • Acompanhar as execuções e cada etapa.
  • Escolher a saída de uma etapa (ex.: Aprovado ou Ajustar).
  • Cancelar uma execução.

Importante

  • Pela API o processo sempre nasce em Rascunho; ativar é uma ação própria.
  • Salvar o desenho substitui todas as peças e conexões numa versão nova; nada do histórico é apagado.
  • Antes de ativar, use GET /processes/{process}/validation: ela faz a mesma conferência da janela Iniciar processo do painel.
  • Iniciar, escolher saídas e cancelar execuções pede o escopo processes:execute e as mesmas permissões do quadro e da tarefa no painel; só aparecem execuções dos quadros que o usuário pode abrir.

Disponibilidade na API

Endpoints de Processos

Crie processos em rascunho, salve o desenho em versões, confira se podem executar, ative e acompanhe as execuções: iniciar, escolher saídas e cancelar. Os exemplos abaixo são gerados pelo contrato OpenAPI oficial.

GET /api/v1/processes

Lista os processos

Exige `processes:read` e ver Gestão de Processos. Do mais novo para o mais antigo. O desenho vem só no detalhe.

Parâmetros

NomeTipoObrigatórioDescrição
statusquerystringNão—
searchquerystringNãoParte do nome.
per_pagequeryintegerNão—

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/processes" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 1,
            "name": "string",
            "description": null,
            "status": "Rascunho",
            "current_version": 1,
            "board_id": 1,
            "sector_id": 1,
            "responsible_user_id": 1,
            "created_at": "2026-10-20T10:00:00-03:00",
            "updated_at": "2026-10-20T10:00:00-03:00",
            "flow": {
                "layout": "auto",
                "nodes": [
                    {
                        "id": "string",
                        "type": "node_step",
                        "position": {
                            "x": 1,
                            "y": 1
                        },
                        "width": 1,
                        "height": 1,
                        "zIndex": 1,
                        "data": []
                    }
                ],
                "edges": [
                    {
                        "id": null,
                        "source": "string",
                        "sourceHandle": null,
                        "target": "string",
                        "targetHandle": null
                    }
                ]
            }
        }
    ],
    "links": [],
    "meta": []
}

Respostas possíveis

200 Página de processos401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/processes

Cria um processo em rascunho

Exige `processes:write` e criar em Gestão de Processos. Sempre nasce em `Rascunho` (ativar é a ação `activate`), com o desenho opcional na versão 1. O desenho é conferido: tipo de peça conhecido, id único, posição numérica e conexões entre peças existentes. Conexão sem `sourceHandle`/`targetHandle` usa `out`/`in`.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringSimAté 255 caracteres.
layoutstring | nullNão`auto`: o servidor organiza o desenho inicial pelas conexões; `position` fica opcional. Valores: auto, .
descriptionstring | nullNão—
board_idinteger | nullNão—
sector_idinteger | nullNão—
responsible_user_idinteger | nullNão—
nodesarray<object>Não—
edgesarray<object>Não—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/processes" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"name":"Produção de Reels","description":"Da pauta ao Reels publicado.","nodes":[{"id":"roteiro","type":"node_task","position":{"x":0,"y":0},"data":{"title":"Roteiro","templateId":2,"responsibleType":"role","roleName":"Criador de conteúdo"}},{"id":"aprovacao","type":"node_task","position":{"x":380,"y":0},"data":{"title":"Aprovação","responsibleType":"role","roleName":"Aprovador","dueDays":1,"instruction":"Assistir e escolher a saída.","conditions":[{"id":"aprovado","name":"Aprovado"},{"id":"ajustar","name":"Ajustar"}]}},{"id":"publicar","type":"node_task","position":{"x":760,"y":-120},"data":{"title":"Publicar","responsibleType":"role","roleName":"Criador de conteúdo","dueDays":1}},{"id":"doc","type":"node_note","position":{"x":0,"y":400},"width":300,"height":180,"data":{"note":"Tom direto, sem jargão."}}],"edges":[{"source":"roteiro","target":"aprovacao"},{"source":"aprovacao","sourceHandle":"condition:aprovado","target":"publicar"},{"source":"aprovacao","sourceHandle":"condition:ajustar","target":"roteiro"}]}'

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "status": "Rascunho",
        "current_version": 1,
        "board_id": 1,
        "sector_id": 1,
        "responsible_user_id": 1,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00",
        "flow": {
            "layout": "auto",
            "nodes": [
                {
                    "id": "string",
                    "type": "node_step",
                    "position": {
                        "x": 1,
                        "y": 1
                    },
                    "width": 1,
                    "height": 1,
                    "zIndex": 1,
                    "data": []
                }
            ],
            "edges": [
                {
                    "id": null,
                    "source": "string",
                    "sourceHandle": null,
                    "target": "string",
                    "targetHandle": null
                }
            ]
        }
    }
}

Respostas possíveis

201 Processo criado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente409 Chave em processamento ou reutilizada com outro conteúdo422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/processes/{process}

Exibe um processo com o desenho atual

Exige `processes:read`. `flow` traz as peças e conexões da versão atual, no formato do editor.

Parâmetros

NomeTipoObrigatórioDescrição
processpathintegerSim—

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/processes/{process}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "status": "Rascunho",
        "current_version": 1,
        "board_id": 1,
        "sector_id": 1,
        "responsible_user_id": 1,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00",
        "flow": {
            "layout": "auto",
            "nodes": [
                {
                    "id": "string",
                    "type": "node_step",
                    "position": {
                        "x": 1,
                        "y": 1
                    },
                    "width": 1,
                    "height": 1,
                    "zIndex": 1,
                    "data": []
                }
            ],
            "edges": [
                {
                    "id": null,
                    "source": "string",
                    "sourceHandle": null,
                    "target": "string",
                    "targetHandle": null
                }
            ]
        }
    }
}

Respostas possíveis

200 Processo encontrado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
PATCH /api/v1/processes/{process}

Atualiza os dados de um processo

Exige `processes:write` e editar em Gestão de Processos. Parcial: campo omitido fica como está. Cria uma versão nova que copia o desenho atual. O desenho muda por `PUT /processes/{process}/flow`.

Parâmetros

NomeTipoObrigatórioDescrição
processpathintegerSim—

Corpo da requisição

CampoTipoObrigatórioDescrição
namestringNãoAté 255 caracteres.
descriptionstring | nullNão—
board_idinteger | nullNão—
sector_idinteger | nullNão—
responsible_user_idinteger | nullNão—

Exemplo de requisição

cURL
curl -X PATCH "$MICORE_BASE_URL/processes/{process}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","description":null,"board_id":1,"sector_id":1,"responsible_user_id":1}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "status": "Rascunho",
        "current_version": 1,
        "board_id": 1,
        "sector_id": 1,
        "responsible_user_id": 1,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00",
        "flow": {
            "layout": "auto",
            "nodes": [
                {
                    "id": "string",
                    "type": "node_step",
                    "position": {
                        "x": 1,
                        "y": 1
                    },
                    "width": 1,
                    "height": 1,
                    "zIndex": 1,
                    "data": []
                }
            ],
            "edges": [
                {
                    "id": null,
                    "source": "string",
                    "sourceHandle": null,
                    "target": "string",
                    "targetHandle": null
                }
            ]
        }
    }
}

Respostas possíveis

200 Processo atualizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
PUT /api/v1/processes/{process}/flow

Salva o desenho numa versão nova

Exige `processes:write` e editar em Gestão de Processos. Substitui todas as peças e conexões numa versão nova; a anterior fica no histórico e pode ser restaurada. Peças do modo Desenho (`node_step`, formas, notas) documentam; as do modo Automação (`node_task`, `node_subprocess`) executam. Veja `ProcessFlowNode` para os campos de cada peça. Com `layout: "auto"`, o servidor calcula a posição de cada peça pelas conexões (colunas da esquerda para a direita; retornos como o Ajustar não mudam as colunas; notas, textos e imagens soltos ficam onde estão), e `position` pode ser omitido.

Parâmetros

NomeTipoObrigatórioDescrição
processpathintegerSim—

Corpo da requisição

CampoTipoObrigatórioDescrição
layoutstring | nullNão`auto`: o servidor organiza as peças pelas conexões e a posição de cada uma fica opcional. Valores: auto, .
nodesarray<object>Sim—
edgesarray<object>Sim—

Exemplo de requisição

cURL
curl -X PUT "$MICORE_BASE_URL/processes/{process}/flow" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"layout":"auto","nodes":[{"id":"string","type":"node_step","position":{"x":1,"y":1},"width":1,"height":1,"zIndex":1,"data":[]}],"edges":[{"id":null,"source":"string","sourceHandle":null,"target":"string","targetHandle":null}]}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "status": "Rascunho",
        "current_version": 1,
        "board_id": 1,
        "sector_id": 1,
        "responsible_user_id": 1,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00",
        "flow": {
            "layout": "auto",
            "nodes": [
                {
                    "id": "string",
                    "type": "node_step",
                    "position": {
                        "x": 1,
                        "y": 1
                    },
                    "width": 1,
                    "height": 1,
                    "zIndex": 1,
                    "data": []
                }
            ],
            "edges": [
                {
                    "id": null,
                    "source": "string",
                    "sourceHandle": null,
                    "target": "string",
                    "targetHandle": null
                }
            ]
        }
    }
}

Respostas possíveis

200 Desenho salvo401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/processes/{process}/flow/arrange

Organiza o desenho atual

Exige `processes:write` e editar em Gestão de Processos. Reposiciona as peças do desenho atual pelas conexões (como `layout: "auto"`) numa versão nova; peças, conexões e parâmetros não mudam. Sem corpo.

Parâmetros

NomeTipoObrigatórioDescrição
processpathintegerSim—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/processes/{process}/flow/arrange" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "status": "Rascunho",
        "current_version": 1,
        "board_id": 1,
        "sector_id": 1,
        "responsible_user_id": 1,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00",
        "flow": {
            "layout": "auto",
            "nodes": [
                {
                    "id": "string",
                    "type": "node_step",
                    "position": {
                        "x": 1,
                        "y": 1
                    },
                    "width": 1,
                    "height": 1,
                    "zIndex": 1,
                    "data": []
                }
            ],
            "edges": [
                {
                    "id": null,
                    "source": "string",
                    "sourceHandle": null,
                    "target": "string",
                    "targetHandle": null
                }
            ]
        }
    }
}

Respostas possíveis

200 Desenho organizado401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
PATCH /api/v1/processes/{process}/flow/nodes/{node}

Muda uma peça do desenho

Exige `processes:write` e editar em Gestão de Processos. Muda só a peça informada (pelo `id` dela no desenho) numa versão nova; o resto do desenho fica igual. `data` se junta aos dados atuais da peça; chave enviada como `null` sai. Peça que não existe responde 404.

Parâmetros

NomeTipoObrigatórioDescrição
processpathintegerSim—
nodepathstringSim`id` da peça no desenho (ex.: `aprovacao`).

Corpo da requisição

CampoTipoObrigatórioDescrição
positionobjectNão—
widthnumber | nullNão—
heightnumber | nullNão—
zIndexinteger | nullNão—
dataobjectNão—

Exemplo de requisição

cURL
curl -X PATCH "$MICORE_BASE_URL/processes/{process}/flow/nodes/{node}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"position":{"x":760,"y":0},"data":{"dueDays":3,"instruction":null}}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "status": "Rascunho",
        "current_version": 1,
        "board_id": 1,
        "sector_id": 1,
        "responsible_user_id": 1,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00",
        "flow": {
            "layout": "auto",
            "nodes": [
                {
                    "id": "string",
                    "type": "node_step",
                    "position": {
                        "x": 1,
                        "y": 1
                    },
                    "width": 1,
                    "height": 1,
                    "zIndex": 1,
                    "data": []
                }
            ],
            "edges": [
                {
                    "id": null,
                    "source": "string",
                    "sourceHandle": null,
                    "target": "string",
                    "targetHandle": null
                }
            ]
        }
    }
}

Respostas possíveis

200 Peça atualizada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/processes/{process}/versions

Lista as versões do processo

Exige `processes:read`. Da mais nova para a mais antiga.

Parâmetros

NomeTipoObrigatórioDescrição
processpathintegerSim—

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/processes/{process}/versions" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "version": 1,
            "name": "string",
            "status": "Rascunho",
            "created_by": 1,
            "created_at": "2026-10-20T10:00:00-03:00"
        }
    ]
}

Respostas possíveis

200 Versões401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/processes/{process}/versions/{version}/restore

Restaura uma versão antiga

Exige `processes:write` e editar em Gestão de Processos. Copia os dados e o desenho da versão escolhida para uma versão nova; nada do histórico é apagado.

Parâmetros

NomeTipoObrigatórioDescrição
processpathintegerSim—
versionpathintegerSim—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/processes/{process}/versions/{version}/restore" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "status": "Rascunho",
        "current_version": 1,
        "board_id": 1,
        "sector_id": 1,
        "responsible_user_id": 1,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00",
        "flow": {
            "layout": "auto",
            "nodes": [
                {
                    "id": "string",
                    "type": "node_step",
                    "position": {
                        "x": 1,
                        "y": 1
                    },
                    "width": 1,
                    "height": 1,
                    "zIndex": 1,
                    "data": []
                }
            ],
            "edges": [
                {
                    "id": null,
                    "source": "string",
                    "sourceHandle": null,
                    "target": "string",
                    "targetHandle": null
                }
            ]
        }
    }
}

Respostas possíveis

200 Versão restaurada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/processes/{process}/validation

Confere se o processo pode executar

Exige `processes:read`. Mesma conferência da janela Iniciar processo do painel: devolve as etapas do modo Automação (com papel, prazo, quadro, coluna, modelo e saídas) e os papéis a preencher ao iniciar, ou `valid: false` com o motivo (por exemplo, sem Tarefa no modo Automação, Tarefa sem responsável, modelo desativado ou laço sem saída).

Parâmetros

NomeTipoObrigatórioDescrição
processpathintegerSim—

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/processes/{process}/validation" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "valid": true,
        "message": null,
        "roles": [
            "Criador de conteúdo",
            "Aprovador"
        ],
        "steps": [
            {
                "node_id": "roteiro",
                "type": "task",
                "name": "Roteiro",
                "role_name": "Criador de conteúdo",
                "responsible_name": "Criador de conteúdo",
                "due_days": 2,
                "board_id": null,
                "stage_name": null,
                "task_template_id": 2,
                "target_process_id": null,
                "activation_rule": "all",
                "outcomes": []
            }
        ]
    }
}

Respostas possíveis

200 Resultado da conferência401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/processes/{process}/activate

Ativa o processo

Exige `processes:write` e desabilitar em Gestão de Processos. Como no painel, não exige que o processo seja executável; confira antes com `validation`.

Parâmetros

NomeTipoObrigatórioDescrição
processpathintegerSim—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/processes/{process}/activate" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "status": "Rascunho",
        "current_version": 1,
        "board_id": 1,
        "sector_id": 1,
        "responsible_user_id": 1,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00",
        "flow": {
            "layout": "auto",
            "nodes": [
                {
                    "id": "string",
                    "type": "node_step",
                    "position": {
                        "x": 1,
                        "y": 1
                    },
                    "width": 1,
                    "height": 1,
                    "zIndex": 1,
                    "data": []
                }
            ],
            "edges": [
                {
                    "id": null,
                    "source": "string",
                    "sourceHandle": null,
                    "target": "string",
                    "targetHandle": null
                }
            ]
        }
    }
}

Respostas possíveis

200 Processo ativo401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/processes/{process}/deactivate

Desativa o processo

Exige `processes:write` e desabilitar em Gestão de Processos. Execuções em andamento continuam.

Parâmetros

NomeTipoObrigatórioDescrição
processpathintegerSim—

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/processes/{process}/deactivate" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 1,
        "name": "string",
        "description": null,
        "status": "Rascunho",
        "current_version": 1,
        "board_id": 1,
        "sector_id": 1,
        "responsible_user_id": 1,
        "created_at": "2026-10-20T10:00:00-03:00",
        "updated_at": "2026-10-20T10:00:00-03:00",
        "flow": {
            "layout": "auto",
            "nodes": [
                {
                    "id": "string",
                    "type": "node_step",
                    "position": {
                        "x": 1,
                        "y": 1
                    },
                    "width": 1,
                    "height": 1,
                    "zIndex": 1,
                    "data": []
                }
            ],
            "edges": [
                {
                    "id": null,
                    "source": "string",
                    "sourceHandle": null,
                    "target": "string",
                    "targetHandle": null
                }
            ]
        }
    }
}

Respostas possíveis

200 Processo inativo401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/process-executions

Lista as execuções de processo

Exige `processes:read` e ver Gestão de Processos. Só execuções dos quadros que o usuário da credencial administra ou de que participa (quem administra quadros vê todos), como na Gestão do Trabalho. Da mais nova para a mais antiga; as etapas vêm só no detalhe.

Parâmetros

NomeTipoObrigatórioDescrição
statusquerystringNão—
process_idqueryintegerNão—
board_idqueryintegerNão—
searchquerystringNãoParte do nome da execução.
per_pagequeryintegerNão—

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/process-executions" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": [
        {
            "id": 31,
            "name": "Reels de novembro",
            "status": "running",
            "situation": {
                "key": "on_time",
                "label": "No prazo"
            },
            "process": {
                "id": 12,
                "name": "Produção de Reels"
            },
            "process_version": 3,
            "board": {
                "id": 4,
                "name": "Conteúdo"
            },
            "stage_id": null,
            "source_task_id": null,
            "parent": null,
            "roles": {
                "Criador": 7,
                "Aprovador": 3
            },
            "steps_total": 3,
            "open_task_ids": [
                902
            ],
            "created_by": 3,
            "created_at": "2026-11-09T10:00:00-03:00",
            "completed_at": null,
            "canceled_at": null,
            "steps": [
                {
                    "id": 81,
                    "node_id": "roteiro",
                    "order": 1,
                    "type": "task",
                    "name": "Roteiro",
                    "status": "completed",
                    "role_name": "Criador de conteúdo",
                    "responsible_user_id": 7,
                    "responsible_name": "Ana",
                    "task_id": 901,
                    "due_date": "2026-11-11",
                    "outcomes": [],
                    "outcome": null,
                    "child_execution_id": null,
                    "activated_at": "2026-11-09T10:00:00-03:00",
                    "completed_at": "2026-11-10T15:20:00-03:00"
                },
                {
                    "id": 82,
                    "node_id": "aprovacao",
                    "order": 2,
                    "type": "task",
                    "name": "Aprovação",
                    "status": "active",
                    "role_name": "Aprovador",
                    "responsible_user_id": 3,
                    "responsible_name": "Bruno",
                    "task_id": 902,
                    "due_date": "2026-11-11",
                    "outcomes": [
                        {
                            "id": "aprovado",
                            "label": "Aprovado"
                        },
                        {
                            "id": "ajustar",
                            "label": "Ajustar"
                        }
                    ],
                    "outcome": null,
                    "child_execution_id": null,
                    "activated_at": "2026-11-10T15:20:00-03:00",
                    "completed_at": null
                },
                {
                    "id": 83,
                    "node_id": "publicar",
                    "order": 3,
                    "type": "task",
                    "name": "Publicar",
                    "status": "pending",
                    "role_name": "Criador de conteúdo",
                    "responsible_user_id": 7,
                    "responsible_name": "Ana",
                    "task_id": null,
                    "due_date": null,
                    "outcomes": [],
                    "outcome": null,
                    "child_execution_id": null,
                    "activated_at": null,
                    "completed_at": null
                }
            ]
        }
    ],
    "links": [],
    "meta": []
}

Respostas possíveis

200 Página de execuções401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/process-executions

Inicia um processo num quadro

Exige `processes:execute` e a permissão Importar processos em Gestão de Espaço, e que o usuário administre ou participe do quadro (403 `permission_denied`). Mesma regra da janela Iniciar processo: cada papel do processo (veja `GET /processes/{process}/validation`) precisa de uma pessoa em `roles`; `stage_id` é a coluna das Tarefas sem coluna própria; `source_task_id` é a tarefa que vira a execução (ativa, principal, do mesmo quadro e fora de outro processo) e é arquivada. Cria a tarefa de cada etapa inicial. Como no painel, não exige que o processo esteja `Ativo`. Desenho inválido ou papel sem pessoa responde 422 com o motivo.

Parâmetros

NomeTipoObrigatórioDescrição
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
process_idintegerSim—
board_idintegerSimQuadro onde a execução roda; as Tarefas sem quadro próprio são criadas nele.
namestringSimDiferencia uma execução da outra do mesmo processo. Até 255 caracteres.
rolesobject | nullNãoPessoa (id do usuário) de cada papel, pelo nome do papel.
stage_idinteger | nullNãoColuna ativa do quadro para as Tarefas sem coluna própria.
source_task_idinteger | nullNãoTarefa que pediu a execução (ex.: a pauta); é arquivada.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/process-executions" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"process_id":12,"board_id":4,"name":"Reels de novembro","roles":{"Criador":7,"Aprovador":3}}'

Exemplo de resposta JSON

Resposta · 201
{
    "data": {
        "id": 31,
        "name": "Reels de novembro",
        "status": "running",
        "situation": {
            "key": "on_time",
            "label": "No prazo"
        },
        "process": {
            "id": 12,
            "name": "Produção de Reels"
        },
        "process_version": 3,
        "board": {
            "id": 4,
            "name": "Conteúdo"
        },
        "stage_id": null,
        "source_task_id": null,
        "parent": null,
        "roles": {
            "Criador": 7,
            "Aprovador": 3
        },
        "steps_total": 3,
        "open_task_ids": [
            902
        ],
        "created_by": 3,
        "created_at": "2026-11-09T10:00:00-03:00",
        "completed_at": null,
        "canceled_at": null,
        "steps": [
            {
                "id": 81,
                "node_id": "roteiro",
                "order": 1,
                "type": "task",
                "name": "Roteiro",
                "status": "completed",
                "role_name": "Criador de conteúdo",
                "responsible_user_id": 7,
                "responsible_name": "Ana",
                "task_id": 901,
                "due_date": "2026-11-11",
                "outcomes": [],
                "outcome": null,
                "child_execution_id": null,
                "activated_at": "2026-11-09T10:00:00-03:00",
                "completed_at": "2026-11-10T15:20:00-03:00"
            },
            {
                "id": 82,
                "node_id": "aprovacao",
                "order": 2,
                "type": "task",
                "name": "Aprovação",
                "status": "active",
                "role_name": "Aprovador",
                "responsible_user_id": 3,
                "responsible_name": "Bruno",
                "task_id": 902,
                "due_date": "2026-11-11",
                "outcomes": [
                    {
                        "id": "aprovado",
                        "label": "Aprovado"
                    },
                    {
                        "id": "ajustar",
                        "label": "Ajustar"
                    }
                ],
                "outcome": null,
                "child_execution_id": null,
                "activated_at": "2026-11-10T15:20:00-03:00",
                "completed_at": null
            },
            {
                "id": 83,
                "node_id": "publicar",
                "order": 3,
                "type": "task",
                "name": "Publicar",
                "status": "pending",
                "role_name": "Criador de conteúdo",
                "responsible_user_id": 7,
                "responsible_name": "Ana",
                "task_id": null,
                "due_date": null,
                "outcomes": [],
                "outcome": null,
                "child_execution_id": null,
                "activated_at": null,
                "completed_at": null
            }
        ]
    }
}

Respostas possíveis

201 Execução iniciada (ou reapresentada pela mesma chave idempotente)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
GET /api/v1/process-executions/{execution}

Exibe uma execução com as etapas

Exige `processes:read`. Traz cada etapa com a situação, o responsável, a tarefa, o prazo, as saídas desenhadas e a saída escolhida, e a situação da execução (no prazo, atrasada, parada, aguardando saída, concluída ou cancelada). Execução de quadro fora do acesso responde 404.

Parâmetros

NomeTipoObrigatórioDescrição
executionpathintegerSim—

Exemplo de requisição

cURL
curl "$MICORE_BASE_URL/process-executions/{execution}" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json"

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 31,
        "name": "Reels de novembro",
        "status": "running",
        "situation": {
            "key": "on_time",
            "label": "No prazo"
        },
        "process": {
            "id": 12,
            "name": "Produção de Reels"
        },
        "process_version": 3,
        "board": {
            "id": 4,
            "name": "Conteúdo"
        },
        "stage_id": null,
        "source_task_id": null,
        "parent": null,
        "roles": {
            "Criador": 7,
            "Aprovador": 3
        },
        "steps_total": 3,
        "open_task_ids": [
            902
        ],
        "created_by": 3,
        "created_at": "2026-11-09T10:00:00-03:00",
        "completed_at": null,
        "canceled_at": null,
        "steps": [
            {
                "id": 81,
                "node_id": "roteiro",
                "order": 1,
                "type": "task",
                "name": "Roteiro",
                "status": "completed",
                "role_name": "Criador de conteúdo",
                "responsible_user_id": 7,
                "responsible_name": "Ana",
                "task_id": 901,
                "due_date": "2026-11-11",
                "outcomes": [],
                "outcome": null,
                "child_execution_id": null,
                "activated_at": "2026-11-09T10:00:00-03:00",
                "completed_at": "2026-11-10T15:20:00-03:00"
            },
            {
                "id": 82,
                "node_id": "aprovacao",
                "order": 2,
                "type": "task",
                "name": "Aprovação",
                "status": "active",
                "role_name": "Aprovador",
                "responsible_user_id": 3,
                "responsible_name": "Bruno",
                "task_id": 902,
                "due_date": "2026-11-11",
                "outcomes": [
                    {
                        "id": "aprovado",
                        "label": "Aprovado"
                    },
                    {
                        "id": "ajustar",
                        "label": "Ajustar"
                    }
                ],
                "outcome": null,
                "child_execution_id": null,
                "activated_at": "2026-11-10T15:20:00-03:00",
                "completed_at": null
            },
            {
                "id": 83,
                "node_id": "publicar",
                "order": 3,
                "type": "task",
                "name": "Publicar",
                "status": "pending",
                "role_name": "Criador de conteúdo",
                "responsible_user_id": 7,
                "responsible_name": "Ana",
                "task_id": null,
                "due_date": null,
                "outcomes": [],
                "outcome": null,
                "child_execution_id": null,
                "activated_at": null,
                "completed_at": null
            }
        ]
    }
}

Respostas possíveis

200 Execução encontrada401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/process-executions/{execution}/steps/{step}/outcome

Escolhe a saída de uma etapa

Exige `processes:execute` e ver Tarefas. Como no modal da tarefa: só quem está na tarefa da etapa, o gestor do quadro ou o administrador escolhe (403). `outcome` é o `id` de uma das `outcomes` da etapa (422 em `outcome` quando não existe). A tarefa é concluída e a execução segue pelo caminho da saída; uma saída de retorno (ex.: Ajustar) reabre a etapa anterior. Etapa já encerrada ou execução que não está em andamento responde 409 `invalid_transition`.

Parâmetros

NomeTipoObrigatórioDescrição
executionpathintegerSim—
steppathintegerSim`id` da etapa em `steps`.
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
outcomestringSimAté 100 caracteres.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/process-executions/{execution}/steps/{step}/outcome" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"outcome":"aprovado"}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 31,
        "name": "Reels de novembro",
        "status": "running",
        "situation": {
            "key": "on_time",
            "label": "No prazo"
        },
        "process": {
            "id": 12,
            "name": "Produção de Reels"
        },
        "process_version": 3,
        "board": {
            "id": 4,
            "name": "Conteúdo"
        },
        "stage_id": null,
        "source_task_id": null,
        "parent": null,
        "roles": {
            "Criador": 7,
            "Aprovador": 3
        },
        "steps_total": 3,
        "open_task_ids": [
            902
        ],
        "created_by": 3,
        "created_at": "2026-11-09T10:00:00-03:00",
        "completed_at": null,
        "canceled_at": null,
        "steps": [
            {
                "id": 81,
                "node_id": "roteiro",
                "order": 1,
                "type": "task",
                "name": "Roteiro",
                "status": "completed",
                "role_name": "Criador de conteúdo",
                "responsible_user_id": 7,
                "responsible_name": "Ana",
                "task_id": 901,
                "due_date": "2026-11-11",
                "outcomes": [],
                "outcome": null,
                "child_execution_id": null,
                "activated_at": "2026-11-09T10:00:00-03:00",
                "completed_at": "2026-11-10T15:20:00-03:00"
            },
            {
                "id": 82,
                "node_id": "aprovacao",
                "order": 2,
                "type": "task",
                "name": "Aprovação",
                "status": "active",
                "role_name": "Aprovador",
                "responsible_user_id": 3,
                "responsible_name": "Bruno",
                "task_id": 902,
                "due_date": "2026-11-11",
                "outcomes": [
                    {
                        "id": "aprovado",
                        "label": "Aprovado"
                    },
                    {
                        "id": "ajustar",
                        "label": "Ajustar"
                    }
                ],
                "outcome": null,
                "child_execution_id": null,
                "activated_at": "2026-11-10T15:20:00-03:00",
                "completed_at": null
            },
            {
                "id": 83,
                "node_id": "publicar",
                "order": 3,
                "type": "task",
                "name": "Publicar",
                "status": "pending",
                "role_name": "Criador de conteúdo",
                "responsible_user_id": 7,
                "responsible_name": "Ana",
                "task_id": null,
                "due_date": null,
                "outcomes": [],
                "outcome": null,
                "child_execution_id": null,
                "activated_at": null,
                "completed_at": null
            }
        ]
    }
}

Respostas possíveis

200 Saída gravada (ou reapresentada pela mesma chave idempotente)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant
POST /api/v1/process-executions/{execution}/cancel

Cancela uma execução

Exige `processes:execute` e a permissão Cancelar processo em Gestão de Espaço. Cancela também os subprocessos em andamento, arquiva as tarefas abertas e deixa o motivo como comentário nelas; etapas concluídas ficam no histórico. Execução que não está em andamento responde 409 `invalid_transition`.

Parâmetros

NomeTipoObrigatórioDescrição
executionpathintegerSim—
Idempotency-KeyheaderstringSimIdentificador único da mutação, com 8 a 100 caracteres. O resultado fica reutilizável por 24 horas e a chave não pode ser reutilizada depois de expirar.

Corpo da requisição

CampoTipoObrigatórioDescrição
reasonstring | nullNãoAté 1000 caracteres.

Exemplo de requisição

cURL
curl -X POST "$MICORE_BASE_URL/process-executions/{execution}/cancel" \
  -H "Authorization: Bearer $MICORE_TOKEN" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: board-request-0001" \
  -H "Content-Type: application/json" \
  -d '{"reason":"Pauta cancelada pelo cliente."}'

Exemplo de resposta JSON

Resposta · 200
{
    "data": {
        "id": 31,
        "name": "Reels de novembro",
        "status": "running",
        "situation": {
            "key": "on_time",
            "label": "No prazo"
        },
        "process": {
            "id": 12,
            "name": "Produção de Reels"
        },
        "process_version": 3,
        "board": {
            "id": 4,
            "name": "Conteúdo"
        },
        "stage_id": null,
        "source_task_id": null,
        "parent": null,
        "roles": {
            "Criador": 7,
            "Aprovador": 3
        },
        "steps_total": 3,
        "open_task_ids": [
            902
        ],
        "created_by": 3,
        "created_at": "2026-11-09T10:00:00-03:00",
        "completed_at": null,
        "canceled_at": null,
        "steps": [
            {
                "id": 81,
                "node_id": "roteiro",
                "order": 1,
                "type": "task",
                "name": "Roteiro",
                "status": "completed",
                "role_name": "Criador de conteúdo",
                "responsible_user_id": 7,
                "responsible_name": "Ana",
                "task_id": 901,
                "due_date": "2026-11-11",
                "outcomes": [],
                "outcome": null,
                "child_execution_id": null,
                "activated_at": "2026-11-09T10:00:00-03:00",
                "completed_at": "2026-11-10T15:20:00-03:00"
            },
            {
                "id": 82,
                "node_id": "aprovacao",
                "order": 2,
                "type": "task",
                "name": "Aprovação",
                "status": "active",
                "role_name": "Aprovador",
                "responsible_user_id": 3,
                "responsible_name": "Bruno",
                "task_id": 902,
                "due_date": "2026-11-11",
                "outcomes": [
                    {
                        "id": "aprovado",
                        "label": "Aprovado"
                    },
                    {
                        "id": "ajustar",
                        "label": "Ajustar"
                    }
                ],
                "outcome": null,
                "child_execution_id": null,
                "activated_at": "2026-11-10T15:20:00-03:00",
                "completed_at": null
            },
            {
                "id": 83,
                "node_id": "publicar",
                "order": 3,
                "type": "task",
                "name": "Publicar",
                "status": "pending",
                "role_name": "Criador de conteúdo",
                "responsible_user_id": 7,
                "responsible_name": "Ana",
                "task_id": null,
                "due_date": null,
                "outcomes": [],
                "outcome": null,
                "child_execution_id": null,
                "activated_at": null,
                "completed_at": null
            }
        ]
    }
}

Respostas possíveis

200 Execução cancelada (ou reapresentada pela mesma chave idempotente)401 Token ausente, inválido, expirado ou revogado403 Escopo, assinatura, módulo ou permissão insuficiente404 Recurso não encontrado409 Chave em processamento ou reutilizada com outro conteúdo, ou ação não permitida no estado atual do recurso (`invalid_transition`)422 Dados inválidos429 Cota por minuto da credencial excedida503 O domínio não pôde ser associado com segurança a um tenant