sendgrid-webhook

SendGrid Webhook Server for events api

SendGrid Webhook Server

A simple server module to capture SendGrids webhooks and emit the relevant events.

The Event API is well documented on SendGrids documentation pages located here

This module does not (yet) support SendGrids batched events.

npm install sendgrid-webhook
  • port The port the server listens to. Defaults to 3000

The module emits the following events depending on the payload sent by SendGrid - processed, dropped, delivered, deferred, bounce, open, click, spamreport, unsubscribe.

If a non-post event is detected the module emits a 'request_error' event.

If an event not defined from the list above is in the request parameters, a 'event_error' event is emitted.

The server has a /ping GET method to check it is up. It returns a ‘pong’ response if it is up.

var SendGridWebhook = require('sendgrid-webhook');
 
// create new server listening on port 3001
var sgevents = new SendGridWebhook({port: 3001});
 
sgevents.on('processed', function(email, payload) {
    // email is the email address that generated the event
    // payload is a json object containing the parameters sent by SendGrid
    console.log("Email has been processed");
});

There is a test suite in the test directory. It uses Mocha.

npm test
  • Secret key
  • Batch events
  • SSL

Contributions welcome.

MIT