- JSM Portal Examples
- Simplified Examples with Section Messages
- Tips & Best Practices
- Related Documentation
JSM portal examples and simplified patterns using section messages.
JSM Portal Examples
Customer Welcome Message
Display a welcome message on the customer portal.
Data Source: Empty (Message only) Display Module: JSM Portal Panel Request Types: All
<div style="padding: 16px; background: #F4F5F7; border-radius: 8px;">
<h4 style="margin-top: 0;">Thank you for contacting support!</h4>
<p>Your request <strong>{{ issue.key }}</strong> has been received.</p>
{% switch issue.fields.status.name %}
{% case "Open" %}
<p>We're reviewing your request and will respond shortly.</p>
{% case "In Progress" %}
<p>A support agent is working on your request.</p>
{% case "Waiting for customer" %}
<p style="color: #FF8B00;"><strong>We need more information from you.</strong> Please check the comments below.</p>
{% case "Resolved" %}
<p style="color: #00875A;">Your request has been resolved. Please reopen if you need further assistance.</p>
{% endswitch %}
<p style="margin-top: 16px; font-size: 12px; color: #6B778C;">
Average response time: 4 business hours
</p>
</div>
Service Announcement (Portal Subheader)
Display service announcements across all portal pages.
Data Source: Empty (Message only) Display Module: JSM Portal Subheader
<div style="padding: 12px; background: #DEEBFF; border-left: 4px solid #0052CC; text-align: center;">
<strong>Scheduled Maintenance:</strong>
Our systems will be offline on Saturday, January 15 from 2AM-6AM EST for upgrades.
<a href="/status">View status page</a>
</div>
Simplified Examples with Section Messages
These examples use the <section-message> tag or Message Type setting for cleaner, no-CSS-required styling.
Quick Warning Message
Using Message Type setting (no HTML required):
- Message Type: Warning
- Message Title: Sprint Planning Required
- Render Type: Plain Text
- Message:
This issue is not assigned to any sprint.
Or using HTML with section-message:
<section-message appearance="warning" title="Sprint Planning Required">
This issue is not assigned to any sprint.
{% if issue.fields.assignee %}
Assignee: {{ issue.fields.assignee.displayName }}
{% else %}
No assignee - consider assigning this issue.
{% endif %}
</section-message>
Blocking Issues Alert (Simplified)
{% if linkedIssues | len > 0 %}
<section-message appearance="error" title="Blocked">
This issue is blocked by {{ linkedIssues | len }} unresolved issue(s).
Blockers: {% for blocker in linkedIssues %}{{ blocker.key }}{% if not loop.last %}, {% endif %}{% endfor %}
</section-message>
{% endif %}
Code Review Reminder (Simplified)
<section-message appearance="info" title="Code Review Checklist">
Before approving: code follows conventions, tests added, no security issues, docs updated.
{% if issue.fields.customfield_10001 %}
PR: {{ issue.fields.customfield_10001 }}
{% endif %}
</section-message>
SLA Status (Simplified)
{% set duedate = issue.fields.duedate %}
{% if duedate %}
{% if isPast(duedate) %}
<section-message appearance="error" title="SLA Breached">
Due date was {{ duedate | fromNow }}. Immediate action required!
</section-message>
{% elif dateDiff(now(), duedate, "hours") < 24 %}
<section-message appearance="warning" title="SLA At Risk">
Due {{ duedate | fromNow }} ({{ duedate | date("yyyy-MM-dd HH:mm") }})
</section-message>
{% else %}
<section-message appearance="success" title="SLA On Track">
Due {{ duedate | fromNow }}
</section-message>
{% endif %}
{% endif %}
Service Announcement (Simplified)
<section-message appearance="info" title="Scheduled Maintenance">
Our systems will be offline on Saturday, January 15 from 2AM-6AM EST for upgrades.
</section-message>
Data Privacy Notice (Simplified)
<section-message appearance="error" title="Data Privacy Notice">
This issue may contain PII. Do not share outside the organization.
Delete personal data when resolved. Report any breaches immediately.
</section-message>
Tips & Best Practices
Using Section Messages
The <section-message> tag provides Atlassian-styled message boxes without custom CSS:
<section-message appearance="info|warning|error|success|change" title="Optional Title">
Message content here
</section-message>
Available appearances:
info- Blue informationalwarning- Yellow warningerror- Red errorsuccess- Green successchange- Purple change/discovery
Alternatively, use the Message Type setting in configuration to wrap your entire message without writing any HTML.
Display JQL Examples
# Show for high priority bugs only
priority in (High, Highest) AND type = Bug
# Show for overdue issues
duedate < now() AND status != Done
# Show for issues in specific sprint
sprint in openSprints() AND assignee = currentUser()
# Show for issues without estimate
"Story Points" is EMPTY AND type = Story
User Field Visibility
- Assignee Only: Shows panel only to the person assigned to fix
- Reporter Only: Shows panel only to the person who reported
- Watchers: Shows panel to anyone watching the issue
- Custom Field: Shows to users in a custom user picker field
Combining Filters
For maximum precision, combine:
- Project Filter: Target specific projects
- Issue Type Filter: Target specific issue types
- Display JQL: Dynamic conditions
- User Field: Audience-specific visibility
Color Reference
Use these colors for consistent styling:
| Purpose | Background | Border |
|---|---|---|
| Info | #deebff |
#0052cc |
| Success | #e3fcef |
#00875a |
| Warning | #fffae6 |
#ff8b00 |
| Error | #ffebe6 |
#de350b |
| Neutral | #f4f5f7 |
#dfe1e6 |
Performance Tips
- Start with Max Issues = 100, increase only if needed
- Use indexed fields in JQL:
project,status,assignee - Avoid
text ~ "keyword"on large datasets - Limit loops with
| take(10)filter
Always Handle Null Values
{{ issue.fields.assignee.displayName | default("Unassigned") }}
{% if issue.fields.duedate %}
Due: {{ issue.fields.duedate | date("MM-dd") }}
{% endif %}
Related Documentation
- Use Cases - Development and support team examples
- Use Cases - Management - PM, HR, and compliance examples
- Configuration Basics - Create panels
- Templates - Template syntax reference
Message Panel for Jira Cloud