Skip to main content
API & Webhooks

What events does Sendr send to your webhook?

Written By John Bromley

Last updated 4 months ago

Sendr sends each event as a POST request to your webhook URL with a JSON payload. You choose which events to receive when you add a webhook in Settings > Webhooks. For the two ways to receive events (a workspace webhook vs a per-page webhook), see Setting up a webhook.

Event types

Events are grouped into four categories.

Page render (a personalised page being generated)

  • page:pending: the page has been accepted and its assets are processing
  • page:done: the page is fully rendered and its assets are ready
  • page:failed: generation failed (the reason is in errorMessage)

Page engagement (a contact interacting with a page)

  • engagement:{kind}: fires when a contact engages with a page, where {kind} is the type of engagement (for example a view or a click)

Page template (changes to a template)

  • template:created
  • template:updated
  • template:deleted

Sheet (changes to a list and its data)

  • Sheet: sheet:created, sheet:updated, sheet:deleted
  • Column: sheet_column:created, sheet_column:updated, sheet_column:deleted
  • Row: sheet_row:created, sheet_row:updated, sheet_row:deleted
  • Cell: sheet_cell:created, sheet_cell:updated, sheet_cell:deleted

Payload format

All payloads are JSON. Every payload includes:

  • eventType: the event name (one of the names above)
  • timestamp: when the event fired
  • errorMessage: a reason string when something failed, otherwise null
  • attributes: any custom attributes you passed when generating the page, echoed back so you can match the event to your own records

Page events also include the page details (pageId, pageSlug, pageUrl), the contact, and the generated asset URLs (such as the GIF, audio, and lipsync video). Each event carries the fields relevant to its category.

For the full field-by-field schema and example payloads for every event, see the webhook reference in the developer docs at docs.sendr.io.

Older event names

Some integrations use the original event names. These still work, but new integrations should use the names above:

  • page_render:created, page_render:updated, page_render:deleted (now page:*)
  • contact_page_engagement:created, contact_page_engagement:updated (now engagement:{kind})
  • page_template:created, page_template:updated, page_template:deleted (now template:*)

Subscribing to events

When you add a webhook in Settings > Webhooks, you choose which event types to subscribe to. You can subscribe to all events or to a specific subset. Need help? Email [email protected].