Umbraco Workflow triggers for Umbraco Automate.
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.
- 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
dotnet add package Umbraco.Workflow.AutomateNo further wiring is required — the composer is auto-discovered by Umbraco's composition system.
- .NET 10.0
- Umbraco CMS 18.x
- Umbraco Workflow 18.x
- Umbraco.Automate 18.0+
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 |
| 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 |
All properties from above, plus:
| Property | Type | Description |
|---|---|---|
CompletedDate |
DateTime? |
When the workflow finished |
| 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 |
| Property | Type | Description |
|---|---|---|
EmailType |
string |
Type of email (e.g. "ApprovalRequest", "ApprovedNotification") |
RecipientCount |
int |
Number of recipients |
RecipientEmails |
IEnumerable<string> |
Recipient email addresses |
| Property | Type | Description |
|---|---|---|
InstanceCount |
int |
Number of workflow instances reminders were sent for |
TaskCount |
int |
Number of pending tasks across all instances |
| 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 |
Trigger: Workflow Rejected
→ Action: Post Slack message to #content-team
"Workflow rejected for node {NodeId}: {AuthorComment}"
Trigger: Workflow Completed
→ Condition: WorkflowType == "Publish"
→ Action: Write to external log
"Published by {AuthorUserId} after {TotalSteps} steps"
Trigger: Task Assigned
→ Condition: GroupId == "your-group-guid"
→ Action: Send notification to group members
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.
dotnet restore
dotnet build
dotnet testsrc/
Umbraco.Workflow.Automate/ # Package source
Triggers/ # Automate triggers
Triggers/Outputs/ # Trigger output types
tests/
Umbraco.Workflow.Automate.Tests.Unit/
MIT — see LICENSE for details.
