We are planning to store email templates for SP 2010 Designer Workflows in a SharePoint list. The emails which the workflow will send out will contain dynamic content, for e.g. Current user's name, data from some list column in the current list item, etc.

Whenever an email is to be sent from the workflow, the email template will be read from the list and the required template will be fetched. Each template will be stored in a Multiple Lines of Text field.

The challenge that we are facing is when we try to replace the dynamic tokens since we do not have an action for replacing strings (Custom workflow activitiy needs to be avoided).

We tried storing the template containing tokens like [%Workflow Context:Current User%], etc. in the SharePoint list field. But, when the email gets sent, we see blank values.

For e.g. this

Hello [%Workflow Context:Current User%],

Some email body.

Email Footer

gets converted to this

Hello ,

Some email body.

Email Footer

I have done something similar in SharePoint 2007, but, not sure why this is not working in SharePoint 2010.

Any pointers will be helpful.

Thanks in advance.

  • any updates on this? did you get this working?
    – Aventus
    Commented Sep 28, 2016 at 9:09

3 Answers 3


If email body is generic, use two sections in your email. For example, the "Hello, [%User%]" could be in string in send email function and the rest of the email template while the rest of the template is a lookup.

Your description does not tell if you need dynamic string in the email body. Though not pretty, you could use the same methodology to build a dynamic string email with multiple lookups.


As per your requirement there is some project called SPEmailUtility on codeplex

The project is located at codeplex at https://spemailutility.codeplex.com.

Check this blog :- http://sharepoint247.wordpress.com/2013/05/24/handy-email-utility-for-any-sharepoint-project/


I had to do something similar for an onboarding workflow. What I did was add another field to the list that gave the positions of where the substrings started and ended. For example, if the field had 05;15;52;72, that meant the first substring was 5 characters long, the second substring started at location 15 and was 52 characters long, and the third substring started at position 72.

I could then use the existing substring controls in the workflow to build up the text from the list template data.

And example of my text started with: Dear . IT has received a request....

Dear space was the 5 characters, and I skipped over the placeholder to start the next substring at the .

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.