Hello all,
Webhooks are live. Until now, if you wanted to know whether a notification actually made it, you had to keep asking us, send, get a delivery id back, then poll until the answer stopped changing. The gem even had a helper to do that waiting for you, which I now realize was me automating a workaround instead of fixing the problem. Along this release I also released the Ruby gem v0.2.0.
You give us one URL in your settings, and from then on we tell you when something happens: queued, sent, delivered, opened, failed, bounced, for email and push. Every message is signed, so you can prove it came from us and not from whoever else finds your URL. In Ruby the gem verifies that for you in a single call, and for everything else the docs have working Node and Python examples to copy. If your server is down we keep retrying for a few hours, and if it stays down we switch the endpoint off and tell you rather than quietly hammering it forever.
The interesting part was what this dug up. Our sender used to mark a delivery as failed before retrying it, so a notification that succeeded on the second attempt had spent a moment looking dead. Nobody ever noticed, because anything that keeps polling just sees the happy ending. As a webhook it becomes a 3am alert followed by a "never mind" two minutes later. So there is now a separate "retrying" state, and you can finally tell "still trying" from "gave up" without guessing. I had been sitting on that one for weeks without knowing.
Docs are at relaygrid.dev/docs/webhooks, with the Ruby specifics at relaygrid.dev/docs/ruby-gem. We are close to ending the free beta period, so anyone who contacts me with a beta key request will receive a year of free subscription. Use the contact form on the website or email me at ali@relaygrid.dev.