At Atlassian, we take great pride in the software we ship, and even greater pride in the success our customers achieve when they use our products. #JiraHeroes is our new monthly spotlight series where we ask customers to share their success stories with Jira Software. We hope that customers will find inspiration on how to overcome their own challenges by hearing how our #JiraHeroes overcame theirs.
This month, we’re featuring @Mykenna Cepek, who shares how she leveraged Slack automations in Jira Software to notify the right stakeholders, get access to the right documents at the right time, and streamline the billing process at her consulting firm.
Hello Atlassian Community! My name is Mykenna Cepek, and I’ve been using Jira for over 10 years. Prior to becoming a certified Agilist in 2016 (CSM, CSP, PSK-I) I was a software developer in many industries using many languages and technologies for over 20 years.
At Kinect Consulting we provide cloud consulting services to a wide variety of client companies. My roles include Sr. ScrumMaster, Agile Coach, and Atlassian Administrator. I provide support to our internal teams and departments as well as client-facing Atlassian and Agile consulting.
Kinect Consulting has a project in Jira which tracks our client engagements. Each new engagement appears on the board in the “Sold” column, and proceeds left-to-right through “Delivering”, “Billing”, and finally “Done”. This Jira board provides alignment and visibility of our active client engagements, and supports our monthly Accounts Receivable (A/R) activities.
Some critical information is required before we can bill a client. In the consulting world, you’d like to be paid monthly for the services being delivered. Not being able to send invoices to clients is a major impediment.
The problem became apparent to us as engagements on the board would move across the board, but A/R was missing key client information like tax-related and signed business documents. Our process was to attach those documents to the engagement issue in Jira.
We tried using color to highlight these issues on the board. We also thought about adding another column for “blocked”. The problem with these approaches was that they were all passive. Hoping that someone would notice simply wasn’t working.
Our Sales and Marketing staff are great at adding new engagements to the board, but this Jira board was only reviewed weekly by the larger group. This left A/R trying to track things down ad-hoc, and “repeated nagging” is no fun in a job description.
We make great use of Slack as a collaborative tool, and we already had a Slack channel for everyone from Sales, Marketing and A/R. As I was brainstorming with our accounting folks, someone suggested sending reminders to that Slack channel for missing documents.
This was our first time sending messages to Slack from Jira. The Jira automation documentation here helped integrate Jira to use the “Send Slack message” action. Webhooks are created and edited in Slack under “Administration > Manage apps > Custom Integrations > Incoming Webhooks”.
Early versions of these rules put the messages into a temporary channel for beta testing and feedback. Once the rules were ready, A/R let everyone know about the change in their weekly meeting with Sales and Marketing. I also created a brief Confluence page documenting the messages and what they meant, sharing that document with everyone involved.
A/R already reviews every new engagement, and will notice if any missing documents are discovered. Our new process is that A/R will set one new field in that engagement issue if documents are missing. The reminders in Slack are then automatic.
What changed in Jira?
Our solution involved two new custom fields in Jira, and two new Jira Automation rules. The new custom fields were:
“Blocked on” – a text field summarizing what documents are missing
“Blocked since” – a timestamp field indicating when “Blocked on” got filled in
Let’s walk through the user-facing functionality with a fictional example:
Bob Smith creates a new issue (GMO-246) for “Blue Tomatoes”.
The “Blocked on” field is set to “FDA approval” as soon as we realize that we can’t proceed without it.
Right away, a Slack message like the following is sent: “Bob Smith: GMO-246 - Blue Tomatoes is now blocked on: FDA approval”.
Then, every Monday morning, a Slack message like the following is sent: “Bob Smith: GMO-246 - Blue Tomatoes has been waiting for 26 days on: FDA approval” for that engagement.
When the necessary document is added to GMO-246, we manually clear the “Blocked on” field, which terminates the reminder weekly reminder messages for that engagement issue.
If multiple engagements are missing documents, each one generates a separate message into the Slack channel.
How do the automation rules work?
Let’s call the two Jira Automation rules behind this functionality Reminder-1 and Reminder-2.
Reminder-1 simply remembers when this issue became blocked, and sends out the initial message. Here’s a summary of this rule:
Trigger: “Field Value Changed” on the “Blocked on” field
Condition: “Blocked on” field is not empty
Condition: previous value of “Blocked on” field was empty
Actions:
Set the “Blocked since” field to the current timestamp
Send an initial Slack message
Reminder-2 contains the magic of the weekly messages:
Trigger: “Scheduled” for once per week
Branch: loop on issues matching JQL “Project=GMO and ‘Blocked on’ is not empty”
Create variable: days={{“Blocked since”.diff(now).days}}
If {{days}} greater than 6, then send a reminder Slack message
The integration with Slack is configured to format the message for both rules to look like the following, in order to be extra noticeable and clear:
Show me the rules!
Here’s a screenshot of what the Reminder-1 rule looks like:
And here’s what Reminder-2 looks like:
Was it effective?
It sure was! Prior to this change, we often had many issues that lingered for months without the required documentation.
Now it’s rare that we have one which remains blocked for more than a few weeks. Here’s a quote from our A/R staff:
“...there was a significant decrease in pending items essential to Business Operations. It has been a great success.”
Part of the success of this strategy was the use of the Slack channel. Since Sales and Marketing were on-the-hook to provide the missing documents, the increased visibility in the channel provided that extra incentive.
Also, having it automated eliminated the “ongoing reminder overhead” for A/R, who definitely have more important things to do. These two little rules have had a direct, positive effect on our company cash flow - now that’s some value-add!
Be open to experimenting. Start simple and try something. Learn from it, and then iterate, give it some more time, or pivot.
Most importantly: really listen to your users. As a Jira admin, it’s easy for me to think up some new automation or configuration. What matters more is that I clearly understand the problem first -- otherwise I might not end up addressing their concern very well.
Beyond making use of the Atlassian Community (which is a must), I would say get good at using JAC to look up problems already reported to Atlassian. Why? Because you might learn a workaround -- and also you can vote.
Jira admins should realize that their JAC votes literally guide Atlassian’s priorities for fixing bugs and enhancing Jira. Represent your users, advocate for admins, and vote for JAC issues that affect you, your teams, and your organization.
The idea for this article came from feedback to this Atlassian Community topic. I offered a few automation tips and several people replied asking for more details about how we implemented Slack reminders using Jira Automation.
Thank you for taking the time to read about these rules. Please share in the comments about your use cases, or questions you might have about this automation.
Learn more about Kinect Consulting at kinect-consulting.com
Thank you so much for sharing your insights, Mykenna!
Are you inspired by Mykenna's story? Do you have a story of your own that you’d like to share? Check out our call for submissions, and let us know you’re interested in the comments below! 🙌🏼
Rachel Tang
0 comments