---
canonical: https://amplience.com/developers/docs/workforce/flows/action-reference/dynamic-content-actions/
title: Dynamic Content actions
description: Explore the Dynamic Content extension actions for Workforce flows, enabling you to manage content items and content type schemas programmatically as part of automated content processes.
audience: Business User
date_published: 2026-04-09
date_modified: 2026-05-20
---

# Dynamic Content actions

The Dynamic Content extension provides actions for managing content items, content types, and content type schemas programmatically within Workforce flows. Use these actions to create, retrieve, update, publish, localize, and search Dynamic Content resources as part of your automated content processes.

> **Tip:** These action descriptions cover the most commonly used inputs and outputs. When designing flows, you may also notice additional input and output variables.

## Prerequisites

When [installing](https://amplience.com/developers/docs/workforce/setup/integrations/#installing-an-action-extension) the Dynamic Content extension on your hub, configure the following environment variables.

| Variable | Type | Required | Description |
|---|---|---:|---|
| `DC_HUB_ID` | string | Yes | The unique identifier for your organization's Dynamic Content account |
| `DC_PAT_TOKEN` | string | Yes | A [Personal Access Token](https://amplience.com/developers/docs/apis/authorization/personal-access-tokens/) for secure authentication. This value is write-only |
| `DC_HUB_NAME` | string | No | The name associated with your hub |

## Content items

### Get Content Item

Get a content item by ID.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `id` | string | Yes | The ID of the content item to retrieve |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentItem` | object | The retrieved content item. See [Content item object](#content-item-object) |

### Get Linked Child Content Items

Gets all linked content item children for a given content item.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `id` | string | Yes | The ID of the content item to retrieve linked children for |
| `excludeSelf` | boolean | No | Exclude the content item with the given ID from the results. Default: `true` |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentItems` | array | A list of linked child content items. Each entry follows the [Content item object](#content-item-object) schema |

### Get Linked Parent Content Items

Gets all linked content item parents for a given content item.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `id` | string | Yes | The ID of the content item to retrieve linked parents for |
| `excludeSelf` | boolean | No | Exclude the content item with the given ID from the results. Default: `true` |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentItems` | array | A list of linked parent content items. Each entry follows the [Content item object](#content-item-object) schema |

### Search Content Items

Searches for content items with optional filters.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `text` | string | No | Filter by text |
| `label` | string | No | Filter by label |
| `deliveryKey` | string | No | Filter by delivery key |
| `contentType` | string | No | Filter by content type URI |
| `assignees` | array of strings | No | Filter by assignee user IDs |
| `status` | string | No | Filter by status (e.g. `ACTIVE`, `ARCHIVED`, `UNARCHIVED`) |
| `publishingStatus` | string | No | Filter by publishing status (e.g. `LATEST`, `UNPUBLISHED`, `NONE`) |
| `folderId` | string | No | Filter by folder ID |
| `repositoryId` | string | No | Filter by repository ID |
| `locale` | array of strings | No | Filter by locales (e.g. `en-US`) |
| `lastModified.start` | string | No | Start date keyword (e.g. `NOW`, `-2:DAYS`, `1:MONTH`) |
| `lastModified.end` | string | No | End date keyword (e.g. `NOW`, `-2:DAYS`, `1:MONTH`) |
| `page.number` | string | No | Zero-indexed page number |
| `page.size` | string | No | Results per page. Default: `20` |
| `page.sort` | string | No | Sort order (e.g. `lastModifiedDate,asc`) |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentItems` | array | A list of matching content items. Each entry follows the [Content item object](#content-item-object) schema |
| `page` | object | Pagination details (size, totalElements, totalPages, number, nextPage, prevPage) |

### Create Content Item

Create a new content item in Dynamic Content.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `contentTypeId` | string | Yes | The content type URI to create the content item with |
| `contentRepositoryId` | string | Yes | The destination repository ID |
| `label` | string | Yes | The label for the content item |
| `body` | object | Yes | The content body as a JSON object |
| `folderId` | string | No | The destination folder ID |
| `locale` | string | No | The locale to assign to the new content item (e.g. `en-US`) |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentItem` | object | The newly created content item. See [Content item object](#content-item-object) |

### Update Content Item

Update an existing content item.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `contentItemId` | string | Yes | The ID of the content item to update |
| `body` | object | No | The updated content body as a JSON object |
| `mode` | string | No | Merge mode used when updating the body. Default: `merge`. Accepted values: `merge`, `replace` |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentItem` | object | The updated content item. See [Content item object](#content-item-object) |

### Rename Content Item

Rename a content item.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `id` | string | Yes | The ID of the content item to rename |
| `label` | string | Yes | The new label for the content item |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentItem` | object | The renamed content item. See [Content item object](#content-item-object) |

### Move Content Item

Move a content item to a different folder.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `id` | string | Yes | The ID of the content item to move |
| `folderId` | string | Yes | The destination folder ID |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentItem` | object | The moved content item. See [Content item object](#content-item-object) |

### Copy Content Item

Copy a content item.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `id` | string | Yes | The ID of the content item to copy |
| `label` | string | No | The label for the copied content item |
| `folderId` | string | No | The destination folder ID for the copied content item |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentItem` | object | The copied content item. See [Content item object](#content-item-object) |

### Assign Content Item

Assign a content item to one or more users.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `id` | string | Yes | The ID of the content item to assign |
| `assignees` | array of strings | No | List of user IDs to assign the content item to |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentItem` | object | The updated content item. See [Content item object](#content-item-object) |

### Get Content Item Localizations

Gets the localizations for a content item.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `contentItemId` | string | Yes | The ID of the content item to retrieve localizations for |
| `locale` | string | No | Filter results to a specific locale (e.g. `en-US`) |
| `excludeSelf` | boolean | No | Exclude the content item with the given ID from the results. Default: `true` |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentItems` | array | A list of localization objects (id, locale, createdBy, createdDate, `_links`) |
| `page` | object | Pagination details (size, totalElements, totalPages, number, nextPage, prevPage) |

### Localize Content Item

Localizes a content item by creating localized variants for the specified locales.

> **Note:** A content item must have a locale assigned before localizing, otherwise an error will occur.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `id` | string | Yes | The ID of the content item to localize |
| `locales` | array of strings | Yes | List of locales to create localized variants for (e.g. `en-US`, `fr-FR`) |
| `sourceLocale` | string | No | Locale of the source content item, if supplied |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `localizationJob` | object | Localization job details (status, rootContentItem, requestedLocales, createdBy, createdDate) |

### Sync Content Item

Syncs a content item to a destination hub.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `id` | string | Yes | The ID of the content item to sync |
| `destinationHubId` | string | Yes | The destination hub ID |
| `ignoreSchemaValidation` | boolean | No | Ignore schema validation during sync. Default: `false` |
| `forceSync` | boolean | No | Force the sync even if the item is up to date. Default: `false` |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `syncJob` | object | Sync job details (`jobId`, `_links`) |

### Set Workflow State

Sets the workflow state on a content item.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `id` | string | Yes | The ID of the content item |
| `workflowStateId` | string | No | The ID of the workflow state to assign |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentItem` | object | The updated content item. See [Content item object](#content-item-object) |

### Publish Content Item

Publish a content item.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `contentItemId` | string | Yes | The ID of the content item to publish |

**Outputs**

No output properties are returned by this action.

### Unpublish Content Item

Unpublish a content item.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `contentItemId` | string | Yes | The ID of the content item to unpublish |

**Outputs**

No output properties are returned by this action.

### Archive Content Item

Archive a content item.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `id` | string | Yes | The ID of the content item to archive |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentItem` | object | The archived content item. See [Content item object](#content-item-object) |

### Unarchive Content Item

Unarchive a content item.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `id` | string | Yes | The ID of the content item to unarchive |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentItem` | object | The unarchived content item. See [Content item object](#content-item-object) |

## Content types and schemas

### Get Content Type Schema

Get a content type schema by ID.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `id` | string | Yes | The ID of the content type schema to retrieve |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentTypeSchema` | object | Content type schema details (status, body, schemaId, validationLevel, createdBy, lastModifiedBy, createdDate, lastModifiedDate, version, id, `_links`) |

### List Content Type Schemas

Lists content type schemas from the hub with optional filters.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `schemaUri` | string | No | Filter results to an exact match on schema URI |
| `status` | string | No | Filter by status. Accepted values: `ACTIVE`, `ARCHIVED` |
| `page.number` | string | No | Zero-indexed page number |
| `page.size` | string | No | Results per page. Default: `100` |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `schemas` | array | A list of content type schema objects |
| `page` | object | Pagination details (size, totalElements, totalPages, number, nextPage, prevPage) |

### Get Content Type

Get a content type by ID.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `id` | string | Yes | The ID of the content type to retrieve |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentType` | object | Content type details (id, contentTypeUri, status, settings, `_links`) |

### List Content Types

Lists content types with optional filters.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `schemaUri` | string | No | Filter by schema URI |
| `status` | string | No | Filter by status. Accepted values: `ACTIVE`, `ARCHIVED` |
| `page.number` | string | No | Zero-indexed page number |
| `page.size` | string | No | Results per page. Default: `100` |
| `page.sort` | string | No | Sort order (e.g. `lastModifiedDate,asc`) |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentTypes` | array | A list of content type objects |
| `page` | object | Pagination details (size, totalElements, totalPages, number, nextPage, prevPage) |

### Get Effective Content Type

Get the effective (resolved) content type by ID. This returns the content type in the form of its underlying JSON Schema.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `id` | string | Yes | The ID of the effective content type to retrieve |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `contentType` | object | Resolved content type JSON Schema (`$schema`, `$id`, `title`, `description`, `properties`) |

## Hub

### Get Hub Settings

Get the settings for the currently configured hub.

**Inputs**

This action takes no inputs.

**Outputs**

| Output | Type | Description |
|---|---|---|
| `hub` | object | Hub settings including id, name, label, description, plan, organisationId, settings, and `_links` |

## Content item object

The following fields are returned on the `contentItem` output object for actions that return a content item:

| Field | Type | Description |
|---|---|---|
| `id` | string | Content item ID |
| `contentRepositoryId` | string | Content repository ID |
| `body` | object | Content item body |
| `label` | string | Content item label |
| `folderId` | string | Folder ID |
| `assignees` | array | List of assignee user IDs |
| `locale` | string | Locale |
| `version` | number | Version number |
| `status` | string | Status |
| `workflow.state` | string | Workflow state |
| `publishingStatus` | string | Publishing status |
| `lastPublishedVersion` | number | Last published version |
| `createdBy` | string | Created by user |
| `createdDate` | string | Created date |
| `lastModifiedBy` | string | Last modified by user |
| `lastModifiedDate` | string | Last modified date |
| `validationState` | string | Validation state |
| `deliveryId` | string | Delivery ID |
| `_links` | object | HAL links |

## Related pages

[Adding actions to flows](https://amplience.com/developers/docs/workforce/flows/action-reference/#adding-actions-to-flows)

[Inputs, outputs and ports](https://amplience.com/developers/docs/workforce/flows/action-reference/#inputs-outputs-and-ports)

[Input field variables](https://amplience.com/developers/docs/workforce/flows/action-reference/#input-field-variables)

[Developing extensions](https://amplience.com/developers/docs/workforce/flows/developing-extensions/)
