Testing Webhooks

The Simulate action skips SMTP entirely and asks Conduit to POST a synthetic payload directly to your endpoint. Sending a real email through the SMTP gateway instead exercises the full inbound path, including any SMTP security policy attached to the webhook.

Both create a delivery log entry. Simulated entries are tagged SIM in the log view.


Simulate from the web UI

  1. Open the webhook detail page (/app/webhooks/{id}).
  2. Click Simulate in the sub-nav and confirm.
  3. Conduit immediately POSTs a synthetic payload to the target URL.
  4. The result appears as a new entry in Recent Deliveries and on the full Delivery Logs page with the SIM badge.

Simulate uses fixed defaults for sender, subject, and body. To customise those fields, use the API.


Simulate via the API

POST /api/v1/webhooks/{id}/simulate
Authorization: Bearer <token>
Content-Type: application/json

{
  "from": "alerts@example.com",
  "subject": "Disk usage above 90%",
  "text": "Test alert from Conduit simulate"
}

All fields are optional; defaults are used when omitted. The response includes http_status, duration_ms, error, and simulated: true. See Simulate an email delivery for the full reference.


Send a real test email

The Conduit SMTP gateway listens at mx.conduit.email on port 25 with STARTTLS support. Address the email to your webhook's address.

Quick test with swaks

swaks is available on most platforms (brew install swaks, apt install swaks):

swaks \
  --to webhook-01HX...@incoming.conduit.email \
  --from you@example.com \
  --server mx.conduit.email \
  --port 25 \
  --body "Hello from swaks"

Reading the SMTP response

The status code in the SMTP transcript tells you the delivery outcome:

SMTP code Meaning
250 Your endpoint returned 2xx. Delivery succeeded.
450 Endpoint returned 5xx or was unreachable. The sending MTA will retry.
550 Endpoint returned 4xx, or the webhook is inactive / SMTP policy rejected the message.

Your endpoint can override the SMTP code and message it responds with. See SMTP Response Headers.


Which to use

Reach for Simulate when iterating on your endpoint or when you want to exercise the delivery path without crafting an RFC 5322 message. Send a real email when you need to validate an attached SMTP security policy, confirm that DNS and MX records are correctly delivering to Conduit, or test parsing of a specific mail format from a real sender.


Next steps