JIRA SD+JETI: Request Number in the Email «From» Field

The vast majority of our clients continue to interact with the support team through the email channel. By default, JIRA looks for the request ID in the subject and headers of the message. So, if a message contains in its subject something like «[SD-123456] Please help me», JIRA will look for a request #SD-123456 and put the message body in this request.

Sometimes the strategy by default in JIRA SD doesn’t help to mitigate duplicate requests

Seems like this strategy has some flaws and doesn’t prevent from creating new requests on the same matter.

In my past experience, I had been using Wrike for managing teamwork. In Wrike, you receive messages from an email address of special format like support+123456@domain.com. So, if you reply to support+123456@domain.com, your message will be easily sorted to request #123456 preventing any mistakes.

In this article, I’m explaining how to make it work in the same manner in JIRA.

Formatting reply-address for email notifications of JIRA SD helps with the following:

1. Avoid sorting mistakes: placing a comment in a wrong request, opening duplicate reqeusts

2. Comments of non-customers will be correctly sorted, still preventing them from disclosing other comments in a request.

3. Service Desk agents can easily forward any message to this special address if they want just attach to it a bunch of files from a client. Great for those who interacts with SD from a smartphone.

Requirements

Mail Server Configuration

Basically, you have to configure support for Address Tags in your mail server. I used this article as an instruction: https://www.stevejenkins.com/blog/2011/03/how-to-use-address-tagging-usertagexample-com-with-postfix/

Most of the documentation says that you just need to set Postfix’s$recipient_delimiter variable to the (set of) character(s) you want to use as a delimiter, like recipient_delimiter = +. That’s fine if you’re just using local delivery. But when you use Dovecot’s LDA (or other LDA), you should also modify how it’s called in master.cf.

https://blog.tenak.net/2013/09/2013-09-recipient_delimiter-virtual-users.html

JIRA Configuration

Setup Incoming Mail Server:

Pay attention: We use Email This Issue add-on as a handler

Create a Mail Handler in JIRA Email This Issue

Create a new Field Context in JIRA Email This Issue

If there are digits in the recipient field of an email, then treat it as a request ID

Create a context to make JIRA send notifications from a specially formatted email address:

So, the FROM address will be like «jiratest+123456@infinet.ru»

Since version 7.1.1.18 the add-on JIRA Email This Issue is able to use a reg-exp rules in the Email Address Exclusion Field. Why it is useful? When your customers send a message to your specially-formatted address «support+123456@domain.com», JETI will create a new user with username «support+123456@domain.com». While there is no harm in it, still I prefer to keep my user database clean of fake users.

Deny JETI to create users for each request

Test it!

  • Send a message to support+123456@domain.com, where 123456 is ID of an existing issue. Your comment should be placed in the request.
  • Send a message to support+123456@domain.com, where 123456 is ID non-existent. A new request should be created.
  • Send a message to support+123456@domain.com from a customer who is not a participant of request #123456. A comment should be added to this request, but from a default user which was configured in JETI.

Adding new colors to the palette for a table cell highlighting in Confluence


We were disappointed with the limited amount of colors for coloring cells. The request of this feature was created in 2012 —  but it is still not implemented.

We decided to fix it up though it is a piece of a cake.

So:

  • Get atlassian-editor-6.0.5.jar and confluence-editor-6.0.5.jar from /opt/atlassian/confluence/confluence/WEB-INF/atlassian-bundled-plugins  (you may have a different location and filenames depending on the version of your Confluence, but you surely will find it)
  • Open atlassian-editor-6.0.5.jar with some archivator tool and extract atlassian-editor-6.0.5\css\editor-toolbar-split-buttons.less
  • Add the following lines:
#table-highlight-group.highlight-orange .highlight-indicator,#table-highlight-group .table-highlight-picker a.highlight-orange{background-color:#ffd3b6}
#table-highlight-group.highlight-violet .highlight-indicator,#table-highlight-group .table-highlight-picker a.highlight-violet{background-color:#deddfa}
#table-highlight-group.highlight-brown .highlight-indicator,#table-highlight-group .table-highlight-picker a.highlight-brown{background-color:#bd8e68}
#table-highlight-group.highlight-pink .highlight-indicator,#table-highlight-group .table-highlight-picker a.highlight-pink{background-color:#997a8d}
#table-highlight-group.highlight-hotred .highlight-indicator,#table-highlight-group .table-highlight-picker a.highlight-hotred{background-color:#f96161}
#table-highlight-group.highlight-hotgreen .highlight-indicator,#table-highlight-group .table-highlight-picker a.highlight-hotgreen{background-color:#61f961}
  • Extract confluence-editor-6.0.5\tinymce3\plugins\customtoolbar\table-toolbar.js and change
    var colourClasses = ["grey", "red", "green", "blue", "yellow", ""];
    var removeColour = [false, false, false, false, false, true];

    to
    var colourClasses = ["grey", "red", "green", "blue", "yellow", "orange","violet", "brown","pink","hotred", "hotgreen", ""];
    var removeColour = [false, false, false, false, false,false, false,false,false, false,false, true];

    Extract confluence-editor-6.0.5\tinymce3\plugins\customtoolbar\table-toolbar-min.js
    C=[false,false,false,false,false,true];c.each(["grey","red","green","blue","yellow",""]
    change to
    C=[false, false, false, false, false,false, false,false,false, false,false, true];c.each(["grey", "red", "green", "blue", "yellow", "orange","violet", "brown","pink","hotred", "hotgreen", ""]

Put all the changed files back into the jar-archives with your archivator tool.

With no hesitations delete the cache folder /var/atlassian/application-data/confluence/plugins-osgi-cache

Put the changed jar-files back on server.
Start the Confluence
Go to General Configuration, Stylesheet and add the following:
table.confluenceTable th.confluenceTh.highlight-orange,
table.confluenceTable th.confluenceTh.highlight-orange>p,
table.confluenceTable td.confluenceTd.highlight-orange,
table.confluenceTable td.confluenceTd.highlight-orange>p {
background-color:#ffd3b6
}
table.confluenceTable th.confluenceTh.highlight-violet,
table.confluenceTable th.confluenceTh.highlight-violet>p,
table.confluenceTable td.confluenceTd.highlight-violet,
table.confluenceTable td.confluenceTd.highlight-violet>p {
background-color:#deddfa
}
table.confluenceTable th.confluenceTh.highlight-brown,
table.confluenceTable th.confluenceTh.highlight-brown>p,
table.confluenceTable td.confluenceTd.highlight-brown,
table.confluenceTable td.confluenceTd.highlight-brown>p {
background-color:#bd8e68
}
table.confluenceTable th.confluenceTh.highlight-pink,
table.confluenceTable th.confluenceTh.highlight-pink>p,
table.confluenceTable td.confluenceTd.highlight-pink,
table.confluenceTable td.confluenceTd.highlight-pink>p {
background-color:#997a8d
}
table.confluenceTable th.confluenceTh.highlight-hotred,
table.confluenceTable th.confluenceTh.highlight-hotred>p,
table.confluenceTable td.confluenceTd.highlight-hotred,
table.confluenceTable td.confluenceTd.highlight-hotred>p {
background-color:#f96161
}
table.confluenceTable th.confluenceTh.highlight-hotgreen,
table.confluenceTable th.confluenceTh.highlight-hotgreen>p,
table.confluenceTable td.confluenceTd.highlight-hotgreen,
table.confluenceTable td.confluenceTd.highlight-hotgreen>p {
background-color:#61f961
}

Flush the browser cache and test the new palette.

Добавления новых цветов для раскраски ячеек в таблицах Atlassian Confluence


Нас очень расстраивало, что в Конфле всего пять цветов для раскраски ячеек таблиц. Просьба об этом направлена в Атлассиан в 2012 году —  и лишь в ноябре они выпустили анонс, что выкатят в ближайшие полгода фичу с новыми цветами.

Мы решили не ждать полгода, потому что там три строчки поменять.

Итак:

  • Скачай файлы atlassian-editor-6.0.5.jar и confluence-editor-6.0.5.jar из /opt/atlassian/confluence/confluence/WEB-INF/atlassian-bundled-plugins  (имя файла будет отличаться в зависимости от вашей версии конфлы, размещение папки будет зависеть от того, куда вы её установили)
  • Открываешь архиватором файл atlassian-editor-6.0.5.jar и достаёшь файл atlassian-editor-6.0.5\css\editor-toolbar-split-buttons.less
  • В него нужно добавить:
#table-highlight-group.highlight-orange .highlight-indicator,#table-highlight-group .table-highlight-picker a.highlight-orange{background-color:#ffd3b6}
#table-highlight-group.highlight-violet .highlight-indicator,#table-highlight-group .table-highlight-picker a.highlight-violet{background-color:#deddfa}
#table-highlight-group.highlight-brown .highlight-indicator,#table-highlight-group .table-highlight-picker a.highlight-brown{background-color:#bd8e68}
#table-highlight-group.highlight-pink .highlight-indicator,#table-highlight-group .table-highlight-picker a.highlight-pink{background-color:#997a8d}
#table-highlight-group.highlight-hotred .highlight-indicator,#table-highlight-group .table-highlight-picker a.highlight-hotred{background-color:#f96161}
#table-highlight-group.highlight-hotgreen .highlight-indicator,#table-highlight-group .table-highlight-picker a.highlight-hotgreen{background-color:#61f961}
  • Достаём файл confluence-editor-6.0.5\tinymce3\plugins\customtoolbar\table-toolbar.js и в нём меняем
    var colourClasses = ["grey", "red", "green", "blue", "yellow", ""];
    var removeColour = [false, false, false, false, false, true];

    на
    var colourClasses = ["grey", "red", "green", "blue", "yellow", "orange","violet", "brown","pink","hotred", "hotgreen", ""];
    var removeColour = [false, false, false, false, false,false, false,false,false, false,false, true];

    Достаём файл confluence-editor-6.0.5\tinymce3\plugins\customtoolbar\table-toolbar-min.js
    C=[false,false,false,false,false,true];c.each(["grey","red","green","blue","yellow",""]
    заменяем на
    C=[false, false, false, false, false,false, false,false,false, false,false, true];c.each(["grey", "red", "green", "blue", "yellow", "orange","violet", "brown","pink","hotred", "hotgreen", ""]

Теперь эти извлечённые файлы обратно кладём в jar-архивы с помощью архиватора.

Удаляй кэш-папку /var/atlassian/application-data/confluence/plugins-osgi-cache

Закачивай изменённые jar-файлы обратно на сервер.
Запускай Confluence
Затем в General Configuration в админке, выбираем раздел Stylesheet и добавляем в него
table.confluenceTable th.confluenceTh.highlight-orange,
table.confluenceTable th.confluenceTh.highlight-orange>p,
table.confluenceTable td.confluenceTd.highlight-orange,
table.confluenceTable td.confluenceTd.highlight-orange>p {
background-color:#ffd3b6
}
table.confluenceTable th.confluenceTh.highlight-violet,
table.confluenceTable th.confluenceTh.highlight-violet>p,
table.confluenceTable td.confluenceTd.highlight-violet,
table.confluenceTable td.confluenceTd.highlight-violet>p {
background-color:#deddfa
}
table.confluenceTable th.confluenceTh.highlight-brown,
table.confluenceTable th.confluenceTh.highlight-brown>p,
table.confluenceTable td.confluenceTd.highlight-brown,
table.confluenceTable td.confluenceTd.highlight-brown>p {
background-color:#bd8e68
}
table.confluenceTable th.confluenceTh.highlight-pink,
table.confluenceTable th.confluenceTh.highlight-pink>p,
table.confluenceTable td.confluenceTd.highlight-pink,
table.confluenceTable td.confluenceTd.highlight-pink>p {
background-color:#997a8d
}
table.confluenceTable th.confluenceTh.highlight-hotred,
table.confluenceTable th.confluenceTh.highlight-hotred>p,
table.confluenceTable td.confluenceTd.highlight-hotred,
table.confluenceTable td.confluenceTd.highlight-hotred>p {
background-color:#f96161
}
table.confluenceTable th.confluenceTh.highlight-hotgreen,
table.confluenceTable th.confluenceTh.highlight-hotgreen>p,
table.confluenceTable td.confluenceTd.highlight-hotgreen,
table.confluenceTable td.confluenceTd.highlight-hotgreen>p {
background-color:#61f961
}

Всё, проверяем, на всякий случай можно сбросить кэш браузера.