{% extends "admin/base.html" %} {% block title %}Webhooks - Admin - {{ site_name() }}{% endblock %} {% block admin_content %}

Webhooks

Deliveries are outbound webhook calls. Attempts are individual HTTP tries for a delivery. Live Updated {{ updated_at }}

Deliveries In Window
{{ total_recent }}
Succeeded
{{ status_counts.get("succeeded", 0) }}
Retrying
{{ status_counts.get("retrying", 0) }}
Dead
{{ status_counts.get("dead", 0) }}
HTTP Attempts
{{ attempts_total }}

Delivery Filters

Window is based on delivery creation time.

{% if filters.status or filters.profile %} Clear status/profile {% endif %}

Open Failures

Retrying or dead deliveries grouped by receiver domain.

{% for domain, count in domain_counts.items() %} {% endfor %}
Domain Deliveries
{{ domain }} {{ count }}

No retrying or dead deliveries in this window.

Failure Timeline

Hourly/daily buckets for retrying and dead deliveries.

{% for row in domain_series %} {% endfor %}
Bucket Domain Deliveries
{{ row.bucket }} {{ row.domain }} {{ row.failures }}

No failure buckets in this window.

{{ csrf_field() }}

Deliveries

One row per outbound webhook call. Open a delivery to see its attempts.

{% for delivery in deliveries %} {% endfor %}
Delivery Created Profile Event Status Attempts Last HTTP Next / Finished Last result
{% if delivery.retryable %} {% endif %} {{ delivery.short_id }}
{{ delivery.idempotency_key }}
{{ delivery.created_at }} {{ delivery.profile }}
{{ delivery.domain }}
{{ delivery.event_type }} {{ delivery.status }} {{ delivery.attempt_count }} {{ delivery.last_status_code or "none" }} {{ delivery.next_attempt_at or delivery.terminal_at or "none" }} {{ delivery.last_result or "none" }}

No webhook deliveries match these filters.

Recent Attempts

One row per HTTP try. Multiple attempts can belong to the same delivery.

{% for attempt in recent_attempts %} {% endfor %}
Attempt Delivery Finished Profile Event HTTP Outcome Duration Error / Preview
{{ attempt.short_id }} #{{ attempt.attempt_number }} {{ attempt.delivery_short_id }} {{ attempt.finished_at }} {{ attempt.profile }} {{ attempt.event_type }} {{ attempt.status_code or "none" }} {{ attempt.outcome }} {{ "%.3f"|format(attempt.duration_seconds or 0) }}s {{ attempt.error or attempt.response_body_preview or "none" }}

No attempts recorded in this window.

{% endblock %}