web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

No record found.

News and Announcements icon
Community site session details

Community site session details

Session Id :
Finance | Project Operations, Human Resources, ...
Suggested Answer

Workflow email template placeholders in Dynamics 365 FO (AX) – any others?

(2) ShareShare
ReportReport
Posted on by 19

I am working on a Purchase Order Approval Workflow in Microsoft Dynamics 365 Finance and Operations. I am trying to customize the email template (Email ID), but I have encountered two main challenges regarding the email body:

  1. Specific Placeholders: In the Email ID (HTML) template, I can only use standard placeholders like %message%, %subject%, and %for%. I want to use more specific fields like Vendor Account (%PurchTable.VendAccount%) directly in the HTML body of the email template, but they are not being rendered and appear as plain text in the received emails.

  2. Dynamic Line Items: My purchase orders usually contain multiple lines. I need to display these lines (Item Name, Quantity, Unit, and Price) in a dynamic HTML table within the email notification. Since the standard email editor doesn't seem to support loops (foreach) or dynamic tables, what is the best practice to achieve this within the workflow framework?

Is there a standard way to make these specific placeholders work in the Email ID template, or is there a recommended method to inject a dynamic table into the %message% tag?

Best Regards

I have the same question (0)
  • Suggested answer
    Adis Profile Picture
    6,597 Super User 2026 Season 1 on at
    Hey,
     
    Unfortunately, the email body (template) is very limited. One way to meet your requirement is to use Power automate (PA) to send emails. You are quite flexible with PA and dont need a code release in case you change something - at least when it comes to the email part. 
     
    Now the question is how to get the data from F&O to PA. Either by a dataverse connection using virtual enties, which is the most flexible way. You need to establish a dataverse connection and create the flow, no code release. However, you need to check if the virtual entities does support all the tables you need to access.
    Another method is creating business events, which sends data to PA which you can pick up and create an email out of it. This approach gives you more control as you can develop whatever you need, however, if you miss something or requirements change, you need a code release.
     
    A third option worth mentioning and investigating is to use ISV solutions. I know that Free Edition - Docentric AX offers a lot in the free edition, especially when it comes to email templates. I am not making advertising here, just want to add a solution (approach).
     

    Kind regards, Adis

     

    If this helped, please mark it as "Verified" for others facing the same issue

    Keep in mind that it is possible to mark more than one answer as verified

  • Suggested answer
    Diego Mancassola Profile Picture
    768 on at
    Agree with Adis, in addition i suggest you to use standard business events.
     
    If you check in the business events list you can find action related to each workflow in the system you have create. You can use these to integrate a Power Automate and build a custom mail body as suggested, reading data from FO using simply ODATA.
     
    You can complex as you want if your requirements needs a custom scenario.
     
    Check it out on catalog.
     
     
     
  • Suggested answer
    Anton Venter Profile Picture
    20,656 Super User 2026 Season 1 on at
    Hi,
     
    I would like to share my experience from past development adventures, perhaps it's helpful.
     
    There are some standard placeholders for sending emails from F&O using templates but when those are not enough and you need more, you could add your own placeholders with a X++ code customization.
     
    Have a look at sendMail method of the SysEmailTable, or SysEmailSysTable. One of the arguments in this method is a Map object for the placeholders or "mappings". You could add your mappings when this method is called. You will have to add those customer placeholders in your email template as well.
     
    To create a HTML table with dynamic rows.
     
    In the email body, you could use XSLT template (instead of pure HTML) to create a dynamic table. See, the SysEmailSysTable send method, the system does a transformation depending on the template type passing it XML data and the XSLT template. The XML data must also contain the required data. In my case, sales order data.
     
    XSLT email template header (incomplete). This type of template can be used instead of regular HTML.
     
     
     
     
     
     
     
     
     
     
     
     
    With a XSLT for-each statement, the transformation will use the XML data and create dynamic HTML table rows.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Stars!

Meet the Microsoft Dynamics 365 Contact Center Champions

We are thrilled to have these Champions in our Community!

Congratulations to the March Top 10 Community Leaders

These are the community rock stars!

Leaderboard > Finance | Project Operations, Human Resources, AX, GP, SL

#1
Giorgio Bonacorsi Profile Picture

Giorgio Bonacorsi 616

#2
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 460 Super User 2026 Season 1

#3
Syed Haris Shah Profile Picture

Syed Haris Shah 331 Super User 2026 Season 1

Last 30 days Overall leaderboard

Product updates

Dynamics 365 release plans