Creating Email Templates
Email templates allow you to customize the look and content of notifications sent by IdentityCenter. This guide covers creating, editing, and managing email templates.
Template Basics
What are Email Templates?
Email templates are pre-designed email layouts that:
- Define the structure and styling of emails
- Include placeholders for dynamic content
- Can be customized for different notification types
- Support HTML for rich formatting
Template Components
| Component | Description |
|---|---|
| Subject | Email subject line (supports variables) |
| Body | Main content (HTML or plain text) |
| Variables | Dynamic placeholders for data |
| Styling | CSS for visual formatting |
Navigating to Templates
- Log in to IdentityCenter as an administrator
- Navigate to Administration > Settings > Email Templates
- View list of available templates
Creating a New Template
Step 1: Basic Information
| Field | Description | Example |
|---|---|---|
| Name | Internal template name | access-review-reminder |
| Display Name | Friendly name | Access Review Reminder |
| Category | Template category | Access Reviews |
| Description | Purpose of template | Reminder sent to reviewers |
Step 2: Configure Subject Line
The subject line can include variables:
Access Review Due: {{CampaignName}} - {{DueDate}}
Subject line tips:
- Keep under 50 characters
- Put important info first
- Use variables for personalization
- Avoid spam trigger words
Step 3: Design the Body
Use the visual editor or HTML source:
Visual Editor:
- Drag and drop blocks
- Rich text formatting
- Image insertion
- Table creation
HTML Source:
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: Arial, sans-serif; }
.header { background: #0066cc; color: white; padding: 20px; }
.content { padding: 20px; }
.button { background: #0066cc; color: white; padding: 10px 20px; text-decoration: none; }
</style>
</head>
<body>
<div class="header">
<h1>IdentityCenter</h1>
</div>
<div class="content">
<p>Hello {{RecipientName}},</p>
<p>You have <strong>{{PendingCount}}</strong> access review items
pending in the <strong>{{CampaignName}}</strong> campaign.</p>
<p>Please complete your reviews by <strong>{{DueDate}}</strong>.</p>
<p><a href="{{ReviewLink}}" class="button">Complete Your Reviews</a></p>
<p>Thank you,<br>IdentityCenter</p>
</div>
</body>
</html>
Using Variables
Variable Syntax
Variables use double curly braces: {{VariableName}}
Common Variables
Recipient Variables
| Variable | Description |
|---|---|
{{RecipientName}} |
Recipient's display name |
{{RecipientEmail}} |
Recipient's email address |
{{RecipientTitle}} |
Recipient's job title |
{{RecipientDepartment}} |
Recipient's department |
Campaign Variables
| Variable | Description |
|---|---|
{{CampaignName}} |
Access review campaign name |
{{CampaignDescription}} |
Campaign description |
{{StartDate}} |
Campaign start date |
{{DueDate}} |
Campaign due date |
{{DaysRemaining}} |
Days until due date |
Review Variables
| Variable | Description |
|---|---|
{{PendingCount}} |
Number of pending reviews |
{{CompletedCount}} |
Number of completed reviews |
{{TotalCount}} |
Total review items |
{{CompletionPercent}} |
Completion percentage |
System Variables
| Variable | Description |
|---|---|
{{ApplicationName}} |
IdentityCenter |
{{ApplicationUrl}} |
Base URL |
{{ReviewLink}} |
Direct link to reviews |
{{CurrentDate}} |
Today's date |
{{CurrentYear}} |
Current year |
Conditional Content
Show content based on conditions:
{{#if DaysRemaining < 3}}
<p style="color: red;"><strong>URGENT:</strong> Only {{DaysRemaining}} days remaining!</p>
{{/if}}
{{#if PendingCount > 0}}
<p>You have {{PendingCount}} items to review.</p>
{{else}}
<p>All reviews are complete. Thank you!</p>
{{/if}}
Loops
Display lists of items:
<h3>Pending Reviews:</h3>
<ul>
{{#each PendingItems}}
<li>{{this.UserName}} - {{this.AccessDescription}}</li>
{{/each}}
</ul>
Built-in Templates
Access Review Templates
| Template | Purpose |
|---|---|
access-review-started |
Campaign kickoff notification |
access-review-assigned |
Individual assignment notice |
access-review-reminder |
Reminder before due date |
access-review-overdue |
Overdue warning |
access-review-complete |
Campaign completion summary |
Policy Templates
| Template | Purpose |
|---|---|
policy-violation-alert |
New violation detected |
policy-violation-summary |
Daily/weekly digest |
policy-remediation-required |
Action needed |
policy-exception-expiring |
Exception about to expire |
System Templates
| Template | Purpose |
|---|---|
sync-error-alert |
Synchronization failure |
connection-error |
Connection issue detected |
system-health-warning |
System health issue |
scheduled-maintenance |
Maintenance notification |
Template Best Practices
Design Guidelines
- Keep it Simple - Clean, uncluttered design
- Mobile Friendly - Test on mobile devices
- Clear Call to Action - One primary action per email
- Consistent Branding - Match your company style
- Accessible - Alt text for images, good contrast
Content Guidelines
- Be Concise - Get to the point quickly
- Use Clear Language - Avoid jargon
- Include Context - Why are they receiving this?
- Provide Next Steps - What should they do?
- Include Deadlines - When is action needed?
Technical Guidelines
- Test All Variables - Ensure variables render correctly
- Check Links - Verify all links work
- Preview - Review in multiple email clients
- Plain Text Alternative - Include plain text version
- Limit Images - Some clients block images
Example Templates
Access Review Reminder
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: 'Segoe UI', Arial, sans-serif; margin: 0; padding: 0; }
.container { max-width: 600px; margin: 0 auto; }
.header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white; padding: 30px; text-align: center; }
.content { padding: 30px; background: #ffffff; }
.alert-box { background: #fff3cd; border-left: 4px solid #ffc107;
padding: 15px; margin: 20px 0; }
.stats { display: flex; justify-content: space-around; margin: 20px 0; }
.stat { text-align: center; }
.stat-number { font-size: 36px; font-weight: bold; color: #667eea; }
.button { display: inline-block; background: #667eea; color: white;
padding: 15px 30px; text-decoration: none; border-radius: 5px; }
.footer { background: #f8f9fa; padding: 20px; text-align: center;
font-size: 12px; color: #6c757d; }
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>Access Review Reminder</h1>
<p>{{CampaignName}}</p>
</div>
<div class="content">
<p>Hello {{RecipientName}},</p>
{{#if DaysRemaining <= 3}}
<div class="alert-box">
<strong>Urgent:</strong> Only {{DaysRemaining}} days remaining
to complete your access reviews!
</div>
{{/if}}
<p>You have been assigned access reviews that require your attention.
Please review and certify the access rights for your team members.</p>
<div class="stats">
<div class="stat">
<div class="stat-number">{{PendingCount}}</div>
<div>Pending</div>
</div>
<div class="stat">
<div class="stat-number">{{CompletedCount}}</div>
<div>Completed</div>
</div>
<div class="stat">
<div class="stat-number">{{DaysRemaining}}</div>
<div>Days Left</div>
</div>
</div>
<p style="text-align: center;">
<a href="{{ReviewLink}}" class="button">Complete Your Reviews</a>
</p>
<p><strong>Due Date:</strong> {{DueDate}}</p>
<p>If you have questions about the review process, please contact
the IT Security team.</p>
<p>Thank you,<br>IdentityCenter</p>
</div>
<div class="footer">
<p>This is an automated message from IdentityCenter.</p>
<p>© {{CurrentYear}} Your Company. All rights reserved.</p>
</div>
</div>
</body>
</html>
Policy Violation Alert
<!DOCTYPE html>
<html>
<head>
<style>
.severity-critical { background: #dc3545; color: white; }
.severity-high { background: #fd7e14; color: white; }
.severity-medium { background: #ffc107; color: black; }
.severity-low { background: #17a2b8; color: white; }
.violation-table { width: 100%; border-collapse: collapse; }
.violation-table th, .violation-table td { padding: 10px; border: 1px solid #ddd; }
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>Policy Violation Detected</h1>
</div>
<div class="content">
<p>A new policy violation has been detected that requires your attention.</p>
<div class="severity-{{Severity}}" style="padding: 10px; margin: 20px 0;">
Severity: <strong>{{Severity}}</strong>
</div>
<table class="violation-table">
<tr>
<th>Policy</th>
<td>{{PolicyName}}</td>
</tr>
<tr>
<th>Identity</th>
<td>{{IdentityName}} ({{IdentityEmail}})</td>
</tr>
<tr>
<th>Violation</th>
<td>{{ViolationDescription}}</td>
</tr>
<tr>
<th>Detected</th>
<td>{{DetectedDate}}</td>
</tr>
</table>
<p><a href="{{ViolationLink}}" class="button">View Details</a></p>
</div>
</div>
</body>
</html>
Testing Templates
Preview Mode
- Click Preview on any template
- Select sample data source
- View rendered output
- Check desktop and mobile views
Send Test Email
- Click Send Test
- Enter recipient email
- Select sample data
- Review received email
Test Checklist
- Variables render correctly
- Links work
- Images display
- Mobile layout looks good
- Plain text version is readable
- No broken styling