London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

Santosh Achanta
Jan 27, 2013
  5247
(1 votes)

Tailoring workflows for EPiServer 5, 6 and 7

We have enabled out of the box Sequential workflow for one of our customers, the workflow starts when an editor modify or create a page and push 'Ready to Publish' button. Then an approver receives the workflow email and by default the email is from 'task@<hosturl>' if from address is not set up in web.config SMTP settings. So, I have digged into EPiServer.WorkflowFoundation.dll to see why it is happening and found that when a workflow is triggered, it creates a task and use the method SendMail(string fromUser, string toUser, string mailSubject) in EPiServer.Personalization.Task in EPiServer.dll to send email to approvers and by default it look for current user's email id which is not valid in this case as the workflows executes in own threads separate from the thread serving the request and hence the from email address is the fallback one which is 'task@<hosturl>' all the time. Our customer wants the from email address to be the editor’s email address so that the approver knows from the email who actually the editor of the page is.

Solution for this is, get the code for the sequential approval workflow. In there they should locate the activities named “initializeApprovalState” and “InitializeUpdateState”. Inside these there is an activity called “createApprovalTask” and “createOwnerTask” respectively, if these activities are marked and select view properties, a property “NotifyByEmail” can be set to false. Then the builtin email will not be sent.

Then before or after the “createApprovalTask” and “createOwnerTask” activities you can drag in one “SendEmailActivity” in that activity where you can then control how the outgoing email should look like.

See this post for downloading workflow code http://world.episerver.com/Blogs/Johan-Bjornfot/Dates1/2011/8/Source-code-for-the-CMS6R2-built-in-workflows/.

See this post for the steps to get the workflows loaded properly http://geekswithblogs.net/SoftwareDoneRight/archive/2008/01/19/howto-set-up-your-project-for-windows-workflow-c-style.aspx.

This blog post applies for workflows in EPiServer 5, 6 and 7 versions and hopefully workflows in the product will be modified and implement this in mere future.

Let me know if someone is after the same requirement and code for this implementation as I did this already.

Jan 27, 2013

Comments

Please login to comment.
Latest blogs
Identifying Spike Requests and Issues in Application Insights

Sometimes within the DXP we see specific Azure App Instances having request spikes causing performance degredation and we need to investigate. I fi...

Scott Reed | Apr 25, 2025

Optimizely Frontend Hosting Beta – Early Thoughts and Key Questions

Optimizely has opened the waitlist for its new Frontend Hosting capability. I’m part of the beta programme, but my invite isn’t due until May, whil...

Minesh Shah (Netcel) | Apr 23, 2025

Developer Meetup - London, 21st May 2025

The London Dev Meetup has been rescheduled for Wednesday, 21st May and will be Candyspace 's first Optimizely Developer Meetup, and the first one...

Gavin_M | Apr 22, 2025

Frontend hosting for PaaS & SaaS CMS

Just announced on the DXP, we FINALLY have a front end hosting solution coming as part of the DXP for modern decoupled solutions in both the PaaS a...

Scott Reed | Apr 22, 2025

Routing to a page in SaaS CMS

More early findings from using a SaaS CMS instance; setting up Graph queries that works for both visitor pageviews and editor previews.

Johan Kronberg | Apr 14, 2025 |

Developer Meetup - London, 24th April 2025

Next Thursday, 24th April will be Candyspace 's first Optimizely Developer Meetup, and the first one held in London this year! We've have some...

Gavin_M | Apr 14, 2025