My colleague asked me about this article:
Wherein @Daniel Eads provides a Python script to connect to the Slack API and for every user in the Slack workspace, obtain their User ID and then write a Jira User Property for each user with that ID.
Which... is cool. But sounds like a lot of work. And you have to regularly schedule it to run, or trigger it when there's a new user added to... Slack? Ugh. I ain't got time for that. :-}
Why not use the Slack API to look up just the User ID you need?
So I also created a Slack App bot (not user) token with users:read.email scope and then used it in a Web Request to call the Slack API users.lookupByEmail method.
My colleague was sending a Slack notification to let Assignees know when a ticket has breached SLA, so here's the Web Request URL, and so he needed their Slack User ID for the @mention.
https://slack.com/api/users.lookupByEmail?email={{issue.assignee.emailAddress}}
It's a GET, and you should check the Delay checkbox that pauses your automation until it gets a response back.
Note that your Slack token needs to be in an Authorization header as shown, and the Value should be: Bearer YOURTOKEN. Once you've confirmed it works, it's good practice to Hide it, as other admins (including Project admins) would otherwise be able to see it.
Finally, to format the @mention properly for Slack you'll use this
<@{{webResponse.body.user.id}}>
Here's a screenshot:
Here's before and after examples of the rule in action. (Previously it was just showing {{issue.assignee.displayName}}.)
I guess if you're trying to minimize Web Requests calls (oh no, are they going to start charging us for them?), then syncing all the IDs to User Properties is a fine approach. It certainly is faster.
But that's a lot of infrastructure you have to maintain. I thought moving to the Cloud was supposed to free us up from that. :-}
Darryl Lee
Sr. Atlassian Systems Engineer
Roku, Inc.
San Jose, CA
192 accepted answers
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
1 comment