Escalation Polices
### Release Notes
Being on-call is stressful and a 24/7 job. Even when you are on-call, it is possible to miss a notification despite best efforts and intentions. Escalation policies exist as a safety net for these situations. Teams that maintain critical systems cannot afford to miss alerts for outages or service disruptions. Escalation Policies contained time boxed steps that will automatically page a responder in the next escalation step if the responder in the step before has not responded. To protect your company from missed critical alerts, create an escalation policy in the GitLab project where you manage on-call schedules.
### Problem to solve
Being on-call is stressful and a 24/7 job. Even when you are on-call, it is possible to miss a notification despite best efforts and intentions. Escalation policies exist as a safety net for these situations. Teams that maintain critical systems cannot afford to miss alerts for outages or service disruptions. Escalation Policies contained time boxed steps that will automatically page a responder in the next escalation step if the responder in the step before has not responded. This protects companies from missing alerts.
## Intended Users
* [Devon (DevOps Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#devon-devops-engineer)
* [Allison (Application Ops)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#allison-application-ops)
* [Priyanka (Platform Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#priyanka-platform-engineer)
## User Experience
Users can create a single escalation policy in a project. This will use schedules also created in that project.
## Proposal
**Escalation Policies are a required part of the Incident Management object relationship. Alerts cannot page people on-call without escalation policies. Alerts trigger escalation policies which dictate WHERE the system looks for the on-call responder (i.e. the schedule) at what time. Schedules are useless WITHOUT an escalation policy.**
Users can create a single escalation policy in a project. This will use schedules also created in that project. There will be two options for escalation steps:
- Notify on-call responder in SCHEDULE
- Notify user directly USER NAME (user gets paged directly) - FUTURE ADDITION
For the MVC, users will only be able to create a single escalation policy in a project AND they will only be able to notify on-call responders in another schedule. We will add the **Notify user directly USER NAME** step in a future iteration.
## MVC Designs
| Empty state | Add a policy modal | ACK dropdown options | Notify user dropdown options | Schedule dropdown example | Email user dropdown options | Populated modal example | Single escalation policy added |
| ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ |
|  |  || |  |  |  |  |
[Figma file](https://www.figma.com/file/gZF7Vvj1mmZGZFkV9wXTpY/Design-discovery-on-call-scheduling-gitlab-com-and-25995?node-id=593%3A32096) (MVC Escalation Policy page)
epic