---
title: "Create a new task config"
method: POST
path: "/v1/org/{orgId}/task-config"
tags: ["task-config"]
---

# Create a new task config

`POST /v1/org/{orgId}/task-config`

## Path parameters

- `orgId` string, required

## Request body

- CreateTaskConfig
  - `assessmentId` string — parent assessment id that this task config belongs to
  - `parentEntityId` string — parent entity id that this task config belongs to, should be used with entityId
  - `entityId` string, required — the primary entity being referenced by the task config
  - `type` 'FORM_SUBMIT' | 'FORM_RESPONSE_APPROVE' | 'FORM_RESPONSE_RESUBMIT' | 'CHANGE_APPROVE' | 'TIMEOFF_APPROVE' | 'SCENARIO_CHANGES_APPROVE' | 'SCENARIO_CHANGES_CREATE' | 'ORG_IMPORT' | 'COMP_REVIEW_APPROVAL_SUBMIT' | 'SCENARIO_APPROVAL_SUBMIT' | 'APPROVAL_CHAIN_UPDATE_FALLBACK_APPROVER' | 'ACTION' | 'SIGNATURE' | 'GOAL_PROGRESS' | 'TODO', required — type of task generated by the task config
  - `dueDate` DueDate
    - `type` 'EXACT' | 'RELATIVE', required
    - `dueDay` string, required — due day, in either relative (-7d) or exact (YYYY-MM-DD) format
    - `dueTime` string, required — due time, which is a LocalTime
  - `pastDueAction` 'NONE' | 'SET_EXPIRED', required — sets pastDueAction on the task when it's generated
  - `isSkippable` boolean — sets isSkippable on the task
  - `label` string — human-readable label that should be used for all tasks associated with the config as the task name
  - `description` string — description for all tasks associated with the config that should be used in notifications
  - `deleteId` string — deleted by user id
  - `deleteAt` string — deleted timestamp

## Response `201`

task config created

- TaskConfig
  - `id` string, required — unique id of task config
  - `orgId` string, required — parent organization id
  - `assessmentId` string — parent assessment id that this task config belongs to
  - `parentEntityId` string — parent entity id that this task config belongs to, should be used with entityId
  - `entityId` string, required — the primary entity being referenced by the task config
  - `slug` string, required — System generated identifying name so that actions can be triggered as a result of task completion
  - `type` 'FORM_SUBMIT' | 'FORM_RESPONSE_APPROVE' | 'FORM_RESPONSE_RESUBMIT' | 'CHANGE_APPROVE' | 'TIMEOFF_APPROVE' | 'SCENARIO_CHANGES_APPROVE' | 'SCENARIO_CHANGES_CREATE' | 'ORG_IMPORT' | 'COMP_REVIEW_APPROVAL_SUBMIT' | 'SCENARIO_APPROVAL_SUBMIT' | 'APPROVAL_CHAIN_UPDATE_FALLBACK_APPROVER' | 'ACTION' | 'SIGNATURE' | 'GOAL_PROGRESS' | 'TODO', required — type of task generated by the task config
  - `dueDate` DueDate
    - `type` 'EXACT' | 'RELATIVE', required
    - `dueDay` string, required — due day, in either relative (-7d) or exact (YYYY-MM-DD) format
    - `dueTime` string, required — due time, which is a LocalTime
  - `pastDueAction` 'NONE' | 'SET_EXPIRED', required — sets pastDueAction on the task when it's generated
  - `isSkippable` boolean — sets isSkippable on the task
  - `label` string — human-readable label that should be used for all tasks associated with the config as the task name
  - `description` string — description for all tasks associated with the config that should be used in notifications
  - `createId` string — created by user id
  - `createBehalfId` string — created on behalf of user id
  - `createAttribution` Attribution
    - `principalUserId` string
    - `agentUserIds` string[]
    - `eventId` string
    - `aiChatId` string
    - `aiToolUseId` string
    - `channel` 'WEB' | 'MOBILE' | 'SLACK' | 'TEAMS' | 'MCP'
  - `createAt` string — created timestamp
  - `updateId` string — last updated by user id
  - `updateBehalfId` string — last updated on behalf of user id
  - `updateAttribution` Attribution
    - `principalUserId` string
    - `agentUserIds` string[]
    - `eventId` string
    - `aiChatId` string
    - `aiToolUseId` string
    - `channel` 'WEB' | 'MOBILE' | 'SLACK' | 'TEAMS' | 'MCP'
  - `updateAt` string — last updated timestamp
  - `deleteId` string — deleted by user id
  - `deleteBehalfId` string — deleted on behalf of user id
  - `deleteAttribution` Attribution
    - `principalUserId` string
    - `agentUserIds` string[]
    - `eventId` string
    - `aiChatId` string
    - `aiToolUseId` string
    - `channel` 'WEB' | 'MOBILE' | 'SLACK' | 'TEAMS' | 'MCP'
  - `deleteAt` string — deleted timestamp

## Other responses

- `400` — bad request
- `401` — not authorized
- `404` — not found

---

[API](https://skmtc.net/charthop/apis/charthop-api.md) · [All operations](https://skmtc.net/charthop/apis/charthop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/charthop/charthop-api/versions/50a1edd6b27e/schema)
