umbraco-collection-action
Implement collection actions in Umbraco backoffice using official docs
How do I install this agent skill?
npx skills add https://github.com/umbraco/umbraco-cms-backoffice-skills --skill umbraco-collection-actionIs this agent skill safe to install?
- Gen Agent Trust Hubpass
This skill provides instructions and templates for creating Collection Actions in Umbraco CMS backoffice. It references official Umbraco documentation and utilizes standard extension patterns for the platform. No security risks were identified.
- Socketpass
No alerts
- Snykwarn
Risk: MEDIUM · 1 issue
- Runlayerwarn
1/1 file flagged
What does this agent skill do?
Umbraco Collection Action
What is it?
Collection Actions are buttons that appear in a collection's toolbar, providing actions that can be performed on the collection as a whole (not on individual items - those are Entity Bulk Actions). Common examples include "Create New" buttons or export functionality. Actions can either execute code or navigate to a URL.
Documentation
Always fetch the latest docs before implementing:
- Main docs: https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/collections
- Collection View: https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/collections/collection-view
- Foundation: https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation
- Extension Registry: https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-registry
Related Foundation Skills
-
Context API: For accessing collection context
- Reference skill:
umbraco-context-api
- Reference skill:
-
Modals: When actions open modal dialogs
- Reference skill:
umbraco-modals
- Reference skill:
-
Conditions: For controlling when actions appear
- Reference skill:
umbraco-conditions
- Reference skill:
Workflow
- Fetch docs - Use WebFetch on the URLs above
- Ask questions - What collection? What action to perform? Navigate or execute?
- Generate files - Create manifest + action class based on latest docs
- Explain - Show what was created and how to test
Minimal Examples
Manifest (manifests.ts)
import type { ManifestCollectionAction } from '@umbraco-cms/backoffice/extension-registry';
const manifest: ManifestCollectionAction = {
type: 'collectionAction',
alias: 'My.CollectionAction.Create',
name: 'Create Item Action',
api: () => import('./create-action.js'),
meta: {
label: 'Create New',
},
conditions: [
{
alias: 'Umb.Condition.CollectionAlias',
match: 'My.Collection',
},
],
};
export const manifests = [manifest];
Action Implementation (create-action.ts)
import { UmbCollectionActionBase } from '@umbraco-cms/backoffice/collection';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
export class CreateAction extends UmbCollectionActionBase {
constructor(host: UmbControllerHost) {
super(host);
}
async execute() {
// Perform the action
console.log('Create action executed');
}
}
export default CreateAction;
Link-based Action (using getHref)
import { UmbCollectionActionBase } from '@umbraco-cms/backoffice/collection';
export class CreateLinkAction extends UmbCollectionActionBase {
async getHref() {
// Return URL to navigate to
return '/section/my-section/workspace/my-workspace/create';
}
async execute() {
// Not called when getHref returns a value
}
}
export default CreateLinkAction;
Action with Modal
import { UmbCollectionActionBase } from '@umbraco-cms/backoffice/collection';
import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';
export class ExportAction extends UmbCollectionActionBase {
async execute() {
const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);
const modal = modalManager.open(this, MY_EXPORT_MODAL, {
data: {
collectionAlias: 'My.Collection',
},
});
await modal.onSubmit();
}
}
export default ExportAction;
Action with Additional Options Indicator
const manifest: ManifestCollectionAction = {
type: 'collectionAction',
alias: 'My.CollectionAction.CreateWithOptions',
name: 'Create With Options',
api: () => import('./create-options-action.js'),
meta: {
label: 'Create',
additionalOptions: true, // Shows indicator that more options are available
},
conditions: [
{
alias: 'Umb.Condition.CollectionAlias',
match: 'Umb.Collection.Document',
},
],
};
Action Class with Additional Options
import { UmbCollectionActionBase } from '@umbraco-cms/backoffice/collection';
export class CreateWithOptionsAction extends UmbCollectionActionBase {
async hasAdditionalOptions() {
return true;
}
async execute() {
// Show options menu or modal
}
}
export default CreateWithOptionsAction;
Meta Properties
| Property | Description |
|---|---|
label | Required. Button text |
href | Optional static URL (use getHref() for dynamic) |
additionalOptions | Shows dropdown indicator if true |
Common Collection Aliases for Conditions
Umb.Collection.DocumentUmb.Collection.MediaUmb.Collection.MemberUmb.Collection.UserUmb.Collection.DataType
That's it! Always fetch fresh docs, keep examples minimal, generate complete working code.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/umbraco/umbraco-cms-backoffice-skills/umbraco-collection-action">View umbraco-collection-action on skillZs</a>