Umbraco.Workflow.Automate
18.0.0
Prefix Reserved
dotnet add package Umbraco.Workflow.Automate --version 18.0.0
NuGet\Install-Package Umbraco.Workflow.Automate -Version 18.0.0
<PackageReference Include="Umbraco.Workflow.Automate" Version="18.0.0" />
<PackageVersion Include="Umbraco.Workflow.Automate" Version="18.0.0" />
<PackageReference Include="Umbraco.Workflow.Automate" />
paket add Umbraco.Workflow.Automate --version 18.0.0
#r "nuget: Umbraco.Workflow.Automate, 18.0.0"
#:package Umbraco.Workflow.Automate@18.0.0
#addin nuget:?package=Umbraco.Workflow.Automate&version=18.0.0
#tool nuget:?package=Umbraco.Workflow.Automate&version=18.0.0
<p align="center"> <img alt="Umbraco Automate" src="./assets/logo-128.png" width="128"> </p>
Umbraco.Workflow.Automate
Umbraco Workflow triggers for Umbraco Automate.
Overview
Umbraco.Workflow.Automate is a provider package that connects Umbraco Workflow to Umbraco Automate, exposing workflow events as first-class triggers in Automate flows — for example, notifying a channel when a workflow is rejected, or escalating when reminder emails pile up.
Key Features
- 10 triggers — react to workflow lifecycle, task assignment, email, and content review events
- Rich trigger outputs — node IDs, entity keys, workflow types and statuses, authors, comments, and timestamps
- Native notifications — Workflow publishes standard CMS notifications, so no bridge handlers are required
- Zero configuration —
WorkflowAutomateComposerself-registers with Umbraco's composition pipeline
Installation
dotnet add package Umbraco.Workflow.Automate
No further wiring is required — the composer is auto-discovered by Umbraco's composition system.
Requirements
- .NET 10.0
- Umbraco CMS 18.x
- Umbraco Workflow 18.x
- Umbraco.Automate 18.0+
Triggers
Fire an Automate flow when something happens in Workflow.
Workflow Lifecycle
| Trigger | Fires when… |
|---|---|
| Workflow Started | A new workflow instance is created |
| Workflow Completed | A workflow instance completes successfully |
| Workflow Approved | A workflow approval step is approved |
| Workflow Rejected | A workflow approval step is rejected |
| Workflow Cancelled | A workflow instance is cancelled |
| Workflow Resubmitted | A rejected workflow is resubmitted for approval |
Tasks
| Trigger | Fires when… |
|---|---|
| Task Assigned | A new approval task is created and assigned to a group |
Emails
| Trigger | Fires when… |
|---|---|
| Workflow Email Sent | A workflow notification email is sent |
| Reminder Emails Sent | Reminder emails are sent to pending approvers |
Content Reviews
| Trigger | Fires when… |
|---|---|
| Content Review Completed | A content review is completed |
Trigger Outputs
Workflow Started / Approved / Rejected / Cancelled / Resubmitted
| Property | Type | Description |
|---|---|---|
NodeId |
int |
The node ID of the content being approved |
EntityKey |
Guid? |
The unique key of the content entity |
WorkflowType |
string |
"Publish" or "Unpublish" |
WorkflowStatus |
string |
Current status (e.g. "PendingApproval", "Approved") |
AuthorUserId |
Guid |
The user who initiated the workflow |
AuthorComment |
string |
Comment left by the author |
Culture |
string |
The culture variant (empty string for invariant) |
TotalSteps |
int |
Total number of approval steps |
CreatedDate |
DateTime |
When the workflow was started |
Workflow Completed
All properties from above, plus:
| Property | Type | Description |
|---|---|---|
CompletedDate |
DateTime? |
When the workflow finished |
Task Assigned
| Property | Type | Description |
|---|---|---|
ApprovalStep |
int |
The step index (0-based) |
GroupId |
Guid? |
The approval group assigned to this task |
WorkflowInstanceGuid |
Guid |
The workflow instance this task belongs to |
TaskType |
string |
The task status type |
Workflow Email Sent
| Property | Type | Description |
|---|---|---|
EmailType |
string |
Type of email (e.g. "ApprovalRequest", "ApprovedNotification") |
RecipientCount |
int |
Number of recipients |
RecipientEmails |
IEnumerable<string> |
Recipient email addresses |
Reminder Emails Sent
| Property | Type | Description |
|---|---|---|
InstanceCount |
int |
Number of workflow instances reminders were sent for |
TaskCount |
int |
Number of pending tasks across all instances |
Content Review Completed
| Property | Type | Description |
|---|---|---|
DocumentKey |
string |
The unique key of the reviewed document |
DocumentName |
string |
The name of the reviewed document |
DueOn |
DateTime |
When the content review was due |
ReviewedOn |
DateTime |
When the content review was completed |
Usage Examples
Notify a Slack channel when a workflow is rejected
Trigger: Workflow Rejected
→ Action: Post Slack message to #content-team
"Workflow rejected for node {NodeId}: {AuthorComment}"
Log all completed publish workflows
Trigger: Workflow Completed
→ Condition: WorkflowType == "Publish"
→ Action: Write to external log
"Published by {AuthorUserId} after {TotalSteps} steps"
React when a specific approval group is assigned
Trigger: Task Assigned
→ Condition: GroupId == "your-group-guid"
→ Action: Send notification to group members
How It Works
Umbraco Workflow publishes notifications directly through Umbraco CMS's standard IEventAggregator (as INotification), so triggers subscribe to Workflow notifications natively — no bridge handlers are required. WorkflowAutomateComposer is minimal and exists only to ensure the assembly is discovered by Umbraco.
Development
dotnet restore
dotnet build
dotnet test
Project layout
src/
Umbraco.Workflow.Automate/ # Package source
Triggers/ # Automate triggers
Triggers/Outputs/ # Trigger output types
tests/
Umbraco.Workflow.Automate.Tests.Unit/
License
MIT — see LICENSE for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Umbraco.Automate.Core (>= 18.0.0 && < 18.999.999)
- Umbraco.Workflow.Core (>= 18.0.0 && < 18.999.999)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 18.0.0 | 142 | 7/9/2026 |
| 18.0.0-beta | 121 | 6/25/2026 |
| 17.0.0 | 491 | 7/9/2026 |
| 17.0.0-beta | 102 | 6/10/2026 |