Email Template Variable Rendering Issue — Dynamic Content Appearing at Bottom of Email
This article explains why variable content appears at the bottom of an email instead of inline, how to investigate and confirm the root cause using SEP Portal and EONS2, and the correct variable symbol syntax. Intended for internal support agents handling Ameren email template rendering tickets.
| Reference Ticket #25589 | Customer Ameren | Tools SEP Portal | EONS2 |
Overview
The customer reported that their Production email template was showing variable content (phone numbers) at the bottom of the email body instead of rendering inline after the colon (:) where the variable placeholder is defined. The issue was visible across multiple email clients and also in the CRM message history PDF preview, confirming it was not a client-side rendering problem.
Template details for this reported ticket (for reference only):
Type: MAINTENANCE | Subtype: PHONE_MODIFIED | Channel: Email | Environment: Production | Company: Illinois
What the Email Should Look Like (Correct vs Actual)
✅ Correct rendering — phone numbers appear inline after the colon:
Screenshot 1 — Correct rendering. Phone numbers appear inline directly after the colon (:) in the correct position.
❌ Incorrect rendering (Outlook) — phone numbers pushed to the bottom of the email:
Screenshot 2 — Incorrect rendering in Outlook. Phone numbers pushed to the bottom of the email instead of displaying inline.
❌ Incorrect rendering (Mobile) — phone numbers pushed to the bottom:
Screenshot 3 — Incorrect rendering on Mobile. Same issue visible on mobile email clients.
Important Note — Scope of This Article
This issue is NOT limited to Type: MAINTENANCE / Subtype: PHONE_MODIFIED only. It can occur with ANY template Type and Subtype, depending on how the customer's template source has been saved in the SEP portal.
Whenever a customer reports that variables or dynamic content are not rendering correctly in their email, always check the variable symbols in the template source as the first step of investigation.
Root Cause
The template stored in the SEP portal was using the hash ( # ) symbol to wrap variable placeholders instead of the required caret ( ^ ) symbol. EONS only recognizes variables enclosed in caret ( ^ ) symbols. When hash ( # ) is used, the variables are not parsed correctly and the content is pushed to the bottom of the rendered email.
| Status | Variable Syntax | Result |
|---|---|---|
| ❌ Incorrect |
#PhoneNumberActionText# #PhoneNumberList#
|
Variables not recognized — content pushed to bottom of email |
| ✅ Correct |
^PhoneNumberActionText^ ^PhoneNumberList^
|
Variables recognized — content renders inline correctly |
Key Rule — Applies to ALL Templates: EONS requires ALL variables to be wrapped in caret ( ^ ) symbols — e.g., ^VariableName^. Using hash ( # ) symbols causes variables to not be recognized and dynamic content will render in the wrong position in the final email.
Prerequisites
Before you begin, ensure you have the following:
- Access to SEP Portal at https://amrn-rp.mbdt01.com/templates/list/
- Access to Ameren EONS2 Portal at https://amereneons.mbdt01.com/dashboard/campaigns
- The Type and Subtype of the affected template from the customer's ticket
- The customer's template HTML source code (copied from SEP portal)
Step-by-Step Instructions
Follow these steps to investigate and confirm the variable rendering root cause:
-
Step 1 — Locate the Template in SEP Portal: Log in to the SEP portal at https://amrn-rp.mbdt01.com/templates/list/. In the left-hand menu, click Script Management, then click Script Templates.
Screenshot 4 — Navigate to Script Management Script Templates in the left menu.
Use the Type filter to select the Type reported by the customer (e.g., MAINTENANCE). This filters the list to show only matching templates.
Screenshot 5 — Type filter set to MAINTENANCE. Use the Type value reported by the customer.
Find the row matching the Subtype reported by the customer (e.g., PHONE_MODIFIED). Click the pencil (edit) icon in the Actions column.
Screenshot 6 — Locate the correct Subtype row and click the pencil icon in the Actions column.
The Script History page will open. Under the Active section, click the pencil icon to open the Email Editor.
Screenshot 7 — Script History page. Click the pencil icon under Active to open the Email Editor.
The Email Editor will open. Review the template and check whether variables are using hash ( # ) or caret ( ^ ) symbols.
Screenshot 8 — Email Editor showing #PhoneNumberActionText# — incorrect hash (#) symbols used instead of caret (^).
-
Step 2 — Prepare a Test Dataset (CSV File): To test the template in EONS, you need a CSV dataset file that matches the variable names used in the customer's template.
💡 Tip — Reuse an Existing Dataset: Instead of creating a new CSV file from scratch, go to Data > View Datasets in the EONS2 portal, find a dataset with similar structure, download it, and modify the column names and data to match the current template requirements.
Update the columns and data values to match the variable names in the customer's template. Example columns for this ticket: Device Type, Device (test email address), PhoneNumberActionText, PhoneNumberList, PrimaryEmailAddress, acctNum, Current Year. Save the file in .csv format.
Screenshot 9 — Modified CSV file. Columns updated to match the variable names found in the customer's template.
-
Step 3 — Upload the Test Dataset in EONS2: Log in to the EONS2 portal at https://amereneons.mbdt01.com/dashboard/campaigns. In the left-hand menu, expand the Data section and click Upload Dataset.
Screenshot 10 — EONS2 — expand Data menu and click Upload Dataset.
Step 1 — Basic Information: Enter a Dataset Name (e.g. Test Ameren), set Permission Level, then click Next.
Screenshot 11 — Step 1. Enter dataset name and permission level, then click Next.
Step 2 — Upload your data: Drag and drop your CSV file or click to upload. Confirm the filename appears, then click Next.
Screenshot 12 — Step 2. Upload the CSV file, confirm it appears on the right, then click Next.
Step 3 — Map your data: Match each CSV column to the correct dataset column type, then click Next.
Screenshot 13 — Step 3. Map each CSV column to its corresponding dataset column type.
Step 4 — Confirm Details: Review the summary of all mapped columns and click Finish.
Screenshot 14 — Step 4. Review summary and click Finish to create the dataset.
Go to Data > View Datasets to confirm the dataset was created successfully.
Screenshot 15 — View Datasets. New dataset showing with status 'Created'.
-
Step 4 — Create a Test Ad Hoc Campaign in EONS2: In the left-hand menu, expand Campaigns and click Create Ad Hoc Campaign.
Screenshot 16 — Campaigns Create Ad Hoc Campaign in the left menu.
Step 1 — Basic Information: Fill in: Campaign Name (e.g. Test Ameren), Select Folder (no sub-folder), Select Dataset (just uploaded), Billing Division (Illinois), Permissions (Private), Message Types (Email). Click Next.
Screenshot 17 — Campaign Step 1. Fill in all required fields and click Next.
-
Step 5 — Paste the Customer Template & Identify the Issue: Proceed to Step 2C — Email Config. Select IL - Ad Hoc Template from the Template dropdown. Then click the Source button in the editor toolbar.
Screenshot 18 — Step 2C Email Config. Select the template and click the Source button.
In HTML source view, select all existing content and replace it by pasting the customer's template HTML copied from the SEP portal Email Editor.
Screenshot 19 — HTML source view. Paste the customer's template source code here.
After pasting, check the Variables Identified section below the editor. It will show "No variables found" — confirming EONS cannot detect the variables because hash (#) symbols are used.
Screenshot 20 — 'No variables found'. EONS cannot detect variables because # symbols are used instead of ^.
-
Step 6 — Confirm the Root Cause ( # vs ^ ): Click the Source button again to return to HTML editing mode. In the HTML source, locate all variable placeholders using hash (#) symbols. Replace them with caret (^) symbols on both sides:
Incorrect:#PhoneNumberActionText#and#PhoneNumberList#
Correct:^PhoneNumberActionText^and^PhoneNumberList^
After replacing all # with ^, the Variables Identified section will now correctly show all detected variables.Screenshot 21 — After replacing # with ^ — all variables now correctly detected by EONS2.
Fill in the Email Subject and confirm the Sender Information.
Screenshot 22 — Email subject and sender info filled in. All variables showing correctly.
-
Step 7 — Map Variables & Send Test Email to Confirm: Proceed to Step 3 — Map Variables. For each variable, select the matching column from the uploaded dataset.
Screenshot 23 — Step 3 Map Variables. Map each variable to its corresponding dataset column.
Preview the email in EONS2 to confirm the template renders correctly with content in the correct inline position.
Screenshot 24 — EONS2 email preview. Phone numbers now displaying correctly inline.
Send a sample test email and verify the rendering in actual email clients.
Test result — Outlook:Screenshot 25 — Test email in Outlook. Phone numbers displaying correctly in the right position.
Test result — Gmail:
Screenshot 26 — Test email in Gmail. Phone numbers displaying correctly in the right position.
✅ Root cause confirmed — replacing # with ^ in the template source resolves the rendering issue across all tested email clients.
⚠ Important: This test was performed in our environment ONLY to identify and confirm the root cause. NO changes have been made to the Production template. Coordinate with TAM (Eric) and Engineering before reaching out to the customer.
Troubleshooting & Common Issues
If you encounter issues while following the steps above, refer to this table for quick solutions.
| Symptom / Error | Root Cause | How to Fix It |
|---|---|---|
| Dynamic content appears at bottom of email instead of inline | Template source uses hash (#) instead of caret (^) for variable placeholders. | Check template source in SEP portal. Replace all #VariableName# with ^VariableName^. |
| EONS2 shows "No variables found" after pasting template | Hash (#) symbols used — EONS2 does not recognize them as variable delimiters. | Replace all # symbols with ^ in the HTML source view, then check the Variables Identified section again. |
| Issue visible on mobile and web but not on Outlook Desktop | Outlook Desktop may render the email differently in some cases, but the root cause is still in the template source. | Do not assume the template is correct based on Outlook Desktop. Always check and fix the template source (#→^). |
| Issue occurs on a different template type/subtype | This issue is not limited to MAINTENANCE/PHONE_MODIFIED — it can occur in any template. | Follow the same investigation steps. Check the template source in SEP portal for # symbols and replace with ^. |
Guidelines
What to Avoid
- ✕Do not assume the issue is limited to MAINTENANCE / PHONE_MODIFIED — this can occur with ANY template Type and Subtype.
- ✕Do not make any changes to the Production template — the investigation is done in a test environment only.
- ✕Do not reach out to the customer with a resolution before confirming with TAM (Eric) and Engineering.
- ✕Do not assume Outlook Desktop rendering is correct — always check the template source regardless of how it displays in one client.
Next Steps
- Engineering team and Technical Account Manager (Eric) to review the findings and coordinate the fix for the Production template.
- Verify that the Production template source is updated to use caret ( ^ ) symbols for all variable placeholders (not hash #).
- Re-test with a sample email after the Production template is updated to confirm the fix works end-to-end.
- Only after confirmation from Engineering and TAM, reach out to the customer with the resolution.
Frequently Asked Questions (FAQs)
Q: Does this issue only happen with the MAINTENANCE / PHONE_MODIFIED template?
A: No. This issue can occur in ANY template regardless of Type or Subtype. The Type and Subtype in this article are used only as a reference based on the reported ticket. Whenever a customer reports that dynamic content is not rendering in the correct position, always check the variable symbols in the template source as the first step.
Q: Why does the email look correct in Outlook Desktop but wrong on mobile and other clients?
A: Outlook Desktop may handle some rendering differences internally. However, the root cause is still in the template source. The fix must always be applied at the template level — do not use Outlook Desktop as the benchmark for correctness.
Q: Can the Support team fix the Production template directly?
A: No. The Support team's role is to investigate and confirm the root cause only. No changes should be made to the Production template without coordination with the Engineering team and Technical Account Manager (Eric).
References & Related Tickets
For internal team use: Reference past Jira or Zendesk tickets related to this article.
- ZD-25589 Ameren ticket — variable content (phone numbers) rendering at bottom of email instead of inline. Root cause: hash (#) symbols used instead of caret (^) in template source.
- SEP Portal Ameren SEP Portal (Report Dashboard): https://amrn-rp.mbdt01.com/templates/list/
- EONS2 Portal Ameren EONS2 Portal: https://amereneons.mbdt01.com/dashboard/campaigns
Agent511 Knowledge Base · Confidential · For internal support use only
Comments
0 comments
Please sign in to leave a comment.