Integrations

Webhooks

Inbound ingest, outbound event destinations, and ESP feedback.

You do not need a webhook to send product events to Audryo. For an app or backend you control, use the core `POST /event_ingestion` API with a workspace token. Inbound webhooks are an optional adapter for HMAC-only sources or custom payload shapes.

Audryo uses three webhook surfaces so data can move in both directions without polling:

SurfaceDirectionPurpose
InboundYour systems → AudryoPush contacts/events; enroll matching Journeys
OutboundAudryo → your HTTPS URLSigned lifecycle events (email.*, journey.*, …)
ESP providerResend/SES → AudryoDelivery feedback for suppressions and metrics

Inbound webhooks

One optional signed inbound endpoint per project. Use it when the sender cannot authenticate to the ingestion API or when its JSON needs field mapping. Map JSON fields to contact/event attributes, then POST events to the returned URL.

In the product: project integrations / inbound webhook settings show the URL, field map, recent deliveries, and last error.

Reference: createInboundWebhook, getInboundWebhook, rotateInboundWebhookSecret Signing secret is shown once on create and rotate. Previous secret stays valid for 24 hours after rotate.

Field map

Map your payload keys into Audryo’s expected fields:

Audryo fieldMeaning
externalIdStable person id in your system
emailAddress
eventNameProduct event name (optional if contact-only)
occurredAtEvent timestamp
propertiesMap of your keys → contact/event property names

Create

curl -X POST "$AUDRYO_API_BASE/projects/$PROJECT_ID/inbound_webhook" \
  -H "Authorization: Bearer $AUDRYO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fieldMap": {
      "email": "email",
      "externalId": "user_id",
      "eventName": "event",
      "occurredAt": "timestamp"
    }
  }'

Post signed payloads to POST /v1/projects/{projectId}/inbound_webhook/events. Successful ingest can enroll matching contacts into active Journeys immediately. Duplicate deliveries are tracked by idempotency key.

Stripe connector

Stripe is a first-class billing integration, not a generic inbound webhook. Setup, the event catalog, and the API live on the Stripe guide.

In the product: Data → Integrations → Stripe.

Zapier

Zapier is a first-class automation integration. REST Hooks, Catch Hooks, and contact/event actions live on the Zapier guide. Zapier hooks do not count toward the five custom outbound destinations. A journey webhook step can pick a saved Zapier hook or outbound destination instead of pasting a URL.

In the product: Data → Integrations → Zapier.

Outbound webhook destinations

Register up to five custom HTTPS destinations per project. Audryo POSTs signed events asynchronously. A failing destination is retried and never blocks sending. For Zapier, use the Zapier integration instead.

Event catalog:

  • contact.updated
  • email.sent, email.delivered, email.opened, email.clicked
  • email.bounced, email.complained, email.unsubscribed
  • journey.entered, journey.exited

An empty events array subscribes to the full catalog.

Reference: createOutboundWebhookDestination, listOutboundWebhookDestinations, rotateOutboundWebhookDestinationSecret

Create a destination

curl -X POST "$AUDRYO_API_BASE/projects/$PROJECT_ID/outbound_webhook_destinations" \
  -H "Authorization: Bearer $AUDRYO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://api.example.com/hooks/audryo",
    "events": ["email.bounced", "email.complained", "journey.entered"],
    "enabled": true
  }'

Localhost, private networks, and URLs with embedded credentials are rejected. Inspect recent deliveries from the list endpoint or the product UI.

ESP provider webhooks

When using Resend, the sending identity includes a webhookUrl to register in Resend’s dashboard. Store the provider signing secret on the identity (webhookSecret — never returned later). Audryo verifies Svix-style HMAC on:

HTTP
POST /v1/projects/{projectId}/provider_webhooks/resend

Without provider feedback, bounce and complaint suppressions lag — connect this before scaling volume. See Connect your ESP and Deliverability.