Workflows Overview

awork workflow status mapping from existing project statuses to a shared workflow

Workflows are reusable process definitions that let you share project statuses and task statuses across multiple projects. Instead of maintaining statuses per project, you can manage them once in a workflow and keep linked projects aligned.

How to work with workflows

Create a workflow

Create a reusable workflow in your workspace.

curl -X POST https://api.awork.com/api/v1/workflows \
-H "Authorization: Bearer {token}" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Client Delivery Workflow",
    "icon": "workflow"
  }'

Linking applies workflow-controlled statuses to the project. If the project already has statuses, provide mappings to migrate safely.

curl -X POST https://api.awork.com/api/v1/projects/123e4567-e89b-12d3-a456-426614174000/linkworkflow \
-H "Authorization: Bearer {token}" \
  -H 'Content-Type: application/json' \
  -d '{
    "workflowId": "223e4567-e89b-12d3-a456-426614174000",
    "projectStatusMapping": [
      {
        "oldProjectStatusId": "323e4567-e89b-12d3-a456-426614174000",
        "newProjectStatusId": "423e4567-e89b-12d3-a456-426614174000"
      }
    ],
    "taskStatusMapping": [
      {
        "oldTaskStatusId": "523e4567-e89b-12d3-a456-426614174000",
        "newTaskStatusId": "623e4567-e89b-12d3-a456-426614174000"
      }
    ],
    "keepCustomFields": true,
    "keepCustomAutomations": true
  }'

Create a workflow from an existing project

Use an existing project as a blueprint and optionally link that project to the newly created workflow.

curl -X POST https://api.awork.com/api/v1/workflows/fromproject/123e4567-e89b-12d3-a456-426614174000 \
-H "Authorization: Bearer {token}" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Workflow from Consulting Template",
    "copyProjectStatuses": true,
    "copyTaskStatuses": true,
    "copyCustomFields": true,
    "copyAutomations": true,
    "linkProjectToWorkflow": true
  }'

Manage shared statuses in a workflow

You can manage workflow-level statuses, which are then shared across linked projects.

curl -X POST https://api.awork.com/api/v1/workflows/223e4567-e89b-12d3-a456-426614174000/taskstatuses \
-H "Authorization: Bearer {token}" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Client Feedback",
    "type": "review",
    "order": 3,
    "icon": "comment"
  }'
curl -X POST https://api.awork.com/api/v1/workflows/223e4567-e89b-12d3-a456-426614174000/projectstatuses \
-H "Authorization: Bearer {token}" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Blocked by Client",
    "type": "stuck"
  }'

Unlinking decouples the project from workflow sync and clones workflow statuses into editable project-specific statuses.

curl -X POST https://api.awork.com/api/v1/projects/123e4567-e89b-12d3-a456-426614174000/unlinkworkflow \
-H "Authorization: Bearer {token}" \
  -H 'Content-Type: application/json'
Search documentation