Skip to main content

Creating Webhook Receivers

Using Webhooks with No-Code Automation Tools

If you don’t want to build your own webhook receiver, you can use tools like Zapier, n8n, or Pipedream to connect Rize webhooks with other apps without writing code.

Example: Connect Rize.io Webhooks to Slack with Zapier

  1. Create a Zap on Zapier.
  2. Select “Webhooks by Zapier” as the trigger app.
  3. Choose “Catch Hook” as the trigger event.
  4. Zapier will generate a unique URL — copy this into the Webhook URL field in Rize.
  5. Select an action, such as “Send Message in Slack,” and format how the data should appear.
  6. Turn on your Zap, and now, whenever an event occurs in Rize, a Slack message will be sent.

Building Your Own Webhook Receiver

For developers who prefer full control, you can set up your own webhook receiver. Below is a simple Node.js example to handle Rize webhooks:

const express = require("express");
const crypto = require("crypto");

const app = express();
app.use(express.json());
const SECRET = "your-webhook-secret"; // Use the same secret as in Rize.io
app.post("/webhook", (req, res) => {
const signature = req.headers["x-webhook-signature"];
const payload = JSON.stringify(req.body);

const expectedSignature = "sha256=" + crypto.createHmac("sha256", SECRET)
.update(payload)
.digest("hex");
if (signature !== expectedSignature) {
return res.status(401).send("Invalid signature");
}
console.log("Received webhook:", req.body);
res.sendStatus(200);
});
app.listen(3000, () => console.log("Server listening on port 3000"));

This code:

  • Listens for webhook requests at /webhook.
  • Verifies the X-Webhook-Signature to prevent unauthorized access.
  • Processes the event payload.

Retry Logic and Error Handling

If your webhook endpoint is down or returns an error, Rize will:

  1. Retry the request every 5 minutes (up to 3 times).
  2. If all 3 retries fail, the webhook will be disabled automatically.
  3. You will need to manually re-enable the webhook after fixing the issue.

To avoid failures, make sure your receiving server:

  • Always returns a 200 OK response for successful processing.
  • Logs failures and retries requests when necessary.