Note: Runbooks are currently in beta; contact [email protected] for early access

FireHydrant lets you include incident data in runbook steps like Slack channel notifications and email notifications.

We use the Liquid template language to enable interpolation of variables in your
messages. In addition to being able to control the content of the message, you're able to format it using Markdown syntax.

Variables

incident.id: 2a73ba58-1c13-489e-9200-b3993e1dcb60
incident.name: Service x failure rate is >10%
incident.created_at: 2019-09-10T18:49:50.549Z
incident.summary: Support noticed an increase in tickets from customers about calls to service x failing
incident.description:
incident.current_milestone: acknowledged
incident.severity: SEV1
incident.severity_impact: some
incident.severity_condition: unavailable
incident.active: true
incident.labels: {"my_label": "my_value"}
incident.incident_url: https://app.firehydrant.io/incidents/2a73ba58-1c13-489e-9200-b3993e1dcb60/incident/overview
incident.private_status_page_url: https://app.firehydrant.io/incidents/internal/status-page/7e50a7f7-facd-4e39-b2f3-babec9548fc5/a0b0c0d0...
incident.organization.name: FireHydrant, Inc 

Note: When incidents are created, you may not have services, environments or roles assigned yet. We recommend that you disable automatic execution of a step if you include this information in the notification.

Examples

Notify your support team of all incidents as soon as they're opened:

Email Subject:
 {{ incident.severity }} incident started 

Personalized Message:

A {{ incident.severity}} incident has been started in FireHydrant. More information will be available as the team triages the incident. 

*Summary:* {{ incident.summary }}
*Status Page*: {{ incident.private_status_page_url }}

Complex example listing roles and impacted services


### {{ incident.severity }}: {{ incident.name }}

---

##### Summary

{{ incident.summary }}

---

##### Description

{{ incident.description }}

---

##### Impact

{% if incident.environments != empty %}

Environments:

{% for environment in incident.environments %}

* {{ environment.name }}

{% endfor %}

{% endif %}

{% if incident.services != empty %}

Services:

{% for service in incident.services %}

* {{ service.name }}

{% endfor %}

{% endif %}

{% if incident.functionalities != empty %}

Functionalities:

{% for functionality in incident.functionalities %}

* {{ functionality.name }}

{% endfor %}

{% endif %}

---

##### Labels

{% for label in incident.labels %}

**{{ label[0] }}:** {{ label[1] }}

{% endfor %}

---

##### Roles:

{% for role in incident.role_assignments %}

**{{ role.incident_role.name }}:** {{ role.user.name }}

{% endfor %}

---

[View Status Page]({{ incident.private_status_page_url }})
Did this answer your question?