Enterprise Mail Handler for JIRA (JEMH)
ANDY BROOK • CTO • THE PLUGIN PEOPLE • ANDY@THEPLUGINPEOPLE
21.06.2017
Agenda● What is JEMH?
● Common Scenarios
● Features!
● JEMH Roadmap
● JEMH vs JEMHC
What is JEMH
Server or Cloud
Customers
Suppliers
Contractors
Agents
Legacy (<= 6.4.x)
Legacy Ticket Systems
Desktop Apps
Mobile Apps
JEMH JEMHC
Integration with JIRA
JEMH In and Out
Issue Update
Interactive User Email Only or Interactive User
Event
JEMH Event Listenerdriven by
Event Listener > Project Mappings
Outbound
JIRA Mail Listenerdriven by
Project > Notification Scheme
JIRA account holder
Email Only User
Calls
Inbound
JEMH Mail HandlerUsing given Profile
JIRA Mail Service
Polls
Process Email, Update issue Generates Event
Email Email SMS Hipchat ...
JEMH and JIRA (including JSD) are peers for JIRA user event notification, if they are both configured for a project, duplicate notifications will occur.
Common Scenarios
Participation level (JIRA)
JIRA Users
Email Only Users
JIRA Users
Email Only Users
Your Support and Internal Customers Your Support and Everyone Else Your Support, Internal Customers and Everyone Else
JIRA Users
JEMH JEMH JEMH
and/or and/or
Participation level (Service Desk)
JSD Agents
Email Only Users
JIRA Users
Email Only Users
Portal Users
JSD Agents
Your Support and Internal Customers Your Support and Everyone Else
Portal Users
Your Support, Internal Customers and Everyone Else
JEMH JEMH JEMH
and/or and/or
Transports other than Email
HipChat
SMS
Slack (JEMHC only)
Pluggable User Properties Addon(PUP)
Filter to only blockers
Notify User Rooms rather than Email!
We are an equal opportunities vendor!
3rd Party delivery providers
Features
Automate routing and manipulate issues
● Automatically Map mail to Projects with Rules
● Field Extraction to Custom Fields
● Directives
AAA
BBB
CCC
Sender email d
omain
Subject keyword
Group membership
biz importance : non-criticalbiz cateogry : gemini
The comment
priority : minorcomponents : gemini
The comment@priority=bocker@issueType=task@components=this,that,other@labels,this-thing,that-thing
Automate creation and Translate data
● Content Cleanup● Icon Removal
● Value Extraction to Custom Fields
● Directive Aliasing
- JIRA images
- Signatures
- Replied to content
System Notice:
Responsible party: BillBusiness-impact: 10
Description: we need to..…………………….
Importance = must haveProject Stream = grand-slam
priority = blockercomponents = grand-slam
System Notice:
Responsible party: BillBusiness-impact: 10
Description: we need to..…………………….
JEMH primary notification methods
● Event Listener ● Workflow Postfunction
● Ad hoc notifications
Ad hoc editor improvements● New TinyMCE editor, enabling:
HTML editing of post-rendered Ad hoc TemplateSets
Image pastes
Insertion of post-rendered ‘canned response’ with Scriptlets
Upload local attachments, or pick Issue attachments (right), TODO: Static Resources
Spell-check with configurable languages (below)
Ad hoc scriptlets (rich canned responses)1) A Scriptlet Template (refers Static Resource #4 – see later) 2) A scriptlet Previewed
3) Picked via Insert > Template 4) Injected scriptlet for further editing 5) The received email, WYSIWYG
Customizing notifications
● Template Sets● Velocimacros
● Design time preview ● Use templates in Ad hoc notifications, preview too
Project Mappings
● One Profile, many mappings
● Rule match strategies, firstMatch or rulePriority
● Rule level tailoring
Enterprise Mail QueueJEMH
New Integrations
Event Listener
Project Mapping for AAA Digesting Queue
ScheduledDelivery
Database
JEMH Roadmap
JEMH Feature Roadmap● Responsibility Devolution ● Profile to Project Mapping migration
Optimizing
Mail Handling
Reduce mailbox polling to scaleJIRA InboundMail Server
JIRA InboundMail Server
JIRA InboundMail Server
AAA
ZZZ
JEMH Profile :Project Mappings
JEMHMail Handler
JIRA InboundMail Server
AAA
ZZZ
JEMH Profile :Project Mappings
JEMHMail Handler
JEMH Profile :Project Mappings
JEMHMail Handler
● 1:1 ratio between mailboxes and mail handers is fine for small numbers of mailboxes, it won't scale. Mailboxes are polled sequentially, so will only get slower
● Mulitple inbound mailserves can drive individual mail handlers that in turn use a common Profile, to save configuration overhead
● Arranging for all required mail to be in one physical mailbox (eg through Aliases or serer side re-routing) allows one inbound mailserver, one mail handler, one Profile ; this enables JEMH to demultiplex all mail to all mapped projects
● Every single mailbox poll will then retreive and process all mail
JEMH & JEMHC
Major differences
JIRA Server + JEMH JIRA Cloud + JEMHC
● Is older, more established, features more fleshed out
● Is scalable through JIRA Data Center
● High volume (messages/data) scenarios
a)Your instance has unlimited (theoretical) storage
● JEMH is in-VM so:
a) can work with the rich Issue Event model of JIRA
b) has access to all JIRA internal API's, eg workflow
● Is newer, some features are missing/not yet implemented
● Low-Medium volume (messages/data) scenarios
a) JIRACloud is limited to 25GB storage total (ever) for <500users, 100GB for 500+ users. JEMHC has ‘external’ attachments, for manual uploads to S3/Dropbox/ GoogleDrive – adding email attachments automatically is scheduled for development
b) JEMHC Plan tiering not best suited for small JIRA user instances with high volumes
● JEMHC is not in-VM so:
a) can only work with a restricted set of CREATE/UPDATE/DELETE/WorkLogged events
b) cannot by default use every available REST resource, for example, looking up users by email address ( https://ecosystem.atlassian.net/browse/AC-1014 )
c) Is limited to using data that is exposed through REST, eg cannot get full workflow details
Questions
Andy Brook • CTO • The Plugin People • andy@thepluginpeople
Thank you!
Links● JEMH on Atlassian Marketplace ( https://marketplace.atlassian.com/plugins/com.javahollic.jira.jemh-ui )● Create A Profile ( https://thepluginpeople.atlassian.net/wiki/display/JEMH/Create+a+Profile )● Use Project Mappings ( https://thepluginpeople.atlassian.net/wiki/display/JEMH/Use+Project+Mappings )● Use Directives ( https://thepluginpeople.atlassian.net/wiki/display/JEMH/Use+Directives ) ● Use Template Sets ( https://thepluginpeople.atlassian.net/wiki/pages/viewpage.action?pageId=2850840 ) ● Use Ad hoc Notifications ( https://thepluginpeople.atlassian.net/wiki/display/JEMH/Use+Adhoc+Notifications )● Use Static Resources ( https://thepluginpeople.atlassian.net/wiki/display/JEMH/Use+Static+Resource )
Contact● Support [email protected]● Issues thepluginpeople.atlassian.net/browse/JEMH● Sales [email protected]>