---
title: "Change status of multiple credentialing workflows"
method: POST
path: "/credentialing-workflows/timeline-events"
tags: ["CredentialingWorkflow"]
---

# Change status of multiple credentialing workflows

`POST /credentialing-workflows/timeline-events`

Creates timeline events for multiple credentialing workflows in a single operation. This allows changing the status of multiple workflows at once. Each workflow is processed independently, and the response includes both successful and failed operations.

## Headers

- `tenant-id` string, required

## Request body

- BulkStatusChangeRequest — Request to change status of multiple credentialing workflows
  - `workflowIds` string[] — List of credentialing workflow IDs to update. Required when isSelectAll is false. Ignored when isSelectAll is true (workflow IDs will be fetched using the filter).
  - `timelineEventData` CreateTimelineEventRequest, required
    - `name` string, required
    - `changeReason` string
    - `credentialingDecisionDate` string, date
    - `nextCredentialingDate` string, date
    - `overrideReason` string
    - `isOverride` boolean
  - `filter` string — Filter criteria as JSON string (URL encoded). Used to fetch workflow IDs when isSelectAll is true. See GET /credentialing-workflows endpoint documentation for filter format.
  - `isSelectAll` boolean — If true, fetch all workflow IDs matching the filter criteria instead of using workflowIds. When true, filter parameter is required and workflowIds will be ignored.

## Response `200`

Bulk status change operation completed. Check successful and failed arrays for details.

- BulkStatusChangeResponse — Response containing results of bulk status change operation
  - `successful` StatusChangeResult[], required — List of successful status changes
    - `workflowId` string — Workflow ID that was processed
    - `timelineEvent` TimelineEventResponse — Response containing timeline event information
      - `id` string — Unique identifier for the timeline event
      - `workflowId` string — ID of the associated credentialing workflow
      - `data` TimelineEventData — Timeline event data containing event details. Field requirements vary by event name (see oneOf conditions in schema).
        - `name` 'NOT_STARTED' | 'IN_PROGRESS' | 'OUTREACH_IN_PROGRESS' | 'DATA_MISSING' | 'PSV_COMPLETED' | 'PSV_READY' | 'SENT_TO_COMMITTEE' | 'TABLED' | 'WITHDRAWN_CANCELLED' | 'CRED_DENIED' | 'CRED_APPROVED', required — Name of the timeline event. Must be one of the TimelineStatus enum values.
        - `changeReason` string — Reason for the change or status update. REQUIRED for: DATA_MISSING, WITHDRAWN_CANCELLED. Optional for: CRED_APPROVED, CRED_DENIED, and other statuses. Note: Whether this field is required or optional varies based on the permissions assigned to the user performing the action.
        - `credentialingDecisionDate` string, date
        - `nextCredentialingDate` string, date
        - `nextCredentialingDateSource` 'SYSTEM_CALCULATED' | 'USER_INPUT' — Indicates whether the next credentialing date was calculated by the system or entered by a user. Only applicable for CRED_APPROVED events.
        - `nextCredentialingDateChangeLog` NextCredentialingDateChangeLogEntry[] — Array to track changes to the next credentialing date. The nextCredentialingDate field should reflect the latest value from this array. Only applicable for CRED_APPROVED events.
          - `changedFrom` string, date, required
          - `changedTo` string, date, required
          - `changeReason` string, required — Reason for the change
          - `createdBy` string, required — User who made the change
          - `createdAt` string, date-time, required — Timestamp when the change was made
        - `psvPdfPath` string, uri-reference — URI reference to the PSV (Provider Summary Verification) PDF document.
        - `overrideReason` string, string — Indicates the reason for the override
        - `isOverride` boolean — Indicates if the timeline event is an override bypassing the default validations
      - `createdBy` string — ID of the user who created the timeline event
      - `updatedBy` string — ID of the user who last updated the timeline event
      - `createdAt` string, date-time
      - `updatedAt` string, date-time
    - `errorMessage` string — Error message if the operation failed
    - `errorCode` string — Error code if the operation failed
  - `failed` StatusChangeResult[], required — List of failed status changes
    - `workflowId` string — Workflow ID that was processed
    - `timelineEvent` TimelineEventResponse — Response containing timeline event information
      - `id` string — Unique identifier for the timeline event
      - `workflowId` string — ID of the associated credentialing workflow
      - `data` TimelineEventData — Timeline event data containing event details. Field requirements vary by event name (see oneOf conditions in schema).
        - `name` 'NOT_STARTED' | 'IN_PROGRESS' | 'OUTREACH_IN_PROGRESS' | 'DATA_MISSING' | 'PSV_COMPLETED' | 'PSV_READY' | 'SENT_TO_COMMITTEE' | 'TABLED' | 'WITHDRAWN_CANCELLED' | 'CRED_DENIED' | 'CRED_APPROVED', required — Name of the timeline event. Must be one of the TimelineStatus enum values.
        - `changeReason` string — Reason for the change or status update. REQUIRED for: DATA_MISSING, WITHDRAWN_CANCELLED. Optional for: CRED_APPROVED, CRED_DENIED, and other statuses. Note: Whether this field is required or optional varies based on the permissions assigned to the user performing the action.
        - `credentialingDecisionDate` string, date
        - `nextCredentialingDate` string, date
        - `nextCredentialingDateSource` 'SYSTEM_CALCULATED' | 'USER_INPUT' — Indicates whether the next credentialing date was calculated by the system or entered by a user. Only applicable for CRED_APPROVED events.
        - `nextCredentialingDateChangeLog` NextCredentialingDateChangeLogEntry[] — Array to track changes to the next credentialing date. The nextCredentialingDate field should reflect the latest value from this array. Only applicable for CRED_APPROVED events.
          - `changedFrom` string, date, required
          - `changedTo` string, date, required
          - `changeReason` string, required — Reason for the change
          - `createdBy` string, required — User who made the change
          - `createdAt` string, date-time, required — Timestamp when the change was made
        - `psvPdfPath` string, uri-reference — URI reference to the PSV (Provider Summary Verification) PDF document.
        - `overrideReason` string, string — Indicates the reason for the override
        - `isOverride` boolean — Indicates if the timeline event is an override bypassing the default validations
      - `createdBy` string — ID of the user who created the timeline event
      - `updatedBy` string — ID of the user who last updated the timeline event
      - `createdAt` string, date-time
      - `updatedAt` string, date-time
    - `errorMessage` string — Error message if the operation failed
    - `errorCode` string — Error code if the operation failed
  - `totalCount` integer, required — Total number of workflows processed
  - `successCount` integer, required — Number of successful changes
  - `failureCount` integer, required — Number of failed changes

## Other responses

- `400` — Invalid request data
- `401` — Unauthorized - Authentication required
- `403` — Forbidden - User does not have required permissions
- `500` — Internal Server Error - An unexpected error occurred

---

[API](https://skmtc.net/certifyos/apis/certify-api-layer.md) · [All operations](https://skmtc.net/certifyos/apis/certify-api-layer/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/certifyos/certify-api-layer/revisions/3d27e9019c7b/schema)
