Skip to content

Webhooks

Reflex sends outbound notifications to configured notification channels when deployments change state.

Configuring channels

Navigate to Settings → Notification channels in your dashboard. Each channel requires:

  • URL or destination — HTTPS webhook, Slack, email, or GitHub status, depending on channel type
  • Events — Which deployment event types to subscribe to
  • Secret — A shared secret for signature verification when the channel type supports it

Event types

These are the events the product actually emits (App\Enums\DeploymentNotificationEvent):

EventDescription
deployment.startedA deployment has begun
deployment.succeededA deployment completed successfully
deployment.failedA deployment failed

Outbound notification channels only emit the three deployment events above. cPanel alert hooks are a separate team setting, not this channel list.

Payload format

Channel payloads vary by destination (Slack blocks, GitHub status, generic JSON). Treat the dashboard “send test” as the source of truth for your channel type. A generic JSON body looks like:

json
{
  "type": "deployment.succeeded",
  "deployment_id": "dep_xyz789",
  "server_id": "srv_def456"
}

Signature verification

Signed webhook channel types include a signature header. Always verify the signature before processing any webhook payload.

Retry policy

Failed webhook deliveries (non-2xx response) are retried with backoff according to the channel implementation. Check the notification delivery log in the dashboard for failures.

Best practices

  • Respond quickly — Return a 200 within 5 seconds and process asynchronously
  • Verify signatures — Always validate the signature header when the channel signs requests
  • Handle duplicates — The same event may be delivered more than once
  • Monitor failures — Check the delivery log in your dashboard

© Reflex by ExpertWeb. All rights reserved.