Has anyone here successfully implemented Umbraco Workflow with a multilingual site? We have a client that has a team spread out across the globe and is attempting to use Workflow to centralize their content governance. After going through several twists and turns (licensing, SMTP setup, initial config), we got it working except now the notifications are spliced and sending numerous notifications from each region when we only need one. We are pretty new to the tool so any tips or tricks would be appreciated - TIA!
Hey Sjhannemann,
good news, what you’re seeing is almost certainly by design rather than a broken setup. On variant (multilingual) content, when you submit several languages at once, Umbraco Workflow starts a separate workflow process for each variant, and each one fires its own notification, so with a global team you get that “spliced,” one-email-per-region effect
A few things to try, roughly in order
Use an invariant workflow, In the Request-publish overlay you can submit all variants as one invariant process instead of picking individual cultures, they’re then approved in a single workflow with a single set of notifications. Heads-up from the docs: invariant workflows use the default language’s permissions, require you to have edit rights on all variants, nd will republish any currently-unpublished variants, so test it on a staging node first
Consolidate your approval groups. If every language variant inherits the same regional group from the default language, that group gets pinged once per variant. A single central “governance” group (optionally with a Group Email inbox set on the group) collapses that. Also check Settings → Notification, by default every event emails the whole Group; you can narrow it (e.g. cancelled/rejected → Author only) and set Reminder delay = 0 to kill reminder spam
If you need per-region sign-off but only one email, config alon won’t merge separate processes, you’d handle WorkflowEmailNotificationsSendingNotification (in Umbraco.Workflow.Core.Notifications) in a small notification handler nd CancelOperation() / de-dupe there
Thank you! I have given this to my dev team to look through. Really appreciate it.