Saviynt unveils its cutting-edge Intelligence Suite products to revolutionize Identity Security!
Click HERE to see how Saviynt Intelligence is transforming the industry.
Saviynt Copilot Icon

unable to recive a mail when using the table

Karan07
New Contributor
New Contributor

Iam reaching out regarding an issue with our email template configuration. Our current HTML template works correctly without tables, but as soon as we incorporate tables for displaying dynamic data (like user background verification status and support ticket summaries), the email fails to send or render correctly. This table is essential for displaying detailed user information and support ticket updates.

I’ve checked for common issues, such as CSS syntax and HTML structure, but it appears the issue may be related to how Saviynt processes or renders HTML tables within email templates. Could you please assist in resolving this, or let me know if there are specific formatting requirements we need to follow to make this work?

 

SELECT u.username As 'username', u.firstname AS 'First Name' ,u.lastname AS 'Last Name', DATE_ADD(u.startdate, INTERVAL 60 DAY) AS 'expirydate' FROM users u LEFT JOIN users manager ON u.manager = manager.userkey WHERE ( u.customproperty37 is null OR u.customproperty37 != 'YES') and u.employeetype= 'Contractor' AND u.startdate IN ( DATE_SUB(CURDATE(), INTERVAL 55 DAY), DATE_SUB(CURDATE(), INTERVAL 10 DAY), DATE_SUB(CURDATE(), INTERVAL 3 DAY), DATE_SUB(CURDATE(), INTERVAL 9 DAY), DATE_SUB(CURDATE(), INTERVAL 60 DAY), DATE_SUB(CURDATE(), INTERVAL 10 DAY), DATE_SUB(CURDATE(), INTERVAL 60 DAY) );

 

Template 

<!DOCTYPE html>


<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>BGV Verification</title>
</head>
<style>
{
font-family: Arial, sans-serif;
background-color: #f4f4f4;
}

.container {
width: 100%;
margin: 0 auto;
background-color: #ffffff;
padding: 20px;
}

.header-table {
width: 100%;
background-color: #e1e1e1;
}

.header-table td {
padding: 10px;
}

.content-table {
width: 100%;
margin: 20px 0;
border-collapse: collapse;
text-align: left;
}

.content-table th, .content-table td {
border: 1px solid #ddd;
padding: 8px;
}

.content-table th {
background-color: #f2f2f2;
font-weight: bold;
}

.footer {
margin-top: 20px;
text-align: center;
font-size: 12px;
color: #555;
}
</style>
</head>

<body>
<div class="container">
<!-- Header Section -->
<table class="header-table" border="0">
<tr>
<td align="left">
<img src="img url" alt="removed" width="100" />
</td>
<td align="right">
<img src="img url " alt="removed" width="60" height="60" />
</td>
</tr>
</table>

<h3>Dear Manager,</h3>
<p>This email serves to highlight the outstanding background verification (BGV) status of user. As per company policy, the BGV process must be completed within 90 days of onboarding. Failure to do so will unfortunately result in the automatic deactivation of user accounts.
A list of users with pending BGV is attached to this email for your reference. We kindly request that you prioritize the completion of their verifications to ensure continued access to company resources and systems.</p>

<table class="content-table" border="1">
<thead>
<tr>
<th>Username</th>
<th>First Name</th>
<th>Last Name</th>
<th>Expiry Date</th>
</tr>
</thead>
<tbody>
<tr>
<td>${ANALYTICSDATA.username[0]}</td>
<td>${ANALYTICSDATA['First Name'][0]}</td>
<td>${ANALYTICSDATA['Last Name'][0]}</td>
<td>${ANALYTICSDATA['expirydate'][0]}</td>
</tr>
</tbody>
</table>
</body>

</br></br>
Regards,</br>
Removed
</body>
</html>

 

The Template is Working Without add the table i aint unable to understand cuz same template is working in DEV i dont where it wrong please help me to resolve the issue

 

 

 

Thank you for your attention to this matter. I look forward to your guidance.

[This message has been edited by moderator to mask sensitive information]

12 REPLIES 12

NM
Esteemed Contributor
Esteemed Contributor

@Karan07 is group email via username ticked in global config?


If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'

Karan07
New Contributor
New Contributor

yes it is i checked that 

NM
Esteemed Contributor
Esteemed Contributor

@Karan07 did you tick advance HTML and CSS config in email template?


If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'

rushikeshvartak
All-Star
All-Star

Validate below content

<table border="1" width="100%">
  <tr>
    <th>Username</th><th>First Name</th><th>Last Name</th><th>Expiry Date</th>
  </tr>
  <tr>
    <td>${ANALYTICSDATA.username[0]}</td>
    <td>${ANALYTICSDATA['firstname'][0]}</td>
    <td>${ANALYTICSDATA['lastname'][0]}</td>
    <td>${ANALYTICSDATA['expirydate'][0]}</td>
  </tr>
</table>

SELECT u.username As 'username', u.firstname AS 'firstname' ,u.lastname AS 'lastname', DATE_ADD(u.startdate, INTERVAL 60 DAY) AS 'expirydate' FROM users u LEFT JOIN users manager ON u.manager = manager.userkey WHERE ( u.customproperty37 is null OR u.customproperty37 != 'YES') and u.employeetype= 'Contractor' AND u.startdate IN ( DATE_SUB(CURDATE(), INTERVAL 55 DAY), DATE_SUB(CURDATE(), INTERVAL 10 DAY), DATE_SUB(CURDATE(), INTERVAL 3 DAY), DATE_SUB(CURDATE(), INTERVAL 9 DAY), DATE_SUB(CURDATE(), INTERVAL 60 DAY), DATE_SUB(CURDATE(), INTERVAL 10 DAY), DATE_SUB(CURDATE(), INTERVAL 60 DAY) );


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

i have the updated the query still its not working 

 

2024-11-04T06:25:34.713+00:00 ecm null-wgs4t 2024-11-04T06:25:33.840956874Z stdout F 2024-11-04 06:25:33,840 [http-nio-8080-exec-97] DEBUG analytics.AnalyticsESService - Response : 2
2024-11-04T06:25:34.713+00:00 ecm null-wgs4t 2024-11-04T06:25:33.840961421Z stdout F 2024-11-04 06:25:33,840 [http-nio-8080-exec-97] DEBUG analytics.AnalyticsESService - Exit runControlWithVolatileTrigger method...
2024-11-04T06:25:34.713+00:00 ecm null-wgs4t 2024-11-04T06:25:33.840966185Z stdout F 2024-11-04 06:25:33,840 [http-nio-8080-exec-97] DEBUG analytics.AnalyticsESService - Exit from runControlWithConfigCheck...
2024-11-04T06:25:34.713+00:00 ecm null-wgs4t 2024-11-04T06:25:33.840998864Z stdout F 2024-11-04 06:25:33,840 [http-nio-8080-exec-97] DEBUG analytics.AnalyticsHistoryESController - returned from analyticsESService.runControl for configKey 1889
2024-11-04T06:25:34.713+00:00 ecm null-wgs4t 2024-11-04T06:25:33.841102919Z stdout F 2024-11-04 06:25:33,841 [http-nio-8080-exec-97] DEBUG analytics.AnalyticsHistoryESController - runningV2ControlList in runControlAction -- null
2024-11-04T06:25:34.713+00:00 ecm null-wgs4t 2024-11-04T06:25:33.841134617Z stdout F 2024-11-04 06:25:33,841 [http-nio-8080-exec-97] DEBUG analytics.AnalyticsHistoryESController - Total time taken to run control (ms) = 15104
2024-11-04T06:25:31.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:30.85548399Z stdout F 2024-11-04 06:25:30,855 [Thread-2851] DEBUG services.EmailerService - Email Sent headers from: [ia*@zee.com]
2024-11-04T06:25:31.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:30.8555037Z stdout F 2024-11-04 06:25:30,855 [Thread-2851] DEBUG services.EmailerService - Mail Sent
2024-11-04T06:25:31.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:30.855510939Z stdout F 2024-11-04 06:25:30,855 [Thread-2851] DEBUG services.HttpClientUtilityService - called api...
2024-11-04T06:25:31.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:30.85551275Z stdout F 2024-11-04 06:25:30,855 [Thread-2851] DEBUG services.HttpClientUtilityService - timeout validated for api...
2024-11-04T06:25:31.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:30.855514327Z stdout F 2024-11-04 06:25:30,855 [Thread-2851] DEBUG services.HttpClientUtilityService - got response for api...
2024-11-04T06:25:31.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:30.85572571Z stdout F 2024-11-04 06:25:30,855 [Thread-2851] DEBUG services.EmailerService - Email Sent headers from: [ia*@zee.com]
2024-11-04T06:25:31.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:30.855728178Z stdout F 2024-11-04 06:25:30,855 [Thread-2851] DEBUG services.EmailerService - Mail Sent
2024-11-04T06:25:31.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:30.855747715Z stdout F 2024-11-04 06:25:30,855 [Thread-2851] DEBUG services.EmailerService - Ended sendMailNew
2024-11-04T06:25:31.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:30.855759327Z stdout F 2024-11-04 06:25:30,855 [Thread-2851] DEBUG analytics.AnalyticsESService - Email Sent
2024-11-04T06:25:31.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:30.855763173Z stdout F 2024-11-04 06:25:30,855 [Thread-2851] DEBUG analytics.AnalyticsESService - Send Email is successful - 2
2024-11-04T06:25:29.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:29.406397355Z stdout F 2024-11-04 06:25:29,406 [quartzScheduler_Worker-10] DEBUG services.SaviyntGuardRailService - final CallBackResponse returning, errorCode= 0 , rollBack = false
2024-11-04T06:25:29.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:29.40652756Z stdout F 2024-11-04 06:25:29,406 [quartzScheduler_Worker-10] DEBUG analytics.AnalyticsESService - dataProcessMap.lastQueryExecutionTime 0.015
2024-11-04T06:25:29.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:29.406609495Z stdout F 2024-11-04 06:25:29,406 [quartzScheduler_Worker-10] DEBUG analytics.AnalyticsESService - main query execution complete
2024-11-04T06:25:29.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:29.414792605Z stdout F 2024-11-04 06:25:29,414 [quartzScheduler_Worker-10] DEBUG analytics.AnalyticsESService - paramsMap.historyKey 192c8bc9143245eda30e8831481bc277
2024-11-04T06:25:29.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:29.414794777Z stdout F 2024-11-04 06:25:29,414 [quartzScheduler_Worker-10] DEBUG analytics.AnalyticsESService - Running analytics Background_Verification_test completed
2024-11-04T06:25:29.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:29.414812013Z stdout F 2024-11-04 06:25:29,414 [quartzScheduler_Worker-10] DEBUG analytics.AnalyticsESService - Before return from analyticsESService.runControl Heap Memory available
2024-11-04T06:25:29.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:29.414877513Z stdout F 2024-11-04 06:25:29,414 [quartzScheduler_Worker-10] DEBUG analytics.AnalyticsESService - Total time taken to run control Background_Verification_test: 2.088 seconds
2024-11-04T06:25:29.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:29.416464172Z stdout F 2024-11-04 06:25:29,416 [Thread-2851] DEBUG analytics.AnalyticsESService - elastic index batchSize 3000
2024-11-04T06:25:29.739+00:00 ecm-worker null-gcqmb 2024-11-04T06:25:29.416997338Z stdout F 2024-11-04 06:25:29,416 [quartzScheduler_Worker-10] DEBUG analytics.AnalyticsESService - Final Response Returning : 2

Karan07_0-1730702148322.png

 

Please share latest configuration screenshot as suggested previously 


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

Raghu
All-Star
All-Star

@Karan07 

1.You need enable HTML creation time check box

2. 'To' receipt use '${userEmail}' binding variable

Query:

SELECT u.username As 'GlobalID', u.firstname AS 'firstname' ,u.lastname AS 'lastname', DATE_ADD(u.startdate, INTERVAL 60 DAY) AS 'expirydatee',u.username FROM users u LEFT JOIN users manager ON u.manager = manager.userkey WHERE ( u.customproperty37 is null OR u.customproperty37 != 'YES') and u.employeetype= 'Contractor' AND u.startdate IN ( DATE_SUB(CURDATE(), INTERVAL 55 DAY), DATE_SUB(CURDATE(), INTERVAL 10 DAY), DATE_SUB(CURDATE(), INTERVAL 3 DAY), DATE_SUB(CURDATE(), INTERVAL 9 DAY), DATE_SUB(CURDATE(), INTERVAL 60 DAY), DATE_SUB(CURDATE(), INTERVAL 10 DAY), DATE_SUB(CURDATE(), INTERVAL 60 DAY));

HTML:

<table border="1" width="100%">
<tr>
<th>Username</th><th>First Name</th><th>Last Name</th><th>Expiry Date</th>
</tr>
<tr>
<td>${ANALYTICSDATA.GlobalID[0]}</td>
<td>${ANALYTICSDATA.'firstname'[0]}</td>
<td>${ANALYTICSDATA.'lastname'[0]}</td>
<td>${ANALYTICSDATA.'expirydatee'[0]}</td>
</tr>
</table>


Thanks,
Raghu
If this reply answered your question, Please Accept As Solution and hit Kudos.

Karan07
New Contributor
New Contributor

Still its not working same issue please check in Your env send me proper 

what is getting? share full configuration ?

can you check sample text "ABC" pass it body check mail is triggering or not first?

https://forums.saviynt.com/t5/identity-governance/analyticsdata-and-analyticsdatamap-are-not-working...

 


Thanks,
Raghu
If this reply answered your question, Please Accept As Solution and hit Kudos.

Karan07
New Contributor
New Contributor

yes it triggering without header already share the configuration please check the first request 

 

SELECT u.username As 'username', u.firstname AS 'First Name' ,u.lastname AS 'Last Name', DATE_ADD(u.startdate, INTERVAL 60 DAY) AS 'expirydate' FROM users u LEFT JOIN users manager ON u.manager = manager.userkey WHERE ( u.customproperty37 is null OR u.customproperty37 != 'YES') and u.employeetype= 'Contractor' AND u.startdate IN ( DATE_SUB(CURDATE(), INTERVAL 55 DAY), DATE_SUB(CURDATE(), INTERVAL 10 DAY), DATE_SUB(CURDATE(), INTERVAL 3 DAY), DATE_SUB(CURDATE(), INTERVAL 9 DAY), DATE_SUB(CURDATE(), INTERVAL 60 DAY), DATE_SUB(CURDATE(), INTERVAL 10 DAY), DATE_SUB(CURDATE(), INTERVAL 60 DAY) );

 

Template 

<!DOCTYPE html>


<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>BGV Verification</title>
</head>
<style>
{
font-family: Arial, sans-serif;
background-color: #f4f4f4;
}

.container {
width: 100%;
margin: 0 auto;
background-color: #ffffff;
padding: 20px;
}

.header-table {
width: 100%;
background-color: #e1e1e1;
}

.header-table td {
padding: 10px;
}

.content-table {
width: 100%;
margin: 20px 0;
border-collapse: collapse;
text-align: left;
}

.content-table th, .content-table td {
border: 1px solid #ddd;
padding: 8px;
}

.content-table th {
background-color: #f2f2f2;
font-weight: bold;
}

.footer {
margin-top: 20px;
text-align: center;
font-size: 12px;
color: #555;
}
</style>
</head>

<body>
<div class="container">
<!-- Header Section -->
<table class="header-table" border="0">
<tr>
<td align="left">
<img src="img url" alt="removed" width="100" />
</td>
<td align="right">
<img src="img url " alt="removed" width="60" height="60" />
</td>
</tr>
</table>

<h3>Dear Manager,</h3>
<p>This email serves to highlight the outstanding background verification (BGV) status of user. As per company policy, the BGV process must be completed within 90 days of onboarding. Failure to do so will unfortunately result in the automatic deactivation of user accounts.
A list of users with pending BGV is attached to this email for your reference. We kindly request that you prioritize the completion of their verifications to ensure continued access to company resources and systems.</p>

<table class="content-table" border="1">
<thead>
<tr>
<th>Username</th>
<th>First Name</th>
<th>Last Name</th>
<th>Expiry Date</th>
</tr>
</thead>
<tbody>
<tr>
<td>${ANALYTICSDATA.username[0]}</td>
<td>${ANALYTICSDATA['First Name'][0]}</td>
<td>${ANALYTICSDATA['Last Name'][0]}</td>
<td>${ANALYTICSDATA['expirydate'][0]}</td>
</tr>
</tbody>
</table>
</body>

</br></br>
Regards,</br>
Removed
</body>
</html>

 

The Template is Working Without add the table i aint unable to understand cuz same template is working in DEV i dont where it wrong please help me to resolve the issue

 

 

 

Thank you for your attention to this matter. I look forward to your guidance.