Workflow Properties in Jira Service Management

Still need help?

The Atlassian Community is here for you.

Ask the community

We do not recommend manually configuring your Jira Service Management workflow properties. We introduced automation rules in Jira Service Management 2.4, which can be used to automatically transition issues when a comment is added.


Workflows in Jira Service Management are different from regular Jira applications workflows. Jira Service Management workflows have additional properties that Service Management uses to transition issues through the workflow. You may encounter problems transitioning issues in the customer portal if the workflow associated with a Service Management project does not have the properties mentioned below. As noted, we recommend using automation rules to make any workflow adjustments.

Workflow

  • The "sd.workflow.key" property must be added to the workflow. This goes near the start of the workflow XML.
  • The value of the property will be "sdItSupport" as seen in the example below
  • The following is a copy of the first few lines of an XML workflow. The property is added in the <workflow> prior to <initial-actions>

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE workflow PUBLIC "-//OpenSymphony Group//DTD OSWorkflow 2.8//EN" "http://www.opensymphony.com/osworkflow/workflow_2_8.dtd">
    <workflow>
      <meta name="jira.description"></meta>
      <meta name="jira.update.author.key">tim</meta>
      <meta name="jira.updated.date">1420821503661</meta>
      <meta name="sd.workflow.key">sdItSupport</meta>
      <initial-actions>

Steps

  • The "sd.step.key" property must be added to each step of the workflow in order for Jira Service Management to know who the request is waiting for (support or customer)
  • WaitingForSupport = "sdWFSupport"
  • Click here to expand example...

      <step id="5" name="Reopened">
          <meta name="jira.status.id">4</meta>
          <meta name="sd.step.key">sdWFSupport</meta>
          <actions>

  • WaitingForCustomer = "sdWFCustomer"
  • Click here to expand example...

        <step id="3" name="Pending Customer">
          <meta name="sd.step.key">sdWFCustomer</meta>
          <meta name="jira.status.id">3</meta>
          <actions>

  • Resolved = "sdResolved"
  • Click here to expand example...

    <step id="4" name="Resolved">
          <meta name="jira.status.id">5</meta>
          <meta name="sd.step.key">sdResolved</meta>
          <actions>

Actions

  • The "sd.action.key" property must be added to each workflow action that will be transitioning the issue between statuses
  • Adding these will cause Jira Service Management to automatically transition the issue when the customer adds a comment or when a Service Management Agent makes a comment directed toward the customer
    • CustomerToSupport = "sdWFCustomerToWFSupport"
    • Click here to expand example...

              <action id="721" name="T2">
                <meta name="jira.description"></meta>
                <meta name="jira.fieldscreen.id"></meta>
                <meta name="sd.action.key">sdWFCustomerToWFSupport</meta>
                <results>

    • SupportToCustomer = "sdWFSupportToWFCustomer"
    • Click here to expand example...

            <actions>
              <action id="731" name="T3">
                <meta name="jira.description"></meta>
                <meta name="jira.fieldscreen.id"></meta>
                <meta name="sd.action.key">sdWFSupportToWFCustomer</meta>

    • CustomerToResolved = "sdWFCustomerToResolved"

    • Click here to expand example...

              <action id="741" name="R1">
                <meta name="jira.description"></meta>
                <meta name="jira.fieldscreen.id"></meta>
                <meta name="sd.action.key">sdWFCustomerToResolved</meta>

    • SupportToResolved = "sdWFSupportToResolved"
    • Click here to expand example...

          <action id="742" name="R1">
                <meta name="jira.description"></meta>
                <meta name="jira.fieldscreen.id"></meta>
                <meta name="sd.action.key">sdWFSupportToResolved</meta>

Default Service Management Workflow

  • Here is a copy of the default Service Management workflow
  • Click here to expand...
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE workflow PUBLIC "-//OpenSymphony Group//DTD OSWorkflow 2.8//EN" "http://www.opensymphony.com/osworkflow/workflow_2_8.dtd">
    <workflow>
      <meta name="jira.update.author.name">admin</meta>
      <meta name="jira.update.author.key">admin</meta>
      <meta name="sd.workflow.key">sdItSupport</meta>
      <meta name="jira.description"></meta>
      <meta name="jira.updated.date">1383883468586</meta>
      <initial-actions>
        <action id="1" name="Create Issue">
          <meta name="opsbar-sequence">0</meta>
          <meta name="jira.i18n.title">common.forms.create</meta>
          <meta name="jira.description"></meta>
          <meta name="sd.action.key">sdInit</meta>
          <validators>
            <validator name="" type="class">
              <arg name="class.name">com.atlassian.jira.workflow.validator.PermissionValidator</arg>
              <arg name="permission">Create Issue</arg>
            </validator>
          </validators>
          <results>
            <unconditional-result old-status="Finished" status="Open" step="11">
              <post-functions>
                <function type="class">
                  <arg name="class.name">com.atlassian.jira.workflow.function.issue.IssueCreateFunction</arg>
                </function>
                <function type="class">
                  <arg name="class.name">com.atlassian.jira.workflow.function.event.FireIssueEventFunction</arg>
                  <arg name="eventTypeId">1</arg>
                </function>
              </post-functions>
            </unconditional-result>
          </results>
        </action>
      </initial-actions>
      <steps>
        <step id="4" name="sd.workflow.itsupport.step.name.resolved">
          <meta name="sd.step.key">sdResolved</meta>
          <meta name="jira.status.id">10000</meta>
          <actions>
            <action id="861" name="sd.workflow.itsupport.transition.reopen.name" view="fieldscreen">
              <meta name="jira.i18n.submit">sd.workflow.itsupport.transition.reopen.submit</meta>
              <meta name="jira.description"></meta>
              <meta name="jira.i18n.title">sd.workflow.itsupport.transition.reopen.title</meta>
              <meta name="jira.fieldscreen.id">10005</meta>
              <meta name="sd.resolution.clear"></meta>
              <results>
                <unconditional-result old-status="Not Done" status="Done" step="11">
                  <post-functions>
                    <function type="class">
                      <arg name="field.value"></arg>
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.UpdateIssueFieldFunction</arg>
                      <arg name="field.name">resolution</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowupdateissuestatus-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.misc.CreateCommentFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowcreatecomment-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowgeneratechangehistory-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.IssueReindexFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowreindexissue-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.event.FireIssueEventFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowfireevent-function</arg>
                      <arg name="eventTypeId">13</arg>
                    </function>
                  </post-functions>
                </unconditional-result>
              </results>
            </action>
          </actions>
        </step>
        <step id="8" name="sd.workflow.itsupport.step.name.waitsup">
          <meta name="sd.step.key">sdWFSupport</meta>
          <meta name="jira.status.id">10004</meta>
          <actions>
            <action id="801" name="sd.workflow.itsupport.transition.resolved.name" view="fieldscreen">
              <meta name="sd.tour.resolve.step">true</meta>
              <meta name="jira.i18n.submit">sd.workflow.itsupport.transition.resolved.submit</meta>
              <meta name="jira.description"></meta>
              <meta name="jira.i18n.title">sd.workflow.itsupport.transition.resolved.title</meta>
              <meta name="jira.fieldscreen.id">10003</meta>
              <meta name="sd.action.key">sdWFSupportToResolved</meta>
              <results>
                <unconditional-result old-status="Not Done" status="Done" step="4">
                  <post-functions>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowupdateissuestatus-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.misc.CreateCommentFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowcreatecomment-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowgeneratechangehistory-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.IssueReindexFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowreindexissue-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.event.FireIssueEventFunction</arg>
                      <arg name="eventTypeId">13</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowfireevent-function</arg>
                    </function>
                  </post-functions>
                </unconditional-result>
              </results>
            </action>
            <action id="851" name="sd.workflow.itsupport.transition.waitcus.name" view="fieldscreen">
              <meta name="jira.i18n.submit">sd.workflow.itsupport.transition.waitcus.submit</meta>
              <meta name="jira.i18n.title">sd.workflow.itsupport.transition.waitcus.title</meta>
              <meta name="jira.description"></meta>
              <meta name="jira.fieldscreen.id">10004</meta>
              <meta name="sd.action.key">sdWFSupportToWFCustomer</meta>
              <results>
                <unconditional-result old-status="Not Done" status="Done" step="10">
                  <post-functions>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowupdateissuestatus-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.misc.CreateCommentFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowcreatecomment-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowgeneratechangehistory-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.IssueReindexFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowreindexissue-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.event.FireIssueEventFunction</arg>
                      <arg name="eventTypeId">13</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowfireevent-function</arg>
                    </function>
                  </post-functions>
                </unconditional-result>
              </results>
            </action>
          </actions>
        </step>
        <step id="10" name="sd.workflow.itsupport.step.name.waitcus">
          <meta name="sd.step.key">sdWFCustomer</meta>
          <meta name="jira.status.id">10002</meta>
          <actions>
            <action id="761" name="sd.workflow.itsupport.transition.resolved.name" view="fieldscreen">
              <meta name="jira.i18n.submit">sd.workflow.itsupport.transition.resolved.submit</meta>
              <meta name="jira.description"></meta>
              <meta name="jira.i18n.title">sd.workflow.itsupport.transition.resolved.title</meta>
              <meta name="jira.fieldscreen.id">10003</meta>
              <meta name="sd.action.key">sdWFCustomerToResolved</meta>
              <results>
                <unconditional-result old-status="Not Done" status="Done" step="4">
                  <post-functions>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowupdateissuestatus-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.misc.CreateCommentFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowcreatecomment-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowgeneratechangehistory-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.IssueReindexFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowreindexissue-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.event.FireIssueEventFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowfireevent-function</arg>
                      <arg name="eventTypeId">13</arg>
                    </function>
                  </post-functions>
                </unconditional-result>
              </results>
            </action>
            <action id="781" name="sd.workflow.itsupport.transition.waitsup.name">
              <meta name="jira.i18n.submit">sd.workflow.itsupport.transition.waitsup.submit</meta>
              <meta name="jira.description"></meta>
              <meta name="jira.i18n.title">sd.workflow.itsupport.transition.waitsup.title</meta>
              <meta name="jira.fieldscreen.id">10002</meta>
              <meta name="sd.action.key">sdWFCustomerToWFSupport</meta>
              <results>
                <unconditional-result old-status="Not Done" status="Done" step="8">
                  <post-functions>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowupdateissuestatus-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.misc.CreateCommentFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowcreatecomment-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowgeneratechangehistory-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.IssueReindexFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowreindexissue-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.event.FireIssueEventFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowfireevent-function</arg>
                      <arg name="eventTypeId">13</arg>
                    </function>
                  </post-functions>
                </unconditional-result>
              </results>
            </action>
          </actions>
        </step>
        <step id="11" name="sd.workflow.itsupport.step.waittriage">
          <meta name="sd.step.key">sdUntriaged</meta>
          <meta name="jira.status.id">10001</meta>
          <actions>
            <action id="831" name="sd.workflow.itsupport.transition.resolved.name" view="fieldscreen">
              <meta name="jira.description"></meta>
              <meta name="sd.tour.resolve.step">true</meta>
              <meta name="jira.fieldscreen.id">10003</meta>
              <results>
                <unconditional-result old-status="Not Done" status="Done" step="4">
                  <post-functions>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowupdateissuestatus-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.misc.CreateCommentFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowcreatecomment-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowgeneratechangehistory-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.IssueReindexFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowreindexissue-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.event.FireIssueEventFunction</arg>
                      <arg name="eventTypeId">13</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowfireevent-function</arg>
                    </function>
                  </post-functions>
                </unconditional-result>
              </results>
            </action>
            <action id="841" name="sd.workflow.itsupport.transition.waitsup.name">
              <meta name="jira.i18n.submit">sd.workflow.itsupport.transition.waitsup.submit</meta>
              <meta name="jira.i18n.title">sd.workflow.itsupport.transition.waitsup.title</meta>
              <meta name="jira.description"></meta>
              <results>
                <unconditional-result old-status="Not Done" status="Done" step="8">
                  <post-functions>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.UpdateIssueStatusFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowupdateissuestatus-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.misc.CreateCommentFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowcreatecomment-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.GenerateChangeHistoryFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowgeneratechangehistory-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.issue.IssueReindexFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowreindexissue-function</arg>
                    </function>
                    <function type="class">
                      <arg name="class.name">com.atlassian.jira.workflow.function.event.FireIssueEventFunction</arg>
                      <arg name="full.module.key">com.atlassian.jira.plugin.system.workflowfireevent-function</arg>
                      <arg name="eventTypeId">13</arg>
                    </function>
                  </post-functions>
                </unconditional-result>
              </results>
            </action>
          </actions>
        </step>
      </steps>
    </workflow>

Last modified on Sep 6, 2022

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.