Zapier & Better Stack integration

Connect Better Stack incidents, on-call and status pages to thousands of apps with Zapier. Zapier is available on every Better Stack plan. See all Better Stack triggers and actions on Zapier

Connect Zapier

  1. Go to Integrations → Zapier and click Add.
  2. In Zapier, create a Zap and search for Better Stack.
  3. Select a trigger or an action, then connect a new account.
  4. Click the Better Stack team to connect.
  5. Test the step and finish your Zap.

One connection belongs to one Better Stack team. Zapier names it after your organization, the team and who connected it, for example Acme: Production (Johnny McCode). To use several teams, connect each one as a separate account.

Using filters or searches?

Filter and search steps, like the ones in the examples below, need a Zapier plan with multi-step Zaps.

What you can build

For example:

  • Log each incident in one spreadsheet row: New or Updated Incident → Google Sheets Find or Create Row by Incident ID → Update Spreadsheet Row.
  • Open an incident from a form: Typeform New Entry → Create Incident.
  • Tell the team who's on-call: On-Call Contact Changed → Slack Send Channel Message.
  • Copy comments to Jira:
    • New or Updated Incident → Jira Find Issues (Via JQL) by Incident ID → create the issue if there's none, with Incident ID in a custom field.
    • New Incident Comment → Jira Find Issues (Via JQL) by Incident ID → Add Comment to Issue.
  • Run maintenance from a task tracker:
    • A new task → Create Status Page Maintenance, with the task's ID as External reference.
    • The task starting or closing → Update Status Page Maintenance with Start now or End now.
    • A comment on the task → Post Status Page Maintenance Update, with the comment's ID as Update reference.
  • Mirror another tool's incidents on your status page:
    • An incident opening there → Create Status Page Report, with its ID as External reference.
    • A note on it → Post Status Page Report Update, with the note's ID as Update reference.
    • The incident closing → Resolve Status Page Report.

Find ready-made templates under Integrations → Zapier

How do I stop comments from looping?

Comments added with Add Incident Comment run New Incident Comment too, so two Zaps that copy comments between Better Stack and another app trigger each other. Enter a fixed Comment by such as Jira sync, and filter out comments whose Commented by is Jira sync.

Triggers

New or Updated Incident

Runs when an incident starts, and again when it's acknowledged, resolved or reopened. Incident status says which: started, acknowledged, resolved or reopened. Add a Filter step on it to act on one stage.

  • With an escalation policy, a Zap runs once a step of the escalation policy alerts it, then at each later stage. In the step's Who should we alert?, select Zapier Zaps for all your Zaps, or a single one, such as Zapier Zap (ID 123). The new policy form preselects Zapier Zaps in the first step.
  • Each later step or repeat that alerts a Zap sends it started again. To keep one record per incident, search for it by Incident ID first, as the examples do.
  • SSL certificate and domain expiration incidents run Zaps only when the monitor's How should we alert you about expiration? is an escalation policy that alerts them.

The trigger doesn't include the monitor's ID, URL or the incident's severity, so filter on Incident title, or use outgoing webhooks for a richer payload. Timestamps are in UTC.

Anyone with a link to a failing check's response, its screenshot or a comment attachment can open it without signing in, and the links don't expire. Copy them only to tools where everyone may see them.

New Incident Comment

Runs for every comment on the team's incidents, whatever the escalation policy. That includes comments from Better Stack, Slack, Microsoft Teams, e-mail replies and the API. Escalation policy instructions and comments with only attachments count too. It doesn't run for:

  • Incident descriptions, such as the one Create Incident adds.
  • Comments posted by monitoring integrations such as Datadog or Grafana.
  • Replies in the incident channel of a Channel-based Slack integration.
  • Comments on SSL and domain expiration incidents that use E-mail entire team.
  • Edits and removals.

Commented by holds the author's name, Comment added using API for API comments, or Instructions comment and Instructions follow up for escalation policy instructions.

On-Call Contact Changed

Needs a plan with on-call scheduling. Runs when the on-call person changes on:

  • The Primary calendar, when a monitor, heartbeat or integration without an escalation policy alerts through it.
  • A calendar used by an escalation policy that a monitor, heartbeat or integration uses.

It sends a single message that starts with the team name, for example Production: Johnny McCode (johnny@example.com) is now on-call for Weekend calendar. When nobody's on-call, it reads like Production: No one is on-call for Weekend calendar right now, ….

Incident actions and searches

Actions and searches work on incidents in the team you connected. Create Incident, Acknowledge Incident, Resolve Incident and Find Incident return the same fields as the New or Updated Incident trigger.

Create Incident

Without an escalation policy, the alert settings and Team alert wait time decide who's alerted.

Field What to enter
Brief summary Required. Shown as the incident's cause.
Requester e-mail Required. A team member's e-mail links the incident to them. Any other e-mail is shown as entered.
Short name The incident's title, Zapier trigger by default.
Description Added as the first comment.
Escalation policy ID The number in the policy's URL, such as 123 in /policies/123/edit. Needs escalation policies on your plan.
Alert settings: Call, SMS, E-mail and Push notification All on by default. Calls, SMS and push notifications need them on your plan.
Team alert wait time Seconds to wait for the on-call person before alerting the whole team, 300 by default. 0 alerts the whole team right away. A negative value alerts only the on-call person, or the whole team when nobody's on-call.

A new incident can join an existing incident group, in which case it may already be acknowledged.

Acknowledge, resolve and comment

Acknowledge Incident, Resolve Incident and Add Incident Comment need an Incident ID from a trigger or Find Incident. In Acknowledged by, Resolved by and Comment by, a team member's e-mail records that team member, and any other text is shown as written. They default to Zapier user, or A zapier user on Resolve Incident.

Acknowledging an incident that's already acknowledged or resolved, or resolving a resolved one, changes nothing.

Find Incident and Find On-Call Contact

  • Find Incident looks an incident up by its Incident ID. An ID the team doesn't have fails the step instead of returning nothing.
  • Find On-Call Contact returns who's on-call now, or at the Date & time you enter, which Zapier reads in your Zap's time zone unless it names one. You get one on-call team member's name, e-mail and phone numbers, preferring the Primary calendar, plus everyone on-call across your calendars. Name and e-mail are empty when nobody's on-call.

Status pages

Schedule maintenance on your status pages, or mirror another tool's incidents on them. These actions work on the status pages of your connected team's organization.

When you create a window or report, External reference names it with your own ID, such as the ID of the task or incident it tracks. The other steps find it by its Status page and External reference, so they only work on windows and reports a Zap created with one, not ones created in Better Stack.

Testing a step changes your status page for real

A Zap editor test schedules, updates and resolves for real, but steps with Notify subscribers never notify from a test. Update Status Page Maintenance has no such field, and ending a window posts Better Stack's Maintenance ended update, which can notify, so test it on a window whose first update notified nobody. Resolve test reports straight away, without notifying subscribers.

Create Status Page Maintenance

  • Status page, Title, Description and Ends at are required. The description is the window's first update.
  • Starts at defaults to now. Zapier reads a time without a time zone in your Zap's time zone, and a time it can't read as the moment the Zap runs.
  • Notify subscribers is on by default.
  • Creating again with the same External reference returns the existing window, with Created false. Without a reference, each run schedules a new window.

Update Status Page Maintenance

Each run makes one change: new planned times with New start and New end, Start now or End now. A new start only works before the window starts, and a future end on a completed window reopens it.

Post Status Page Maintenance Update

Publishes a Message on the window. Notify subscribers is on by default. A window that hasn't started yet takes no updates. The run is then marked halted, not errored, and only later steps that use this step's fields are skipped.

Update reference stops a rerun, replay or retest from posting the same update twice. Better Stack answers it with the update it already posted, and without a reference every run posts.

  • Map the ID of the item that triggered the Zap, such as a new comment's ID. It's the same on every rerun and different for the next update. Don't map the External reference, which every update on the window shares.
  • The same reference with a different message fails the step with Update reference … was already used on this maintenance, for a different message. After a retest or a replay, the update is already posted. Otherwise, map a value that's unique to each update.
  • Update created is false when an earlier attempt posted the update. Don't filter later steps on it, since after a lost answer they never ran.

Create Status Page Report

  • Status page, Affected resources, Status, Title and Description are required. Status is Degraded or Downtime for every resource you select, and the description is the report's first update.
  • Notify subscribers is on by default.
  • External reference needs an ID that's unique to each incident. Creating again with the same one returns the existing report, with Created false, even once it's resolved. An alert's dedup key or alias comes back with every occurrence, so add the occurrence's own ID or start time to it.

While a report is open, the page's automatic status reports pause. They resume within seconds of the last open report on the page being resolved.

Post Status Page Report Update

Publishes a Message with a Status: Degraded, Downtime or Resolved. Notify subscribers is on by default.

  • Affected resources left blank updates every resource on the report. Resources you pick are set to the Status, and added to the report if they're new to it. The report is resolved once every resource on it is.
  • Reopen if resolved is off by default, so a late or replayed run can't reopen a finished incident. A Degraded or Downtime update to a resolved report then isn't posted, and the run is marked halted, not errored. Turn it on if the other tool's incidents can reopen.
  • Update reference works as in Post Status Page Maintenance Update, but a repeat must also match the Status and any picked Affected resources.

Resolve Status Page Report

Sets every resource on the report to resolved. Message defaults to This incident has been resolved., translated on status pages that use one of the built-in languages. Notify subscribers is on by default. Resolving a resolved report changes nothing, and Update created is then false.

Troubleshooting

  • The incident trigger doesn't run. If the monitor uses an escalation policy, select Zapier Zaps in one of its steps. See New or Updated Incident.
  • A trigger test shows sample data. The team has no incidents or comments yet, and actions tested with a sample Incident ID fail. Create a test incident, or add a comment to one, and test again.
  • My team isn't listed when I connect. Ask an admin to add you to the team first.
  • Which Zap is Zapier Zap (ID 123)? The Zapier Zaps list under Integrations → Zapier shows each Zap's ID and trigger. Turning a Zap off and on gives it a new ID, and steps that selected the old one stop alerting it. Select Zapier Zaps to avoid that.
  • An action can't find the incident. The incident belongs to a different team from the one you connected, or the connection was removed.
  • A status page action can't find the window or report. No maintenance with reference … on status page … or No report with reference … on status page … means it was created without an External reference, with a different one, or on another status page. Windows and reports created in Better Stack can't be changed from Zapier.
  • Triggers still run after removing the connection. Removing a connection stops only its actions and searches, and its Zaps keep receiving updates. Remove each one from the Zapier Zaps list under Integrations → Zapier, and turn it off in Zapier too.

Need help?

Please let us know at hello@betterstack.com.
We're happy to help! 🙏