target / goalert

Open source on-call scheduling, automated escalations, and notifications so you never miss a critical alert
https://goalert.me
Apache License 2.0
2.25k stars 246 forks source link

Slack User Group Sync at Service Level #3087

Open jacklassonde opened 1 year ago

jacklassonde commented 1 year ago

What problem would you like to solve? Please describe: Users have requested the ability to add multiple schedules and their on-call members to a single Slack user group. The current implementation allows syncing only at the Schedule level, limiting the possibility of combining primary and secondary on-call members in a single group.

Describe the solution you'd like: Implement Slack user group syncing at the Service level, allowing multiple schedules and their on-call members to contribute to the same Slack user group. This provides the flexibility to include all on-call team members (e.g., primary, secondary, iOS, Android) in one group. Also having the ability to have a permanent member, like a manager, would be preferred as well.

Additional context: Users are excited about the possibilities offered by syncing on-call members with Slack user groups but would like expanded functionality to handle syncing at the Service level. This feature would increase efficiency and ease of management of on-call teams and their respective channels.

mastercactapus commented 1 year ago

When I read this, I think of the complete list of on-call users from all steps (e.g., a manager is frequently step 2/3). Since Slack is a separate system, I can see the benefit of having permanent "overrides" to fill in the gaps too.

jacklassonde commented 1 year ago

There also is a use case for teams who have 2 services that are covering different rotating shifts. Their ask is to be able to assign 2 non-conflicting schedules from different services to the Slack user group. In their case, on-call schedule for service A is for US daytime hours and then rotates to different on-call schedule for service B. Would need to determine if that functionality is possible and in scope for this request

mastercactapus commented 1 year ago

I think for that case, the expectation would be to create a new service to represent the overall on-call "group" (e.g., name it "Slack Channel Monitors" or something) and then map that to the Slack user group.

I need help understanding the setup, though. Do they have two services with two teams responsible for the same application at different times? Or are these completely separate?

Services are built for and intended to represent a single application/concern (or a single region of an app). Additionally, a single schedule supports having multiple rotations of users active at different times of the day (or even days of the week).

If it's two separate applications, two teams, and two sets of availability but sharing a single slack channel & slack user group, creating a service to represent the channel's responsibilities would be the best option to join the two (once this feature is available) and assign the relevant schedules to it.