Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

...

Be default directives found within inbound mail won't get processed by JEMHC. You need to determine when Directives should be processed:

  • Profile > Mapping > Field Processors > General Configuration > Apply field processors (Off | On Create | On Comment | On Create/Comment)

...

Enabling Field Processors

Each type of field processor must be enabled within the 'Field Processors' view of your desired project mapping. Configurations applied to your default project mapping will also apply to any other project mapping contained within the same profile, unless they themselves set things differently.

(info) All enabled Field Processors go through an election to determine which one should process the mail. They are not additive, the Field Processor with the most directives found will be used.

...

Directive Formats

JEMHC supports several formats of data in which directives can be supplied, spread across mail subject, body, and headers as follows.

Mail Subject

Mail Body

Mail Headers

#Prefix Field Processor

  • @Prefix Field Processor

  • Colon Suffix Field Processor:

  • Nagios Field Processor

  • Regexp Field Processor

  • X-JEMH Header Field Processor

Examples

Field Processor

Example

Notes

Mail Header

X-JEMH Header Field Processor


Code Block
X-JEMH-issueKey: JDP-19
X-JEMH-description: Hello, World!


Included in the raw email.

Mail Subject

#Prefix Field Processor


Code Block
#description="Hello, World!"
[#issueKey=JDP-19]


Strings wrapped with quotes.

Mail Body

@Prefix Field Processor

(Preferred)


Code Block
@description=Hello, World!
@issueKey=JDP-19


Keys prefixed with "@".

Must go at top of body.

ONE Newline between directive lines otherwise value is considered multi-line.

Multi-line fields will go until end of body, or until another directive is found.

ONE Empty line between between Directives and Body

Colon Suffix Field Processor


Code Block
description:Hello, World!
issueKey:JDP-19


Keys suffixed with ":".

Newline mandatory.

Must go at top of body.

Multi-line fields will go until end of body, or until another directive is found.

Nagios Field Processor

Nagios Field Processor Guide


Regexp Field Processor

Regexp Field Processor Guide


Supported Directives

Re-implementing support for Directives in JEMHC will be an ongoing activity.  This page reflects the status of support for modifying issues through Directives, processed by Field Processors.


Directive

On Create

On Comment

Notes

summary

(tick)

(tick)

Replaces existing summary

reporter

(tick)

(tick)

Replaces both from address and profile's default reporter

emailSenderAsUser

Not supported yet

Not supported yet


assignee

(tick)

(tick)

Replaces profile's default, If the assignee is not assignable, the message will be rejected

issueType

(tick)

(tick)

Issue type is specially important because the metadata depends on it. If not valid for the project, the message will be rejected

issueKey

N/A, JEMH will comment the issue if it exists

Yes, changes issue to be commented/updated taking precedence over the issue key in subject, mime header threading and the associated issue to the mime message id.

Equality condition and custom JQL are supported (1.0.86+), JEMHC resolves the first not resolved issue that matches the criteria.

Examples:

  • Issue Key: @issueKey=PKEY-123

  • Equality: @issueKey=Custom Field=Some Value

  • JQL: @issueKey='Custom Field' ~ 'Some Value'

  • JQL: @issueKey='External Id' ~ '#12345' and project = 'PKEY'


parentIssueKey

(tick)

(error) Possible UC could be replying to a subtask issue with @parentIssueKey changing the parent. For some reason, JIRA is not updating subtask's parent through REST.

See https://answers.atlassian.com/questions/9374899/can-i-change-sub-task-parent-using-rest

labels

(tick)

(tick)

csv splitting the field processor value, not taking in consideration any escaping

Label values are 'set' not 'added'. Currently overrides the 'profile' labels (should we merge?)

priority

(tick)

(tick)


description

(tick)

(tick)

Replaces the post processed body of the email

comment

(tick)

(tick)

Create: Adds the directive's value as a comment after the issue has been created.

Comment: Uses as body of the comment replacing the body of the post processed email

components

(tick) Yes - Set

(tick) Yes - Update

Not escaped CSV. If one of components in the list is invalid, it will be ignored (with reporting)

project

(tick) Yes - It changes where the issue will be created ignoring the project key in profile

Yes but it just used as validation. Comment fails if the resolved issue key doesn't belongs to the project

Project is also important as metadata depends on it. Validation in UI can fail during processing. e.g: some custom fields or issue type is not available in the directive's project

dueDate

(tick)

(tick)


requestType

(tick)

(error) Not possible to change

Service Desk’s request type. Name or id can be provided. Example:
#requestType="Other Questions"
#requestType=13

dueDateFormat

(tick)

(tick)

Replaces profile's default due date

Epic Label

(tick) 

(tick)

It set the epic label of the create or updated issue only if the issue is of type Epic 

@Epic Label=The Epic Label

Epic Link

(tick)

(tick)

Value can be either the key or the label of the target epic.

@Epic Link=SCRUM-123

@Epic Link=The Epic Label

Sprint

(tick) 

(tick)


it assigns the issue to a sprint.

@Sprint=6 (Sprint with id 6)

 @Sprint=Board Name:Sprint Name

@Sprint=Board Name (Active sprint in board 'Board Name')

watchers

 (tick)

 (tick)

@watchers=someJiraUserName, someJiraUserEmail@myCompany.com

viewable

Not supported yet

Not supported yet


ccusers

Not supported yet

Not supported yet


workEstimate

Not supported yet

Not supported yet


environment

(tick) Yes - Set

(tick)


linkto

Not supported yet

Not supported yet


affectsVersions

(tick)

(tick)

Not escaped CSV. If one of versions in the list is invalid, it will be ignored (with reporting). 'affectsVersions' is actually the 'version' field labeled 'Affected Versions' in UI.

fixVersions

(tick)

(tick)

Not escaped CSV. If one of versions in the list is invalid, it will be ignored (with reporting).

vote

Not supported yet

Not supported yet


logWorkDone

Not supported yet

Not supported yet


securityLevel

(tick) - Set

(tick) - Update

The field name is 'security'

attachments

Not supported yet

Not supported yet

Attachment is not a field

stripComments

Not supported yet

Not supported yet


Worklog directives

Not supported yet

Not supported yet

All the directives related to worklog

notifyOnEdit

Not supported yet

Not supported yet


workflow

(tick)

(tick)

Resolution defaults to Fixed. Only One transition permitted (so far). Basic version. The transition is applied after everything else: update issue, comment issue, upload attachments

workflow:Start Progress

@workflow=Close Issue

workflow.resolution

(tick)

(tick)

Resolution is set if it's allowed in the transition, e.g. workflow:Close Issue

workflow.resolution=Duplicate

workflow.params

(tick)

(tick)

A worklow field is set if it is allowed in the transition or it is allowed in the issue after the transition has been applied.

workflow.params.description:The description applied during or after the transition

workflow.params.customfield_10001:Custom Field Value

issueTemplate

Not supported yet

Not supported yet


custom fields

(tick) Set overriding default custom field values but not the custom fields used for email only users

(tick) Update (including custom fields used for email only users)


internalComment

(tick) if there is a @comment directive

(tick)

if the issue is a JSD issue, @internalComment=true/yes (case insensitive) marks the created comment as JSD internal. Otherwise @internalComment=* marks the comment as public (shared with customer). The directive overrides the Project Mapping's 'Service Desk Comment Mode' configuration.

It is a good idea to create @internal @public aliases from @internalComent=true/false respectively.


Image Modified



JEMHCloud is trying to do the best possible to pre-validate every processor before send it to jira. E:G: if the priority is invalid, it will be ignored reporting the invalid value.

...

You can use either field name (case insensitive) or field id (like customfield_10001) as directive key. Multiple values are comma separated.

Examples are using colon notation.  At notation (@key=value) and subject notation (#key="value") are also possible

Type

Example Value

Checkboxes

custom checkboxes: option 1, Option 2

Custom Google Map Field

Not supported yet

Customer Request Type

Supported for create operation. JIRA raises an unexpected runtime exception on issue update.

Example:

@Customer Request Type=bsd/get-it-help

Read more about the value format in this wiki page.

Organizations

Allowed values are organization names or id (number). One or more organizations can be entered using comma separated values. 

@Organizations=Company A, 123

Date of First Response

Not supported yet

Date Picker

custom date picker: 29/7/2011

(Using default format of d/MM/yy)

or

custom date picker: 29-Jul-2011
custom date pickerFormat: dd-MMM-yyyy

(Second directive defines the format, it's the field name following 'Format')

Date Time Picker

custom date time picker: 29/7/2011 10:50 PM

(Using default format of dd/MM/yy h:mm a)

or

custom date time picker: 29-Jul-2011 10:50 PM
custom date time pickerFormat: dd-MMM-yyyy h:mm a

(Second directive defines the format, it's the field name following 'Format')

Global Rank

Not supported yet

Group Picker (multiple groups)

Not supported yet

Group Picker (single group)

Not supported yet

Hidden Job Switch

Not supported yet

JIRA Agile Released Version History

Not supported yet

Job Checkbox

Not supported yet

Labels

custom labels: label1, label2

Multi Remote Object Link

Not supported yet

Number Field

custom number: 10

Project Picker (single project)

custom project picker: PKEY (Or name)

Radio Buttons

custom radio buttons: option1

Remote ObjectLink

Not supported yet

Remote System Reference

Not supported yet

Select List (cascading)

custom cascading select: Parent Option, Child Option

Select List (multiple choice)

custom multiple select: Option 1, option 2

Select List (single choice)

custom single list: Option 1

Tempo Account

Account: SomeAccountKey

Text Field (multi-line)

custom textarea: line 1
second line
line3

Text Field (read only)

custom text field read only: read only line

Text Field (single line)

custom text: only one line

Time In Status

Not supported yet

URL Field

custom url field: https://www.somehost.com/path

User Picker (multiple users)

custom multiple user picker: admin, someoneelse

User Picker (single user)

custom user picker: admin

UUID Field

Not supported yet

Version Picker (multiple versions)

custom multiple version: 2.1,2.3

Version Picker (single version)

custom single version: 2.1