Report based on Issue Description

I have imported Issue Description dimension.
All of the issues in their description will have a repeating information. I need to be able to filter a specific sentence and make them as a separate type, then count the number of issues for that type and also include Status as the 3rd dimension.

Example Description text:

User: s12345
Location: Stockholm
Business reason for request: reason reason reason
Access level: Type 1
Date until this request must be completed: 2022-05-01

So in my case I need to extract access level as Type 1 (there will be either type 1 / type 2 / type 3) make them as separate “category”. Count number of requests that are related to either Type 1/type 2/type 3 and also show their statuses.

We do not have separate fields for these “levels”, because we have hundreds of such issues with different texts in description, so we cannot create custom fields in Jira for every single case. Therefore I was hoping maybe we can still do something out of the Description field.

The final idea is something like this:


Hi @Osvalda,

Sorry to see no answers were proposed to you sooner.

In this case, you might want to create a new dimension “Type from Description” containing specific keywords from the issue descriptions. This dimension will alow you to group any measure (Issues created, Issues resolved, hours spent, etc.) by the keywords.

  1. Create a new JavaScript calculated custom field “Access Level” that woudl check on specific word patterns. Note the description field is available for data import and javascript calculated custom field only on Cloud.
    For more details on JavaScript calculated custom fields, how to create and test then, and code examples read the documentation: JavaScript calculated custom fields

    The advanced settings and the code (for Cloud) might look like this:

    name = "Access Level"
    data_type = "string"
    dimension = true
    json_fields = ['description']
    javascript_code = '''
    //if field has value 
    if (issue.fields.description) {
      //and field content contains text Access level:
      if (issue.fields.description.match(".*(Access level:).*")) {
        //get text following of Access level: till the break of line \n
        var type = issue.fields.description.match(".*Access level: ([^\n]+)")[1];
        //return only the type value
        issue.fields.customfield_acclevel = type;
  2. Go to import options and select the new custom field “Access Level” for data import as dimension and property.

  3. In the report, use dimensions “Access Level” with predefined measurs. For example, to see how many issues have a specific Type, use measure “Issue created” and dimension “Access Level”.

Zane /