If you want to find out who is on-call via Slack, and not reinvent the wheel, you can use this nifty tool here: https://devpost.com/software/pagerduty-oncall-slack-bot.
Appreciate the contribution though any chance adding this to Slack extension?
This should be a standard offering by PagerDuty with the various messaging integrations as this is essential for all customers enabling their support and NOC staff.
From what I can see this isn’t written by someone on the PD team - it’s a hackathon project for AWS Lambda. As such I 100% wouldn’t expect this to be supported by PD in house, though them making a tool would be nice.
As the project itself states, it’s not too hard to make one though - you just have to have the bot query out via the API.
“It is simply node.js using the request node module to call the PagerDuty API and moment-timezone to translate schedules for the Slack user’s timezone. serverless is used to deploy the code to AWS Lambda.”
My org has its own custom-built solution using the groundwork of other slackbots and the excellent API. But if you’re having issues putting something together, this hackathon project is a pretty good starting point. (it works!)
Thanks for the comments. That’s correct, this has been written externally. Having said that, we have heard requests for providing this information in our supported Slack extension and that work is currently on the roadmap. I’ll reach back out once this is closer to being worked on.
Hi Sidd, is there any news on where this is on your roadmap? Cheers
I am stepping in for Sidd, I hope you do not mind. At the moment, PagerDuty has not added this feature yet. However, a workaround that can work is exporting your on-call schedules. Here is a link that explains the process for exporting your schedules within your account.
Thanks Jay, I’ll take a look!
This should be a basic feature of the PD and Slack integration, for anyone to type /pd on-call and see who’s on call for a given team, since calendar postings to the channel get pushed up and away into any active channel.
In addition, PD should be able to update slack user groups with the current on-call people, so that anyone can just @on-call-team-x to reach that person.
Those are awesome tools, but before anybody goes to set those up I just wanted to note that slack-pagerduty-oncall.py and pagerbot are still using REST API v1. This means that - in their current state - they’ll both stop working when REST API v1 is shut down on October 18th, 2018
This is a super useful feature to have in the Slack integration - is it at least on the PD roadmap? What priority has it been assigned?
Hey we just added a new activity to RigD for getting on Cal infol as it was asked by a few people we met at PagerDuty Summit. We did it based on the service. Curious if there are other dimensions people might want to see the schedule for.
As an FYI RigD users v2 APIs and is a PagerDuty partner not an open source project.
here is what it currently looks like in slack.
Check it out this simple one I built:
Any updates on this feature request? This feels like a must have as a Slack integration.
Honestly it feels like murder for a medium-large PagerDuty installation - we have up to 50 On-calls and the amount of spam an integration like this would cause would completely outweigh any benefits to us.
We use a Slack bot to respond to keywords which map to fixed Escalation Policy + Schedule pairs to ensure one request returns a single On-call - https://gist.github.com/simonfiddaman/5bcfe162aecc20cb534ef40ed849cf02
I took a look at your code. As you said you are essentially taking an explicit schedule and escalation policy, whereas when we added in teams support we essentially are looking for schedules by team and then showing each escalation per level. I’m curios if you guys use teams there? if so i’m curious how are approach would compare to yours as far as accuracy and noise.
here is our latest from a teams perspective.
Your approach seems fine for most people - it’s certainly dynamic, removing all the manual configuration I have to do; I was commenting on the “just show me everything” requests further up the thread.
My NOC Team is in the Escalation Policy for almost all responses, and their position changes depending on the Escalation Policy (and Service), plus (at least initially) it was often the NOC who needed to know who was the escalation point for a given Team or Product, so I needed a way to filter them out (using the
Schedule in addition to the
Escalation Policy achieves this). We also repeat individuals within the Escalation Policy (e.g. for our
High Priority EPs we have 1. On-call, 2. NOC + On-call, 3. On-call again (or On-call + secondary at Level 3).
I don’t have any other good way of performing this filtering dynamically - one of the issues I have with
Teams is they are already dynamic-ish and it would be a whole extra set of calls and logic to find members of a Team that contains only the NOC members and excludes them one-by-one. I would still have to perform uniqueness filtering (see your example - you have yourself on both L1 + L2 (I wish I could rename EP Levels - that would save some confusion!)).
Having said all that, for specific feedback - I prefer a more condensed message set (my script outputs a single line per On-call returned), and for my uses we’d miss the deduplication / filtering. We do use Teams, but only as a view filter (
My Teams), and a given On-call group may be a member of multiple Teams to control those views, so the EP + Schedule could be bound to one or other Teams which you may not be aware of up-front.
We still use too few Services (as part of on-boarding into PagerDuty I setup “High”, “Normal” and “Low” Priority concepts with one of each of these as Services (“Low” is hidden from NOC view as it’s mostly unactionable noise and thus bound to a separate Team) so we currently have somewhat well enough defined Services to make them easily selectable in a menu response, but in the future we may have multiple similarly named Services, distinguishable by their EP (and therefore Team), rather than their names.
Hope that helps - sorry I didn’t get a chance to meet / chat with you at Summit.
Thanks for the great details Simon.
We were also having the same problem here are IBM. We’ve created a sample flow in IBM App Connect that is available for others to add to their own IBM App Connect account and modify as they require. You can provision a trial version (Lite plan) for free through IBM Cloud and search for the
App Connect offering from the Catalog: https://console.bluemix.net/catalog/ Once you have provisioned an instance of the service navigate to
Templates and look for
Get PagerDuty schedule and update Slack user group and topic. We already have some ideas on how we are going to improve it but would welcome feedback from the PD community too!
Hi all -
Sean here from the Product team at PagerDuty. Thanks for the various suggestions around this feature. Good news – this is on our roadmap for the Slack integration and the functionality will be available in the core integration.
Let me know if you’re interested in joining the early access program. This will be kicking off in the new year.
Hi @sean, I’d definitely be interesting in joining the early access programme when it starts.