---
canonical: https://amplience.com/developers/docs/workforce/flows/action-reference/content-hub-actions/
title: Content Hub actions
description: Explore the Content Hub extension actions for Workforce flows, enabling you to upload, publish, organise, and manage assets in Content Hub as part of automated content processes.
audience: Business User
date_published: 2026-04-09
date_modified: 2026-06-22
---

# Content Hub actions

The Content Hub extension provides actions for creating and managing digital assets in Amplience Content Hub within Workforce flows. Use these actions to upload images, update metadata, manage workflow status, and organise assets as part of your automated content processes.

Content Hub actions read, write, and manage assets. To edit image assets within a flow — crop, resize, trim, or fill and remove backgrounds — use the [Image actions](https://amplience.com/developers/docs/workforce/flows/action-reference/image-actions) together with these actions.

> **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 Content Hub extension on your hub, you must specify *either*:

- A [Personal Access Token](https://amplience.com/developers/docs/apis/authorization/personal-access-tokens/).

Or

- A Client ID and Client Secret (which you can request from Amplience Support).

## Get Asset by ID

Retrieves the full details of an existing asset in Content Hub by its ID.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `assetId` | string | Yes | The ID of the asset to retrieve |
| `includeMetadata` | boolean | No | When enabled, the action will also return all metadata for the asset |
| `metadataSchemaNames` | array | No | When provided, only metadata matching these schema names will be returned. Only applicable when `includeMetadata` is enabled |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `asset.id` | string | The unique identifier of the asset |
| `asset.type` | string | The type of the asset |
| `asset.mimeType` | string | The MIME type of the asset |
| `asset.name` | string | The API name of the asset |
| `asset.label` | string | The label of the asset |
| `asset.srcName` | string | The source filename of the asset |
| `asset.thumbFile` | string | The thumbnail file path for the asset |
| `asset.folderID` | string | The ID of the folder containing the asset |
| `asset.createdDate` | number | The timestamp when the asset was created |
| `asset.timestamp` | number | The last updated timestamp of the asset |
| `asset.revisionNumber` | number | The current revision number of the asset |
| `asset.publishStatus` | string | The publish status of the asset. One of: `NOT_PUBLISHED`, `PUBLISHED`, `PUBLISH_IN_PROGRESS`, `UNPUBLISH_IN_PROGRESS` |
| `asset.tags` | array of strings | Tags applied to the asset |
| `asset.contents` | array of strings | The IDs of assets contained within the set, if the asset is a set |
| `asset.relationships` | object | A map of related content items keyed by relationship type. Each entry is an array of objects containing `schema`, `schemaID`, `PK`, and `variants` |

## Upload Asset

Uploads an asset from a URL into Content Hub.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `url` | string | Yes | The URL of the asset to upload (e.g. `https://example.com/video.mp4`) |
| `name` | string | Yes | The filename to use when storing or downloading the asset (e.g. `product-1.jpg`) |
| `label` | string | Yes | A programmatic identifier for the asset, without a file extension (e.g. `product-1`) |
| `type` | string | Yes | The type of asset being uploaded. Accepted values: `image`, `video`, `document`, `other` |
| `mode` | string | No | What to do if an asset with the same name already exists. Accepted values: `rename_unique` (default), `overwrite` |
| `assetRepositoryId` | string | No | The Asset Repository where the new asset will be stored |
| `folderId` | string | No | The folder within the repository where the asset will be saved |
| `includeMetadata` | boolean | No | When enabled, all metadata for the uploaded asset is included in the output. Default: `false` |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `asset.id` | string | The unique identifier of the newly created asset |
| `asset.type` | string | The type of the asset |
| `asset.mimeType` | string | The MIME type of the asset |
| `asset.name` | string | The API name of the asset |
| `asset.label` | string | The label of the asset |
| `asset.srcName` | string | The source filename of the asset |
| `asset.thumbFile` | string | The thumbnail file path for the asset |
| `asset.folderID` | string | The ID of the folder containing the asset |
| `asset.createdDate` | number | The timestamp when the asset was created |
| `asset.timestamp` | number | The last updated timestamp of the asset |
| `asset.revisionNumber` | number | The current revision number of the asset |
| `asset.publishStatus` | string | The publish status of the asset. One of: `NOT_PUBLISHED`, `PUBLISHED`, `PUBLISH_IN_PROGRESS`, `UNPUBLISH_IN_PROGRESS` |
| `asset.tags` | array of strings | Tags applied to the asset |
| `asset.contents` | array of strings | The IDs of assets contained within the set, if the asset is a set |
| `asset.relationships` | object | A map of related content items keyed by relationship type. Each entry is an array of objects containing `schema`, `schemaID`, `PK`, and `variants` |

## Upload Image Asset

Creates a new asset in Content Hub from a source image.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `image` | object | Yes | The source image to upload. Must include `type` (must be `"Image"`) and `url`. Optionally includes `id` and `tags` |
| `filename` | string | Yes | The filename to use when storing the asset (e.g. `product-1.jpg`) |
| `name` | string | Yes | A programmatic identifier for the asset, without a file extension (e.g. `product-1`) |
| `mode` | string | No | What to do if an asset with the same name already exists. Accepted values: `rename_unique` (default), `overwrite` |
| `inheritTags` | boolean | No | When enabled, tags from the input image are copied to the new asset. Default: `true` |
| `assetRepositoryId` | string | No | The Asset Repository where the new asset will be stored |
| `folderId` | string | No | The folder within the repository where the asset will be saved |
| `includeMetadata` | boolean | No | When enabled, all metadata for the uploaded asset is included in the output. Default: `false` |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `asset.id` | string | The unique identifier of the newly created asset |
| `asset.type` | string | The type of the asset |
| `asset.mimeType` | string | The MIME type of the asset |
| `asset.name` | string | The API name of the asset |
| `asset.label` | string | The label of the asset |
| `asset.srcName` | string | The source filename of the asset |
| `asset.thumbFile` | string | The thumbnail file path for the asset |
| `asset.folderID` | string | The ID of the folder containing the asset |
| `asset.createdDate` | number | The timestamp when the asset was created |
| `asset.timestamp` | number | The last updated timestamp of the asset |
| `asset.revisionNumber` | number | The current revision number of the asset |
| `asset.publishStatus` | string | The publish status of the asset. One of: `NOT_PUBLISHED`, `PUBLISHED`, `PUBLISH_IN_PROGRESS`, `UNPUBLISH_IN_PROGRESS` |
| `asset.tags` | array of strings | Tags applied to the asset |
| `asset.contents` | array of strings | The IDs of assets contained within the set, if the asset is a set |
| `asset.relationships` | object | A map of related content items keyed by relationship type. Each entry is an array of objects containing `schema`, `schemaID`, `PK`, and `variants` |

**Featured in these example flows**

- [Image tagging and Content Hub upload example](https://amplience.com/developers/docs/workforce/flows/examples/image-tagging-upload/)

## Publish Asset

Publishes an asset in Content Hub.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `assetId` | string | Yes | The ID of the asset to publish |
| `waitForJobIds` | array of strings | No | IDs of jobs that must complete before the asset is published |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `job.id` | string | The unique identifier of the publishing job that was created |

## Rename Asset

Updates the file name or API name of an existing asset in Content Hub.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `assetId` | string | Yes | The ID of the asset to rename |
| `filename` | string | No | The new filename to use when storing or downloading the asset (e.g. `product-1.jpg`) |
| `name` | string | No | The new programmatic identifier for the asset, without a file extension (e.g. `product-1`) |
| `mode` | string | No | What to do if an asset with the same name already exists. Accepted values: `rename_unique` (default), `overwrite` |

**Outputs**

No output properties are returned by this action.

## Move Asset

Moves an existing asset to a different repository or folder in Content Hub.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `assetId` | string | Yes | The ID of the asset to move |
| `assetRepositoryId` | string | No | The Asset Repository to move the asset to |
| `folderId` | string | No | The folder within the target repository to move the asset to |
| `mode` | string | No | What to do if an asset with the same name already exists in the target location. Accepted values: `rename_unique` (default), `overwrite` |

**Outputs**

No output properties are returned by this action.

## Transition Asset Status

Transitions an asset to a new workflow status in Content Hub.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `assetId` | string | Yes | The ID of the asset to transition |
| `newStatus` | string | No | The new workflow status to assign. Accepted values: `dam:draft`, `dam:archived`, `dam:review`, `dam:rejected`, `dam:approved` |

**Outputs**

No output properties are returned by this action.

## Update Asset Tags

Adds or removes tags on an existing asset in Content Hub.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `assetId` | string | Yes | The ID of the asset to update |
| `add` | array of strings | No | Tags to add to the asset |
| `remove` | array of strings | No | Tags to remove from the asset |

**Outputs**

No output properties are returned by this action.

## Replace Image Asset

Replaces the image file associated with an existing asset in Content Hub, while keeping the asset's ID and metadata.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `assetId` | string | Yes | The ID of the asset to replace |
| `image` | object | No | The new source image to upload. Must include `type` (must be `"Image"`) and `url`. Optionally includes `id` and `tags` |
| `inheritTags` | boolean | No | When enabled, tags from the input image are copied to the asset. Default: `true` |

**Outputs**

No output properties are returned by this action.

## Update Asset Metadata

Updates the metadata of an existing asset in Content Hub.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `assetId` | string | Yes | The ID of the asset to update |
| `schemaId` | string | Yes | The ID of the schema that defines the metadata fields to update |
| `values` | object | Yes | The metadata field values to update on the asset's default variant |
| `variantName` | string | No | The name of the variant to update. If not provided, the default variant will be updated |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `asset.id` | string | The unique identifier of the updated asset |
| `asset.type` | string | The type of the asset |
| `asset.mimeType` | string | The MIME type of the asset |
| `asset.name` | string | The API name of the asset |
| `asset.label` | string | The label of the asset |
| `asset.srcName` | string | The source filename of the asset |
| `asset.thumbFile` | string | The thumbnail file path for the asset |
| `asset.folderID` | string | The ID of the folder containing the asset |
| `asset.createdDate` | number | The timestamp when the asset was created |
| `asset.timestamp` | number | The last updated timestamp of the asset |
| `asset.revisionNumber` | number | The current revision number of the asset |
| `asset.publishStatus` | string | The publish status of the asset. One of: `NOT_PUBLISHED`, `PUBLISHED`, `PUBLISH_IN_PROGRESS`, `UNPUBLISH_IN_PROGRESS` |
| `asset.tags` | array of strings | Tags applied to the asset |
| `asset.contents` | array of strings | The IDs of assets contained within the set, if the asset is a set |
| `asset.relationships` | object | A map of related content items keyed by relationship type. Each entry is an array of objects containing `schema`, `schemaID`, `PK`, and `variants` |

## Update Asset Alt Text

Updates the default and locale-specific alt text descriptions on an asset in Content Hub.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `assetId` | string | Yes | The ID of the asset to update |
| `defaultAltText` | string | No | A default phrase that explains the image content (e.g. `White running shoes with blue soles on a wooden floor`) |
| `altTextVariants` | object | No | Locale-specific alt text descriptions. Must include a `_meta` object with `schema` set to<br/>`http://bigcontent.io/cms/schema/v1/core`<br/>`#/definitions/localized-value`, and a `values` array of objects each with `locale` (string, required) and `value` (string, required) |

**Outputs**

No output properties are returned by this action.

**Featured in these example flows**

- [Automatic alt text example](https://amplience.com/developers/docs/workforce/flows/examples/automatic-alt-text/)

## Assign Video Transcoding Profiles

Assigns one or more video transcoding profiles to a video asset in Content Hub, triggering the associated transcoding jobs.

> **Info:** You must assign a [video transcoding profile](https://amplience.com/developers/docs/user-guides/assets/video/#transcoding-videos) to a video before you can play it.

**Inputs**

| Input | Type | Required | Description |
|---|---|---:|---|
| `videoAssetId` | string | Yes | The ID of the video asset to assign transcoding profiles to |
| `videoProfileIds` | array of strings | Yes | The IDs of the video transcoding profiles to assign to the asset |

**Outputs**

| Output | Type | Description |
|---|---|---|
| `status` | string | The overall status of the transcoding jobs |
| `content` | array | A list of job result objects. Each contains `id` (job ID), `jobs` (array of job IDs), and `status` (job status) |

## Changelog

**v1.2.0**

**New actions**

- **Update Asset Metadata** — update the metadata fields of an existing asset against a specified schema, with optional variant targeting

**Updated actions**

- **Get Asset by ID** — added optional `includeMetadata` input to return all metadata for the asset, and optional `metadataSchemaNames` to filter which schemas are returned; added `asset.contents` output returning the IDs of assets within a set
- **Upload Asset** — added optional `includeMetadata` input; the action now returns the full asset object rather than only `asset.id`
- **Upload Image Asset** — added optional `includeMetadata` input; the action now returns the full asset object rather than only `asset.id`

**v1.1.0**

**New actions**

- **Get Asset by ID** — retrieve the full details of an asset by its ID, including metadata, publish status, tags, and relationships
- **Upload Asset** — upload any asset type (image, video, document, or other) from a URL directly into Content Hub
- **Assign Video Transcoding Profiles** — assign one or more transcoding profiles to a video asset to trigger the associated transcoding jobs

**Updated actions**

- **Publish Asset** — added optional `waitForJobIds` input, allowing you to specify jobs that must complete before the asset is published

## Related pages

[Image actions](https://amplience.com/developers/docs/workforce/flows/action-reference/image-actions)

[Example flow: product image standardization](https://amplience.com/developers/docs/workforce/flows/examples/product-image-standardization)

[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/)
