Webhooks Command

Manage webhook endpoints for receiving real-time email events.

Overview

ahasend webhooks [subcommand] [flags]
Available subcommands:
  • list - List all webhooks
  • create - Create a new webhook
  • get - Get webhook details
  • update - Update webhook configuration
  • delete - Delete a webhook
  • listen - Listen for webhook events (development)
  • trigger - Trigger test events (development)

List Webhooks

ahasend webhooks list

Create Webhook

# Basic webhook
ahasend webhooks create \
  --url https://your-app.com/webhooks/ahasend \
  --events message.delivered,message.bounced

# With description
ahasend webhooks create \
  --url https://api.example.com/email-events \
  --events message.delivered,message.opened,message.clicked \
  --description "Production email event handler"

# All events
ahasend webhooks create \
  --url https://app.example.com/webhooks \
  --events all

Available Events

EventDescription
message.receptionEmail received by AhaSend
message.deliveredEmail delivered to recipient
message.transient_errorTemporary delivery failure
message.failedPermanent delivery failure
message.bouncedEmail bounced
message.suppressedEmail suppressed
message.openedEmail opened by recipient
message.clickedLink clicked in email
suppression.createdNew suppression added
domain.dns_errorDNS resolution failure

Get Webhook Details

ahasend webhooks get webhook_1234567890abcdef

Update Webhook

# Update URL
ahasend webhooks update webhook_1234567890abcdef \
  --url https://new-api.example.com/webhooks

# Update events
ahasend webhooks update webhook_1234567890abcdef \
  --events message.delivered,message.opened,message.clicked

# Update both
ahasend webhooks update webhook_1234567890abcdef \
  --url https://api.example.com/v2/webhooks \
  --events all \
  --description "Updated webhook endpoint"

Delete Webhook

# With confirmation prompt
ahasend webhooks delete webhook_1234567890abcdef

# Skip confirmation
ahasend webhooks delete webhook_1234567890abcdef --force

Listen for Events (Development)

Listen for webhook events in real-time using WebSocket connection. This command establishes a WebSocket connection to receive webhook events and can forward them to a local endpoint for development.
# Listen for all webhook events
ahasend webhooks listen

# Use existing webhook
ahasend webhooks listen --webhook-id abcd1234-5678-90ef-abcd-1234567890ab

# Forward events to local endpoint
ahasend webhooks listen --forward-to http://localhost:3000/webhook

# Filter specific event types
ahasend webhooks listen --events message.opened,message.clicked

# Slim output (only event types)
ahasend webhooks listen --slim-output

# Skip SSL verification for local endpoints
ahasend webhooks listen --forward-to https://localhost:3000/webhook --skip-verify

Listen Flags

FlagDescription
--webhook-idUse existing webhook instead of creating temporary one
--forward-toLocal endpoint to forward events to
--eventsFilter specific events (client-side filtering)
--slim-outputSlim down the payload for console output
--skip-verifySkip SSL certificate verification for local endpoints
The command automatically generates a webhook secret for signing forwarded events using the standard-webhooks specification. It also handles disconnections with buffered event replay.

Trigger Test Events (Development)

Manually trigger webhook events for testing:
# Trigger single event
ahasend webhooks trigger webhook_1234567890abcdef \
  --events message.delivered

# Trigger multiple events
ahasend webhooks trigger webhook_1234567890abcdef \
  --events message.delivered,message.opened,message.clicked

# Trigger all events
ahasend webhooks trigger webhook_1234567890abcdef \
  --all-events
The trigger command is only available in development environments for testing webhook integrations.

Next Steps