---
title: "create one or multiple taskFlows"
method: POST
path: "/api/servicetodo/taskFlows"
tags: ["taskFlows"]
---

# create one or multiple taskFlows

`POST /api/servicetodo/taskFlows`

Create one or multiple taskFlows

## Request body

- union
  - TaskFlow
    - `uuid` string, uuid
    - `createdAt` string, date-time
    - `createdBy` string, uuid
    - `lastUpdatedAt` string, date-time
    - `lastUpdatedBy` string, uuid
    - `lastUpdatedByAudience` string
    - `lastUpdatedByAudienceUuid` string, uuid
    - `lastUpdatedByImpersonatedBy` string, uuid
    - `lastUpdatedByCompanyUuid` string, uuid
    - `lastUpdatedByEnterpriseUuid` string, uuid
    - `companyUuid` string, uuid, required
    - `status` 'draft' | 'published' | 'archived', required
    - `title` string, required
    - `internalName` string
    - `description` string
    - `taskUuids` string[]
    - `isTaskFlowSequential` boolean
    - `virtualTasks` object[]
      - `uuid` string, uuid
      - `createdAt` string, date-time
      - `createdBy` string, uuid
      - `lastUpdatedAt` string, date-time
      - `lastUpdatedBy` string, uuid
      - `lastUpdatedByAudience` string
      - `lastUpdatedByAudienceUuid` string, uuid
      - `lastUpdatedByImpersonatedBy` string, uuid
      - `lastUpdatedByCompanyUuid` string, uuid
      - `lastUpdatedByEnterpriseUuid` string, uuid
      - `companyUuid` string, uuid, required
      - `title` string, required
      - `description` string
      - `taskType` 'dataCollection' | 'informationSharing' | 'training' | 'backgroundCheck' | 'tinCheck' | 'i9' | 'w4' | 'documentSigning' | 'universal' | 'partnerTask' | 'video' | 'internalDataReview' | 'internalExternalAction' | 'compliance', required
      - `subType` 'default' | 'iframe' | 'webhook' | 'workato' | 'youtube'
      - `estimatedCompletionMinutes` number
      - `content` object
        - `buttonLabel` string
        - `text` string
        - `attachments` object[] — Optional list of file attachments associated with an information-sharing task. Files are stored in service-media under the ATTACHMENTS storage folder and referenced here by UUID.
          - `storedFileUuid` string, uuid, required
          - `filename` string, required
          - `mimeType` string, required
        - `uuid` string
        - `title` string
        - `subtitle` string
        - `description` string
        - `inputs` object[]
          - `uuid` string
          - `title` string
          - `subtitle` string
          - `description` string
          - `inputType` 'string' | 'select' | 'media' | 'date' | 'number' | 'address' | 'bankAcctNumber' | 'bankRoutingNumber' | 'phone' | 'email'
          - `required` boolean
          - `items` object[]
            - `label` string
            - `value` string
          - `style` 'select' | 'multiSelect' | 'checkbox' | 'radio' | 'default' | 'textarea'
          - `config` object
            - `minSelect` number
            - `maxSelect` number
            - `minValue` number
            - `maxValue` number
            - `hasMaxLength` boolean
            - `minLength` number
            - `maxLength` number
            - `placeholder` string
            - `datePast` boolean
            - `dateFuture` boolean
          - `customAttribute` object
            - `label` string
            - `uuid` string, required
            - `key` string
        - `options` object
        - `signDoc` object, nullable
          - `uuid` string, uuid
          - `createdAt` string, date-time
          - `createdBy` string, uuid
          - `lastUpdatedAt` string, date-time
          - `lastUpdatedBy` string, uuid
          - `lastUpdatedByAudience` string
          - `lastUpdatedByAudienceUuid` string, uuid
          - `lastUpdatedByImpersonatedBy` string, uuid
          - `lastUpdatedByCompanyUuid` string, uuid
          - `lastUpdatedByEnterpriseUuid` string, uuid
          - `name` string, required
          - `technicalName` string
          - `fileUrls` string[]
          - `mergeKeys` string[]
          - `templateId` string
          - `editEmbedUrl` string
          - `companyUuid` string, uuid
          - `technical` boolean
          - `counterSignEnabled` boolean
          - `coSignerRequired` boolean
          - `coSignerEmailCustomAttributeKey` string
          - `editUrl` string — Edit URL for embedded templates created via templateCreateEmbeddedDraft
          - `editUrlExpiresAt` number — Expiration timestamp (milliseconds) for the editUrl. Used to determine if editUrl is still valid.
        - `signDocUuid` string
        - `section2CompletionMethods` object[]
          - `methodName` 'authorizedRepresentative' | 'adminValidation' | 'onSiteVerification' | 'liveVideoVerification', required
          - `requiredDuration` number
          - `calendarGroupUuid` string
          - `eventDescription` string
          - `recommended` boolean
          - `reminder` number
          - `customConferencingEnabled` boolean
          - `customConferencing` object
            - `providerDescription` string
            - `joinUrl` string, url
        - `url` string
        - `bgcProvider` string
        - `bgcPackage` string
        - `tinProvider` string
        - `endEvent` string
        - `hideCompletedButton` boolean
        - `appendWxQueryParams` boolean
        - `sensitiveData` boolean
        - `useI9C2PayloadFormat` boolean
        - `triggerableType` 'flow' | 'task'
        - `triggerableTaskUuid` string
        - `companyAttributeSetUuid` string
        - `companyAttributeSet` object, nullable
          - `uuid` string, uuid
          - `createdAt` string, date-time
          - `createdBy` string, uuid
          - `lastUpdatedAt` string, date-time
          - `lastUpdatedBy` string, uuid
          - `lastUpdatedByAudience` string
          - `lastUpdatedByAudienceUuid` string, uuid
          - `lastUpdatedByImpersonatedBy` string, uuid
          - `lastUpdatedByCompanyUuid` string, uuid
          - `lastUpdatedByEnterpriseUuid` string, uuid
          - `companyUuid` string, required
          - `label` string, required
          - `description` string
          - `companyAttributes` object[]
            - `companyAttributeUuid` string
            - `value` union
              - …
            - `companyAttribute` object
              - …
          - `attachedTo` object
            - `model` 'location' | 'locationGroup' | 'job' | 'opening'
            - `uuid` string
        - `customAttribute` object
          - `label` string
          - `uuid` string, required
          - `key` string
        - `instructionNotes` string
        - `attributesToReview` string[]
        - `requirementUuid` string, uuid — UUID of the compliance requirement from service-compliancev2
      - `requireReview` boolean
      - `reuseInRehire` boolean — When true (default), the task completion is carried over to the rehire profile. When false, the task starts incomplete in the rehire profile. Ignored for I-9, W-4, Background Check, and TIN Check tasks (always start incomplete).
      - `isInternal` boolean
      - `internalTaskData` object
        - `employerUuids` string[]
        - `trigger` object
          - `type` string
          - `taskUuid` string
    - `segmentUuids` string[]
    - `virtualSegments` object[]
      - `uuid` string, uuid
      - `createdAt` string, date-time
      - `createdBy` string, uuid
      - `lastUpdatedAt` string, date-time
      - `lastUpdatedBy` string, uuid
      - `lastUpdatedByAudience` string
      - `lastUpdatedByAudienceUuid` string, uuid
      - `lastUpdatedByImpersonatedBy` string, uuid
      - `lastUpdatedByCompanyUuid` string, uuid
      - `lastUpdatedByEnterpriseUuid` string, uuid
      - `name` string, required
      - `description` string
      - `filters` string
      - `filterValues` string
      - `pipeline` string
      - `reference` object — For automatic segments, set a reference to make it easier to retrieve/update/delete when that reference changes
      - `companyUuid` string, uuid
      - `subscriptions` object[]
        - `service` 'activity' | 'attendance' | 'authorization' | 'broker' | 'compliance' | 'compliancev2' | 'communicate' | 'employment' | 'integrations' | 'logger' | 'media' | 'messaging' | 'ocr' | 'occupations-mcp' | 'organizations' | 'pool' | 'pulse' | 'referral' | 'scheduler' | 'security' | 'segmentation' | 'staff' | 'support' | 'todo' | 'workforce'
        - `key` string
      - `segmentType` 'unitary' | 'default' | 'automatic' | 'observer' | 'worker_notification' | 'employer_notification'
      - `forceMatch` boolean — if true, will match worker even if they have the property `segmentEnabled` to true
      - `dynamicFilters` object, nullable
        - `event` string, required
        - `eventOffsetDirection` 'before' | 'after' | 'on', required
        - `offsetDays` number
        - `finalOffsetDirection` 'before' | 'after' | 'on'
      - `observerRecurrence` object, nullable
        - `type` 'annual', required
      - `observerTemplate` boolean — when enabled, this is meant to be a template/blueprint for actual observerSegments
      - `baseObserverSegmentUuids` string[]
      - `timezone` string
    - `autoAssignToNewWorkers` boolean
    - `taskFlowType` 'preboarding' | 'onboarding' | 'test'
    - `messages` object
      - `email` object
        - `enabled` boolean, required
        - `subject` string, required
        - `content` string, required
      - `sms` object
        - `enabled` boolean, required
        - `content` string, required
    - `deadline` object
      - `enabled` boolean, required
      - `delayInDays` number
      - `triggerProperty` 'hireDate' | 'startDate' | 'assignmentDate'
      - `reminder` boolean
      - `remindBeforeDays` number
    - `reminder` object
      - `enabled` boolean, required
      - `recurringDays` number
      - `messages` object
        - `email` object
          - `enabled` boolean, required
          - `subject` string, required
          - `content` string, required
        - `sms` object
          - `enabled` boolean, required
          - `content` string, required
    - `redirectUrl` string, uri
    - `workerCounts` object
      - `total` number
      - `notStarted` number
      - `inProgress` number
      - `completed` number
      - `overdue` number
      - `error` number
      - `toReview` number
      - `rejected` number
    - `currentVersionUuid` string, uuid
    - `currentVersionNumber` number
    - `currentVersionCreatedAt` string, date-time
  - TaskFlow[]
    - `uuid` string, uuid
    - `createdAt` string, date-time
    - `createdBy` string, uuid
    - `lastUpdatedAt` string, date-time
    - `lastUpdatedBy` string, uuid
    - `lastUpdatedByAudience` string
    - `lastUpdatedByAudienceUuid` string, uuid
    - `lastUpdatedByImpersonatedBy` string, uuid
    - `lastUpdatedByCompanyUuid` string, uuid
    - `lastUpdatedByEnterpriseUuid` string, uuid
    - `companyUuid` string, uuid, required
    - `status` 'draft' | 'published' | 'archived', required
    - `title` string, required
    - `internalName` string
    - `description` string
    - `taskUuids` string[]
    - `isTaskFlowSequential` boolean
    - `virtualTasks` object[]
      - `uuid` string, uuid
      - `createdAt` string, date-time
      - `createdBy` string, uuid
      - `lastUpdatedAt` string, date-time
      - `lastUpdatedBy` string, uuid
      - `lastUpdatedByAudience` string
      - `lastUpdatedByAudienceUuid` string, uuid
      - `lastUpdatedByImpersonatedBy` string, uuid
      - `lastUpdatedByCompanyUuid` string, uuid
      - `lastUpdatedByEnterpriseUuid` string, uuid
      - `companyUuid` string, uuid, required
      - `title` string, required
      - `description` string
      - `taskType` 'dataCollection' | 'informationSharing' | 'training' | 'backgroundCheck' | 'tinCheck' | 'i9' | 'w4' | 'documentSigning' | 'universal' | 'partnerTask' | 'video' | 'internalDataReview' | 'internalExternalAction' | 'compliance', required
      - `subType` 'default' | 'iframe' | 'webhook' | 'workato' | 'youtube'
      - `estimatedCompletionMinutes` number
      - `content` object
        - `buttonLabel` string
        - `text` string
        - `attachments` object[] — Optional list of file attachments associated with an information-sharing task. Files are stored in service-media under the ATTACHMENTS storage folder and referenced here by UUID.
          - `storedFileUuid` string, uuid, required
          - `filename` string, required
          - `mimeType` string, required
        - `uuid` string
        - `title` string
        - `subtitle` string
        - `description` string
        - `inputs` object[]
          - `uuid` string
          - `title` string
          - `subtitle` string
          - `description` string
          - `inputType` 'string' | 'select' | 'media' | 'date' | 'number' | 'address' | 'bankAcctNumber' | 'bankRoutingNumber' | 'phone' | 'email'
          - `required` boolean
          - `items` object[]
            - `label` string
            - `value` string
          - `style` 'select' | 'multiSelect' | 'checkbox' | 'radio' | 'default' | 'textarea'
          - `config` object
            - `minSelect` number
            - `maxSelect` number
            - `minValue` number
            - `maxValue` number
            - `hasMaxLength` boolean
            - `minLength` number
            - `maxLength` number
            - `placeholder` string
            - `datePast` boolean
            - `dateFuture` boolean
          - `customAttribute` object
            - `label` string
            - `uuid` string, required
            - `key` string
        - `options` object
        - `signDoc` object, nullable
          - `uuid` string, uuid
          - `createdAt` string, date-time
          - `createdBy` string, uuid
          - `lastUpdatedAt` string, date-time
          - `lastUpdatedBy` string, uuid
          - `lastUpdatedByAudience` string
          - `lastUpdatedByAudienceUuid` string, uuid
          - `lastUpdatedByImpersonatedBy` string, uuid
          - `lastUpdatedByCompanyUuid` string, uuid
          - `lastUpdatedByEnterpriseUuid` string, uuid
          - `name` string, required
          - `technicalName` string
          - `fileUrls` string[]
          - `mergeKeys` string[]
          - `templateId` string
          - `editEmbedUrl` string
          - `companyUuid` string, uuid
          - `technical` boolean
          - `counterSignEnabled` boolean
          - `coSignerRequired` boolean
          - `coSignerEmailCustomAttributeKey` string
          - `editUrl` string — Edit URL for embedded templates created via templateCreateEmbeddedDraft
          - `editUrlExpiresAt` number — Expiration timestamp (milliseconds) for the editUrl. Used to determine if editUrl is still valid.
        - `signDocUuid` string
        - `section2CompletionMethods` object[]
          - `methodName` 'authorizedRepresentative' | 'adminValidation' | 'onSiteVerification' | 'liveVideoVerification', required
          - `requiredDuration` number
          - `calendarGroupUuid` string
          - `eventDescription` string
          - `recommended` boolean
          - `reminder` number
          - `customConferencingEnabled` boolean
          - `customConferencing` object
            - `providerDescription` string
            - `joinUrl` string, url
        - `url` string
        - `bgcProvider` string
        - `bgcPackage` string
        - `tinProvider` string
        - `endEvent` string
        - `hideCompletedButton` boolean
        - `appendWxQueryParams` boolean
        - `sensitiveData` boolean
        - `useI9C2PayloadFormat` boolean
        - `triggerableType` 'flow' | 'task'
        - `triggerableTaskUuid` string
        - `companyAttributeSetUuid` string
        - `companyAttributeSet` object, nullable
          - `uuid` string, uuid
          - `createdAt` string, date-time
          - `createdBy` string, uuid
          - `lastUpdatedAt` string, date-time
          - `lastUpdatedBy` string, uuid
          - `lastUpdatedByAudience` string
          - `lastUpdatedByAudienceUuid` string, uuid
          - `lastUpdatedByImpersonatedBy` string, uuid
          - `lastUpdatedByCompanyUuid` string, uuid
          - `lastUpdatedByEnterpriseUuid` string, uuid
          - `companyUuid` string, required
          - `label` string, required
          - `description` string
          - `companyAttributes` object[]
            - `companyAttributeUuid` string
            - `value` union
              - …
            - `companyAttribute` object
              - …
          - `attachedTo` object
            - `model` 'location' | 'locationGroup' | 'job' | 'opening'
            - `uuid` string
        - `customAttribute` object
          - `label` string
          - `uuid` string, required
          - `key` string
        - `instructionNotes` string
        - `attributesToReview` string[]
        - `requirementUuid` string, uuid — UUID of the compliance requirement from service-compliancev2
      - `requireReview` boolean
      - `reuseInRehire` boolean — When true (default), the task completion is carried over to the rehire profile. When false, the task starts incomplete in the rehire profile. Ignored for I-9, W-4, Background Check, and TIN Check tasks (always start incomplete).
      - `isInternal` boolean
      - `internalTaskData` object
        - `employerUuids` string[]
        - `trigger` object
          - `type` string
          - `taskUuid` string
    - `segmentUuids` string[]
    - `virtualSegments` object[]
      - `uuid` string, uuid
      - `createdAt` string, date-time
      - `createdBy` string, uuid
      - `lastUpdatedAt` string, date-time
      - `lastUpdatedBy` string, uuid
      - `lastUpdatedByAudience` string
      - `lastUpdatedByAudienceUuid` string, uuid
      - `lastUpdatedByImpersonatedBy` string, uuid
      - `lastUpdatedByCompanyUuid` string, uuid
      - `lastUpdatedByEnterpriseUuid` string, uuid
      - `name` string, required
      - `description` string
      - `filters` string
      - `filterValues` string
      - `pipeline` string
      - `reference` object — For automatic segments, set a reference to make it easier to retrieve/update/delete when that reference changes
      - `companyUuid` string, uuid
      - `subscriptions` object[]
        - `service` 'activity' | 'attendance' | 'authorization' | 'broker' | 'compliance' | 'compliancev2' | 'communicate' | 'employment' | 'integrations' | 'logger' | 'media' | 'messaging' | 'ocr' | 'occupations-mcp' | 'organizations' | 'pool' | 'pulse' | 'referral' | 'scheduler' | 'security' | 'segmentation' | 'staff' | 'support' | 'todo' | 'workforce'
        - `key` string
      - `segmentType` 'unitary' | 'default' | 'automatic' | 'observer' | 'worker_notification' | 'employer_notification'
      - `forceMatch` boolean — if true, will match worker even if they have the property `segmentEnabled` to true
      - `dynamicFilters` object, nullable
        - `event` string, required
        - `eventOffsetDirection` 'before' | 'after' | 'on', required
        - `offsetDays` number
        - `finalOffsetDirection` 'before' | 'after' | 'on'
      - `observerRecurrence` object, nullable
        - `type` 'annual', required
      - `observerTemplate` boolean — when enabled, this is meant to be a template/blueprint for actual observerSegments
      - `baseObserverSegmentUuids` string[]
      - `timezone` string
    - `autoAssignToNewWorkers` boolean
    - `taskFlowType` 'preboarding' | 'onboarding' | 'test'
    - `messages` object
      - `email` object
        - `enabled` boolean, required
        - `subject` string, required
        - `content` string, required
      - `sms` object
        - `enabled` boolean, required
        - `content` string, required
    - `deadline` object
      - `enabled` boolean, required
      - `delayInDays` number
      - `triggerProperty` 'hireDate' | 'startDate' | 'assignmentDate'
      - `reminder` boolean
      - `remindBeforeDays` number
    - `reminder` object
      - `enabled` boolean, required
      - `recurringDays` number
      - `messages` object
        - `email` object
          - `enabled` boolean, required
          - `subject` string, required
          - `content` string, required
        - `sms` object
          - `enabled` boolean, required
          - `content` string, required
    - `redirectUrl` string, uri
    - `workerCounts` object
      - `total` number
      - `notStarted` number
      - `inProgress` number
      - `completed` number
      - `overdue` number
      - `error` number
      - `toReview` number
      - `rejected` number
    - `currentVersionUuid` string, uuid
    - `currentVersionNumber` number
    - `currentVersionCreatedAt` string, date-time

## Response `201`

One or many taskFlow documents created. Wrapped in a JsonAPI root response.

- object
  - `data` union
    - TaskFlow
      - `uuid` string, uuid
      - `createdAt` string, date-time
      - `createdBy` string, uuid
      - `lastUpdatedAt` string, date-time
      - `lastUpdatedBy` string, uuid
      - `lastUpdatedByAudience` string
      - `lastUpdatedByAudienceUuid` string, uuid
      - `lastUpdatedByImpersonatedBy` string, uuid
      - `lastUpdatedByCompanyUuid` string, uuid
      - `lastUpdatedByEnterpriseUuid` string, uuid
      - `companyUuid` string, uuid, required
      - `status` 'draft' | 'published' | 'archived', required
      - `title` string, required
      - `internalName` string
      - `description` string
      - `taskUuids` string[]
      - `isTaskFlowSequential` boolean
      - `virtualTasks` object[]
        - `uuid` string, uuid
        - `createdAt` string, date-time
        - `createdBy` string, uuid
        - `lastUpdatedAt` string, date-time
        - `lastUpdatedBy` string, uuid
        - `lastUpdatedByAudience` string
        - `lastUpdatedByAudienceUuid` string, uuid
        - `lastUpdatedByImpersonatedBy` string, uuid
        - `lastUpdatedByCompanyUuid` string, uuid
        - `lastUpdatedByEnterpriseUuid` string, uuid
        - `companyUuid` string, uuid, required
        - `title` string, required
        - `description` string
        - `taskType` 'dataCollection' | 'informationSharing' | 'training' | 'backgroundCheck' | 'tinCheck' | 'i9' | 'w4' | 'documentSigning' | 'universal' | 'partnerTask' | 'video' | 'internalDataReview' | 'internalExternalAction' | 'compliance', required
        - `subType` 'default' | 'iframe' | 'webhook' | 'workato' | 'youtube'
        - `estimatedCompletionMinutes` number
        - `content` object
          - `buttonLabel` string
          - `text` string
          - `attachments` object[] — Optional list of file attachments associated with an information-sharing task. Files are stored in service-media under the ATTACHMENTS storage folder and referenced here by UUID.
            - `storedFileUuid` string, uuid, required
            - `filename` string, required
            - `mimeType` string, required
          - `uuid` string
          - `title` string
          - `subtitle` string
          - `description` string
          - `inputs` object[]
            - `uuid` string
            - `title` string
            - `subtitle` string
            - `description` string
            - `inputType` 'string' | 'select' | 'media' | 'date' | 'number' | 'address' | 'bankAcctNumber' | 'bankRoutingNumber' | 'phone' | 'email'
            - `required` boolean
            - `items` object[]
              - …
            - `style` 'select' | 'multiSelect' | 'checkbox' | 'radio' | 'default' | 'textarea'
            - `config` object
              - …
            - `customAttribute` object
              - …
          - `options` object
          - `signDoc` object, nullable
            - `uuid` string, uuid
            - `createdAt` string, date-time
            - `createdBy` string, uuid
            - `lastUpdatedAt` string, date-time
            - `lastUpdatedBy` string, uuid
            - `lastUpdatedByAudience` string
            - `lastUpdatedByAudienceUuid` string, uuid
            - `lastUpdatedByImpersonatedBy` string, uuid
            - `lastUpdatedByCompanyUuid` string, uuid
            - `lastUpdatedByEnterpriseUuid` string, uuid
            - `name` string, required
            - `technicalName` string
            - `fileUrls` string[]
            - `mergeKeys` string[]
            - `templateId` string
            - `editEmbedUrl` string
            - `companyUuid` string, uuid
            - `technical` boolean
            - `counterSignEnabled` boolean
            - `coSignerRequired` boolean
            - `coSignerEmailCustomAttributeKey` string
            - `editUrl` string — Edit URL for embedded templates created via templateCreateEmbeddedDraft
            - `editUrlExpiresAt` number — Expiration timestamp (milliseconds) for the editUrl. Used to determine if editUrl is still valid.
          - `signDocUuid` string
          - `section2CompletionMethods` object[]
            - `methodName` 'authorizedRepresentative' | 'adminValidation' | 'onSiteVerification' | 'liveVideoVerification', required
            - `requiredDuration` number
            - `calendarGroupUuid` string
            - `eventDescription` string
            - `recommended` boolean
            - `reminder` number
            - `customConferencingEnabled` boolean
            - `customConferencing` object
              - …
          - `url` string
          - `bgcProvider` string
          - `bgcPackage` string
          - `tinProvider` string
          - `endEvent` string
          - `hideCompletedButton` boolean
          - `appendWxQueryParams` boolean
          - `sensitiveData` boolean
          - `useI9C2PayloadFormat` boolean
          - `triggerableType` 'flow' | 'task'
          - `triggerableTaskUuid` string
          - `companyAttributeSetUuid` string
          - `companyAttributeSet` object, nullable
            - `uuid` string, uuid
            - `createdAt` string, date-time
            - `createdBy` string, uuid
            - `lastUpdatedAt` string, date-time
            - `lastUpdatedBy` string, uuid
            - `lastUpdatedByAudience` string
            - `lastUpdatedByAudienceUuid` string, uuid
            - `lastUpdatedByImpersonatedBy` string, uuid
            - `lastUpdatedByCompanyUuid` string, uuid
            - `lastUpdatedByEnterpriseUuid` string, uuid
            - `companyUuid` string, required
            - `label` string, required
            - `description` string
            - `companyAttributes` object[]
              - …
            - `attachedTo` object
              - …
          - `customAttribute` object
            - `label` string
            - `uuid` string, required
            - `key` string
          - `instructionNotes` string
          - `attributesToReview` string[]
          - `requirementUuid` string, uuid — UUID of the compliance requirement from service-compliancev2
        - `requireReview` boolean
        - `reuseInRehire` boolean — When true (default), the task completion is carried over to the rehire profile. When false, the task starts incomplete in the rehire profile. Ignored for I-9, W-4, Background Check, and TIN Check tasks (always start incomplete).
        - `isInternal` boolean
        - `internalTaskData` object
          - `employerUuids` string[]
          - `trigger` object
            - `type` string
            - `taskUuid` string
      - `segmentUuids` string[]
      - `virtualSegments` object[]
        - `uuid` string, uuid
        - `createdAt` string, date-time
        - `createdBy` string, uuid
        - `lastUpdatedAt` string, date-time
        - `lastUpdatedBy` string, uuid
        - `lastUpdatedByAudience` string
        - `lastUpdatedByAudienceUuid` string, uuid
        - `lastUpdatedByImpersonatedBy` string, uuid
        - `lastUpdatedByCompanyUuid` string, uuid
        - `lastUpdatedByEnterpriseUuid` string, uuid
        - `name` string, required
        - `description` string
        - `filters` string
        - `filterValues` string
        - `pipeline` string
        - `reference` object — For automatic segments, set a reference to make it easier to retrieve/update/delete when that reference changes
        - `companyUuid` string, uuid
        - `subscriptions` object[]
          - `service` 'activity' | 'attendance' | 'authorization' | 'broker' | 'compliance' | 'compliancev2' | 'communicate' | 'employment' | 'integrations' | 'logger' | 'media' | 'messaging' | 'ocr' | 'occupations-mcp' | 'organizations' | 'pool' | 'pulse' | 'referral' | 'scheduler' | 'security' | 'segmentation' | 'staff' | 'support' | 'todo' | 'workforce'
          - `key` string
        - `segmentType` 'unitary' | 'default' | 'automatic' | 'observer' | 'worker_notification' | 'employer_notification'
        - `forceMatch` boolean — if true, will match worker even if they have the property `segmentEnabled` to true
        - `dynamicFilters` object, nullable
          - `event` string, required
          - `eventOffsetDirection` 'before' | 'after' | 'on', required
          - `offsetDays` number
          - `finalOffsetDirection` 'before' | 'after' | 'on'
        - `observerRecurrence` object, nullable
          - `type` 'annual', required
        - `observerTemplate` boolean — when enabled, this is meant to be a template/blueprint for actual observerSegments
        - `baseObserverSegmentUuids` string[]
        - `timezone` string
      - `autoAssignToNewWorkers` boolean
      - `taskFlowType` 'preboarding' | 'onboarding' | 'test'
      - `messages` object
        - `email` object
          - `enabled` boolean, required
          - `subject` string, required
          - `content` string, required
        - `sms` object
          - `enabled` boolean, required
          - `content` string, required
      - `deadline` object
        - `enabled` boolean, required
        - `delayInDays` number
        - `triggerProperty` 'hireDate' | 'startDate' | 'assignmentDate'
        - `reminder` boolean
        - `remindBeforeDays` number
      - `reminder` object
        - `enabled` boolean, required
        - `recurringDays` number
        - `messages` object
          - `email` object
            - `enabled` boolean, required
            - `subject` string, required
            - `content` string, required
          - `sms` object
            - `enabled` boolean, required
            - `content` string, required
      - `redirectUrl` string, uri
      - `workerCounts` object
        - `total` number
        - `notStarted` number
        - `inProgress` number
        - `completed` number
        - `overdue` number
        - `error` number
        - `toReview` number
        - `rejected` number
      - `currentVersionUuid` string, uuid
      - `currentVersionNumber` number
      - `currentVersionCreatedAt` string, date-time
    - TaskFlow[]
      - `uuid` string, uuid
      - `createdAt` string, date-time
      - `createdBy` string, uuid
      - `lastUpdatedAt` string, date-time
      - `lastUpdatedBy` string, uuid
      - `lastUpdatedByAudience` string
      - `lastUpdatedByAudienceUuid` string, uuid
      - `lastUpdatedByImpersonatedBy` string, uuid
      - `lastUpdatedByCompanyUuid` string, uuid
      - `lastUpdatedByEnterpriseUuid` string, uuid
      - `companyUuid` string, uuid, required
      - `status` 'draft' | 'published' | 'archived', required
      - `title` string, required
      - `internalName` string
      - `description` string
      - `taskUuids` string[]
      - `isTaskFlowSequential` boolean
      - `virtualTasks` object[]
        - `uuid` string, uuid
        - `createdAt` string, date-time
        - `createdBy` string, uuid
        - `lastUpdatedAt` string, date-time
        - `lastUpdatedBy` string, uuid
        - `lastUpdatedByAudience` string
        - `lastUpdatedByAudienceUuid` string, uuid
        - `lastUpdatedByImpersonatedBy` string, uuid
        - `lastUpdatedByCompanyUuid` string, uuid
        - `lastUpdatedByEnterpriseUuid` string, uuid
        - `companyUuid` string, uuid, required
        - `title` string, required
        - `description` string
        - `taskType` 'dataCollection' | 'informationSharing' | 'training' | 'backgroundCheck' | 'tinCheck' | 'i9' | 'w4' | 'documentSigning' | 'universal' | 'partnerTask' | 'video' | 'internalDataReview' | 'internalExternalAction' | 'compliance', required
        - `subType` 'default' | 'iframe' | 'webhook' | 'workato' | 'youtube'
        - `estimatedCompletionMinutes` number
        - `content` object
          - `buttonLabel` string
          - `text` string
          - `attachments` object[] — Optional list of file attachments associated with an information-sharing task. Files are stored in service-media under the ATTACHMENTS storage folder and referenced here by UUID.
            - `storedFileUuid` string, uuid, required
            - `filename` string, required
            - `mimeType` string, required
          - `uuid` string
          - `title` string
          - `subtitle` string
          - `description` string
          - `inputs` object[]
            - `uuid` string
            - `title` string
            - `subtitle` string
            - `description` string
            - `inputType` 'string' | 'select' | 'media' | 'date' | 'number' | 'address' | 'bankAcctNumber' | 'bankRoutingNumber' | 'phone' | 'email'
            - `required` boolean
            - `items` object[]
              - …
            - `style` 'select' | 'multiSelect' | 'checkbox' | 'radio' | 'default' | 'textarea'
            - `config` object
              - …
            - `customAttribute` object
              - …
          - `options` object
          - `signDoc` object, nullable
            - `uuid` string, uuid
            - `createdAt` string, date-time
            - `createdBy` string, uuid
            - `lastUpdatedAt` string, date-time
            - `lastUpdatedBy` string, uuid
            - `lastUpdatedByAudience` string
            - `lastUpdatedByAudienceUuid` string, uuid
            - `lastUpdatedByImpersonatedBy` string, uuid
            - `lastUpdatedByCompanyUuid` string, uuid
            - `lastUpdatedByEnterpriseUuid` string, uuid
            - `name` string, required
            - `technicalName` string
            - `fileUrls` string[]
            - `mergeKeys` string[]
            - `templateId` string
            - `editEmbedUrl` string
            - `companyUuid` string, uuid
            - `technical` boolean
            - `counterSignEnabled` boolean
            - `coSignerRequired` boolean
            - `coSignerEmailCustomAttributeKey` string
            - `editUrl` string — Edit URL for embedded templates created via templateCreateEmbeddedDraft
            - `editUrlExpiresAt` number — Expiration timestamp (milliseconds) for the editUrl. Used to determine if editUrl is still valid.
          - `signDocUuid` string
          - `section2CompletionMethods` object[]
            - `methodName` 'authorizedRepresentative' | 'adminValidation' | 'onSiteVerification' | 'liveVideoVerification', required
            - `requiredDuration` number
            - `calendarGroupUuid` string
            - `eventDescription` string
            - `recommended` boolean
            - `reminder` number
            - `customConferencingEnabled` boolean
            - `customConferencing` object
              - …
          - `url` string
          - `bgcProvider` string
          - `bgcPackage` string
          - `tinProvider` string
          - `endEvent` string
          - `hideCompletedButton` boolean
          - `appendWxQueryParams` boolean
          - `sensitiveData` boolean
          - `useI9C2PayloadFormat` boolean
          - `triggerableType` 'flow' | 'task'
          - `triggerableTaskUuid` string
          - `companyAttributeSetUuid` string
          - `companyAttributeSet` object, nullable
            - `uuid` string, uuid
            - `createdAt` string, date-time
            - `createdBy` string, uuid
            - `lastUpdatedAt` string, date-time
            - `lastUpdatedBy` string, uuid
            - `lastUpdatedByAudience` string
            - `lastUpdatedByAudienceUuid` string, uuid
            - `lastUpdatedByImpersonatedBy` string, uuid
            - `lastUpdatedByCompanyUuid` string, uuid
            - `lastUpdatedByEnterpriseUuid` string, uuid
            - `companyUuid` string, required
            - `label` string, required
            - `description` string
            - `companyAttributes` object[]
              - …
            - `attachedTo` object
              - …
          - `customAttribute` object
            - `label` string
            - `uuid` string, required
            - `key` string
          - `instructionNotes` string
          - `attributesToReview` string[]
          - `requirementUuid` string, uuid — UUID of the compliance requirement from service-compliancev2
        - `requireReview` boolean
        - `reuseInRehire` boolean — When true (default), the task completion is carried over to the rehire profile. When false, the task starts incomplete in the rehire profile. Ignored for I-9, W-4, Background Check, and TIN Check tasks (always start incomplete).
        - `isInternal` boolean
        - `internalTaskData` object
          - `employerUuids` string[]
          - `trigger` object
            - `type` string
            - `taskUuid` string
      - `segmentUuids` string[]
      - `virtualSegments` object[]
        - `uuid` string, uuid
        - `createdAt` string, date-time
        - `createdBy` string, uuid
        - `lastUpdatedAt` string, date-time
        - `lastUpdatedBy` string, uuid
        - `lastUpdatedByAudience` string
        - `lastUpdatedByAudienceUuid` string, uuid
        - `lastUpdatedByImpersonatedBy` string, uuid
        - `lastUpdatedByCompanyUuid` string, uuid
        - `lastUpdatedByEnterpriseUuid` string, uuid
        - `name` string, required
        - `description` string
        - `filters` string
        - `filterValues` string
        - `pipeline` string
        - `reference` object — For automatic segments, set a reference to make it easier to retrieve/update/delete when that reference changes
        - `companyUuid` string, uuid
        - `subscriptions` object[]
          - `service` 'activity' | 'attendance' | 'authorization' | 'broker' | 'compliance' | 'compliancev2' | 'communicate' | 'employment' | 'integrations' | 'logger' | 'media' | 'messaging' | 'ocr' | 'occupations-mcp' | 'organizations' | 'pool' | 'pulse' | 'referral' | 'scheduler' | 'security' | 'segmentation' | 'staff' | 'support' | 'todo' | 'workforce'
          - `key` string
        - `segmentType` 'unitary' | 'default' | 'automatic' | 'observer' | 'worker_notification' | 'employer_notification'
        - `forceMatch` boolean — if true, will match worker even if they have the property `segmentEnabled` to true
        - `dynamicFilters` object, nullable
          - `event` string, required
          - `eventOffsetDirection` 'before' | 'after' | 'on', required
          - `offsetDays` number
          - `finalOffsetDirection` 'before' | 'after' | 'on'
        - `observerRecurrence` object, nullable
          - `type` 'annual', required
        - `observerTemplate` boolean — when enabled, this is meant to be a template/blueprint for actual observerSegments
        - `baseObserverSegmentUuids` string[]
        - `timezone` string
      - `autoAssignToNewWorkers` boolean
      - `taskFlowType` 'preboarding' | 'onboarding' | 'test'
      - `messages` object
        - `email` object
          - `enabled` boolean, required
          - `subject` string, required
          - `content` string, required
        - `sms` object
          - `enabled` boolean, required
          - `content` string, required
      - `deadline` object
        - `enabled` boolean, required
        - `delayInDays` number
        - `triggerProperty` 'hireDate' | 'startDate' | 'assignmentDate'
        - `reminder` boolean
        - `remindBeforeDays` number
      - `reminder` object
        - `enabled` boolean, required
        - `recurringDays` number
        - `messages` object
          - `email` object
            - `enabled` boolean, required
            - `subject` string, required
            - `content` string, required
          - `sms` object
            - `enabled` boolean, required
            - `content` string, required
      - `redirectUrl` string, uri
      - `workerCounts` object
        - `total` number
        - `notStarted` number
        - `inProgress` number
        - `completed` number
        - `overdue` number
        - `error` number
        - `toReview` number
        - `rejected` number
      - `currentVersionUuid` string, uuid
      - `currentVersionNumber` number
      - `currentVersionCreatedAt` string, date-time
  - `meta` ResponsesPartMeta
    - `timestamp` string, date-time, required
    - `verb` 'OPTION' | 'GET' | 'PUT' | 'POST' | 'PATCH' | 'DELETE'
    - `path` string
    - `jti` string
    - `rid` string
    - `count` number
    - `status` string
    - `duration` number
    - `size` number

## Other responses

- `500` — default error response

---

[API](https://skmtc.net/fountain/apis/hire-public-api.md) · [All operations](https://skmtc.net/fountain/apis/hire-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fountain/hire-public-api/versions/5f406c0e9462/schema)
