A data-grid-based webhook log table displaying delivery attempts with status, endpoint URL, payload preview, timestamp, and a retry action. Designed for SaaS webhook management dashboards where developers monitor and debug outgoing webhook deliveries.
Introduction
Overview
SaaS platforms that send webhooks need a standard UI for monitoring delivery status. This widget provides a sortable, filterable data grid showing webhook delivery logs with status indicators, truncated payload previews, and retry capabilities.
Goals
Display webhook delivery logs in a DataGrid with sortable columns.
Show status (success, failed, pending, retrying), endpoint URL, payload preview, and timestamp.
Provide a retry action per failed delivery.
Support filtering by status.
Ship Storybook stories covering various states.
Non-Goals
Webhook endpoint configuration or management.
Payload editing or resending with modifications.
Real-time streaming of new deliveries (consumer polls or uses WebSocket).
Webhook signing or security configuration.
Scope
In Scope
Item
Description
WebhookLogTable component
DataGrid with webhook delivery columns
Status column
Badge showing delivery status with semantic color
Payload preview
Truncated JSON preview with expand/copy option
Retry action
Button per row for failed deliveries; calls onRetry(deliveryId)
No standard webhook log UI; teams build custom tables per product
SRE/DevOps
Debugging failed deliveries requires switching to backend logs
Support engineers
Difficulty identifying and retrying failed webhook deliveries for customers
Definitions
Term
Definition
Webhook delivery
A single HTTP request sent to a configured endpoint
Delivery status
The outcome of the HTTP request (success, failed, pending, retrying)
Payload preview
A truncated view of the JSON request body
Retry
Re-sending a failed delivery to the same endpoint
Current State
No webhook log table exists in the design system. The people-table.tsx and billing-history-table.tsx widgets demonstrate the DataGrid pattern using TanStack Table. These can serve as reference implementations for column definitions, sorting, and filtering.
Proposed Solution
Create a WebhookLogTable widget at src/components/widgets/webhook-log-table.tsx that:
Accepts an array of WebhookDelivery objects.
Renders a DataGrid with columns: Status, Endpoint, Event Type, Payload Preview, Duration, Timestamp, Actions.
Status column uses Badge with semantic variants.
Payload preview truncates to a configurable length with a “View” action to expand.
Actions column includes a Retry button for failed deliveries.
Supports filtering by status via a toolbar dropdown.
Requirements
The table must use TanStack Table for consistency with existing DataGrid patterns. It must handle empty states and loading states gracefully.
Functional Requirements
ID
Requirement
Priority
FR-01
Render a DataGrid with Status, Endpoint, Event Type, Payload Preview, Duration, Timestamp, and Actions columns
Must
FR-02
Status column displays a Badge with semantic color (success=green, failed=red, pending=yellow, retrying=blue)