Zenduty Integration

Connect Middleware alerts to your Zenduty services so incidents route to the right on-call teams with your existing escalation policies and schedules.

What you get#

  • Send alert notifications from Middleware to Zenduty Services
  • Auto-resolve incidents in Zenduty when alerts recover (requires "Notify on Resolve" enabled on the alert rule)
  • Respect your escalation policies & on-call schedules configured in Zenduty
  • Choose Zenduty as a notification medium per alert rule

Prerequisites#

  • A Middleware workspace with permission to install integrations and create alerts
  • A Zenduty account with permission to create Teams, Services, and Integrations

Step-by-step Setup#

1 Create a Generic Integration in Zenduty#

  • In Zenduty, navigate to Teams and select the team you want to receive alerts.
  • Open the Services tab and select (or create) a Service.
  • Go to the Service's Integrations tab and click Add Integration.
  • Search for and select Generic Integration (API).
  • Click Configure on the newly added integration and copy the Generic Integration URL.

The URL follows this format:

1https://events.zenduty.com/integration/{team_id}/generic/{integration_key}/

Note: Each Service can have its own Generic Integration. If you want different alert rules to page different teams, create a separate Service and Generic Integration for each.

2 Install Zenduty in Middleware#

  • In Middleware, go to Integrations, search "Zenduty", and open it.
  • Enter a Service Name (a label to identify this service in Middleware, e.g., "Production Alerts").
  • Paste the Generic Integration URL you copied from Zenduty.
  • Click Add Service.

A successful install shows the service listed with a masked URL preview. You can add multiple Zenduty services to route different alerts to different teams.

Use Test Connection to verify the URL is valid and reachable.

3 Use Zenduty when Creating an Alert#

  • Create (or edit) an alert in AlertsCreate Alert.
  • In Configure Notifications, select Zenduty as a medium.
  • Pick the Service you want to page (e.g., "Production Alerts").
  • Save the alert.
    Selecting Zenduty as a notification medium on an alert rule

Tip: Enable "notify on resolve" if you also want a resolution update sent to Zenduty when the alert recovers. Zenduty will automatically resolve the corresponding incident.

How It Works#

When an alert triggers, Middleware sends an incident event to the Zenduty Generic Integration endpoint:

  • Incident title: A short summary like "CRITICAL: High CPU Usage"
  • Incident body: Structured details including the metric name, current value, condition, and a link to the alert in Middleware
  • Dedup key: A stable identifier per alert rule and group value, so re-triggers update the same incident instead of creating duplicates
A Middleware alert shown as an incident in Zenduty

When "Notify on Resolve" is enabled on the alert rule and the alert condition recovers, Middleware sends a resolve event with the same dedup key, which automatically resolves the incident in Zenduty.

Verify the Integration#

  • Trigger a test alert condition that targets a rule where Zenduty is selected.
  • In Zenduty, check Incidents under the chosen Service and confirm the incident appears with your alert's title and details.
  • If "Notify on Resolve" is enabled, confirm the incident is automatically resolved when the alert recovers.

Troubleshooting#

  • Invalid URL on install: The URL must be a Generic Integration URL in the format https://events.zenduty.com/integration/.../generic/.../. The legacy Zenduty /api/events/ endpoint is not supported.
  • Test connection fails with 404: The integration key may be invalid or the integration was deleted in Zenduty. Re-create the Generic Integration and use the new URL.
  • No services listed: No services have been added yet in Middleware. Follow the setup steps above to add at least one.
  • Alert didn't trigger in Zenduty: Edit the alert rule and confirm Zenduty is selected as a notification medium and the correct Service is chosen.
  • Was working, now failing: The Generic Integration may have been deleted or disabled in Zenduty. Check the integration status in Zenduty and re-add if needed.

Need assistance or want to learn more about Middleware? Get in touch with us via our Contact Us or join our Slack channel.

What did you think of this content?