trigger a pagerduty alert

Usage no npm install needed!

<script type="module">
  import ceejbotPagerdutyTrigger from 'https://cdn.skypack.dev/@ceejbot/pagerduty-trigger';



npm install pagerduty-trigger

A small module that allows you to trigger and resolve a PagerDuty alerts.


Set two environment variables:

export PAGER_DUTY_SERVICE=your-service-id
export PAGER_DUTY_API_KEY=an-api-key-with-write-perms

You can then trigger an alert like this:

var trigger = require('pagerduty-trigger');
trigger('Trouble at mill!', function(err, incidentID) {
    console.log('incident created with id ' + incidentID);

Resolve the same incident like this:

var resolve = require('pagerduty-trigger').resolve;
resolve(incidentID, function(err, response) {
    console.log('we have now resolved ' + incidentID);


pagerduty-trigger takes a string as the first argument, representing the description.

  triggerAlert("Your description!", function(err, incident_key) {
  //your code here

pagerduty-trigger can also take an object as the first argument.

var event = {
   "description": "Your description",
      "type": "link",
      "href": "http://acme.pagerduty.com"
    "details": {
      "ping time": "1500ms",
      "load avg": 0.75
triggerAlert(event, function(err, incident_key) {
  //your code here

The resolve() function requires either a string incident_key argument or an object with an incident_key field. See PagerDuty's documentation for other fields you might pass.

command-line tool

You can create an event using the handy command-line tool pd-trigger. Usage:

pd-trigger "One of t'flayrods has gone out of skew on treadle!"

It will respond with the ID of the incident created. You can then feed that ID to the resolve script: pd-resolve incident-id.