Articles on: Integrations

Webhooks: Testing, Delivery Logs, and Payloads

Webhooks: Testing, Delivery Logs, and Payloads


Purpose


This article is for anyone building or operating a Webhook or OutboundSync integration: operators, RevOps, and developers. It explains what SuperSend sends, how to test safely, and how to use Webhook delivery logs to inspect real traffic, copy JSON, filter failures, and retry deliveries.


For reply vs bounce vs autoresponse and CRM noise, see Webhooks: Replies, Bounces, and CRM Automation.


Prerequisites


  • A Webhook or OutboundSync integration with a URL saved
  • Team selected in AdminIntegrations when working at org level (campaign integrations are team-scoped)
  • Permission to view integrations and delivery logs for that team


What to expect from live webhooks


  • SuperSend sends an HTTP POST to your URL with a JSON body.
  • The body always includes a top-level type string (for example reply, open, click, bounce, contact_added). Use this as the primary branch in Zapier, Make, or custom code.
  • If you enable multiple event types on the same integration, every enabled type is POSTed to the same URL. Your receiver must not assume every request is a reply.
  • Failed deliveries are retried automatically up to a maximum number of attempts. Statuses Retrying and Pending mean the system is still working toward a result or waiting for the next attempt.
  • Optional headers (for example event hints) may be present; the JSON type field remains the reliable source for automation logic. For signing and header details, use the developer documentation at docs.supersend.io (Webhooks).


Test webhooks from the app (per event)


You can fire a test POST before real traffic, without waiting for a live event.


  1. Open the integration editor: AdminIntegrationsIntegration Library → choose Webhook (or OutboundSync) → Manage accounts → add or edit an account; or use Campaign SettingsIntegrations and open the same panel for that campaign.
  2. Ensure a webhook URL is set.
  3. In the event list, each subscribable event that supports testing shows Test → next to its label. Click Test → for the event you want (for example Reply or Open).
  4. Choose Sample data or Real contact data:
  • Sample data — Generic payload shape. Use this to confirm your URL is reachable and your stack accepts POSTs.
  • Real contact data — Pick a campaign and contact so fields like contact.email and contact.custom match production-like data (useful for Zapier/Make field mapping).
  1. Send the test. Every test request includes "test": true in the JSON body so you can ignore or branch on it in your endpoint.


After sending, open delivery logs (below) and confirm a row appears with the expected event and status.


Where to open Webhook delivery logs


You can open logs from three places; all use the same delivery log UI.


1. Org Admin — full account history


  1. AdminIntegrationsIntegration Library.
  2. Select the team from the dropdown.
  3. Open Webhook or OutboundSyncManage accounts.
  4. For the account you care about, click Details.
  5. Open the Delivery Logs tab.


This view shows deliveries for that integration account across all campaigns that use it (no campaign filter).


2. Org Admin — from the account list


From Manage accounts, each Webhook/OutboundSync row may expose Test / Details; use DetailsDelivery Logs as above.


3. Campaign Settings — this campaign only (Webhook)


  1. Campaign SettingsIntegrations.
  2. Find Webhook where at least one account is active.
  3. Click View logs.


The modal lists deliveries scoped to the current campaign (useful when one webhook URL is shared across many campaigns).


OutboundSync uses the same Delivery Logs tab in Admin when you open the account Details; the campaign integrations page does not show a separate View logs shortcut for OutboundSync today.


Using the delivery log UI


Summary


At the top, you may see total deliveries, a success rate snapshot for the current page, and average latency for rows that reported timing. Use these as a quick health check, not as a substitute for your own monitoring.


Search and filters


  • Search — Matches contact email (partial search). Use this to find a specific prospect or test contact.
  • Filters — Open Filters to restrict by Status (Delivered, Failed, Retrying, Pending) and Event type (Reply, Open, Click, Bounce, etc.).
  • Clear all — Removes search and filter selections.
  • Refresh — Reloads the current page from the server.


Table columns


Column

Meaning

Time

When the delivery record was created (queue time), not necessarily when your server finished.

Event

Webhook event type for this POST.

Contact

Associated contact email when the event had a contact; some events may show no contact.

Status

Delivered (success), Failed (exhausted or terminal failure), Retrying / Pending (in progress or scheduled).

Response

HTTP status code returned by your server (when available) and round-trip latency.

Actions

Retry (when failed or retrying), and row expand/collapse.


Pagination


Deliveries load in pages (50 per page). Use Previous / Next at the bottom to move through history.


Expand a row: attempts, errors, payload


Click a row to expand it. You will see:


  • Attempts — Current count vs max attempts for automatic delivery.
  • HTTP status and latency for the latest attempt.
  • Last attempt and, if applicable, Next retry time.
  • Campaign name when the event was tied to a campaign.
  • Error message when SuperSend captured a failure reason (timeouts, connection errors, non-2xx responses, etc.).


If a stored payload is available for that delivery, an action View Payload appears.


View Payload and Copy JSON


  1. Expand the delivery row.
  2. Click View Payload.
  3. A modal shows the exact JSON body SuperSend attempted to send (pretty-printed).
  4. Use Copy JSON to paste into your IDE, a JSON formatter, or a ticket for support.


Note: Very old deliveries may have been created before payload retention was available; in those cases View Payload may not appear. Use Test → for that event type or trigger a new live event, then inspect the new row.


Manual Retry


For rows in Failed or Retrying, use Retry to queue another delivery attempt. This resets the attempt counter for that record in the UI and is useful after you fix your endpoint or firewall rules.


Export CSV


Export CSV queues a background export of webhook delivery data. When it completes, you receive email notification; you can also open AdminExports (or your org’s exports area) to download the file. Use exports for audits, spreadsheets, or sharing with someone who does not have app access.


If you use the V2 API or MCP


Dashboard delivery logs apply to integrations created and used inside the product. If you manage webhooks with the V2 API or automation tools, refer to docs.supersend.io for payload schemas, signing, and listing deliveries via API. The JSON shape and type field follow the same conceptual model as campaign webhooks.


Troubleshooting


Issue

What to do

No rows in delivery logs

Confirm the integration is enabled, the event toggles you expect are on, and real activity (or Test →) has occurred. Check you are on the correct team and, in campaign view, the correct campaign.

All failures or 4xx/5xx

Expand a row, read Error, open View Payload, and replay the request against a local tunnel (for example ngrok) or logging middleware. Fix the endpoint, then use Retry.

Wrong event type in Zapier/Make

You enabled multiple events on one URL. Filter on type (and for replies, optionally reply.category) in the automation. See Webhooks: Replies, Bounces, and CRM Automation and SuperSend → Make → Salesforce Setup.

Custom fields missing in payload

Use Real contact data in Test →, or View Payload on a live delivery, and confirm keys under contact.custom. Names match what you used in CSV or API.

Cannot find View Payload

The delivery may predate stored payloads; send a new Test → or wait for a new event and inspect that row.




Updated on: 02/04/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!