Skip to main content

Communications: webhooks, your own unsubscribe landing page, and a required unsubscribe link

  • Workspace webhooks. POST /workspaces/{id}/webhooks registers an https URL for campaign.completed, message.delivered, message.bounced, message.complained, contact.unsubscribed and contact.consent_given. Each delivery is signed (X-Motorical-Signature, HMAC-SHA256 of the raw body), retried when it fails, and the webhook is switched off after repeated failures. The signing secret is shown once, when you create the webhook. Opens and clicks are not events. Payloads carry the recipient's email address in plain text.
  • Your own page after unsubscribing. PATCH /settings/unsubscribe sets an optional landing page. Recipients who confirm an unsubscribe are sent there instead of seeing the Motorical page. The URL must be https and on a domain you have verified (LANDING_URL_INVALID, LANDING_DOMAIN_NOT_VERIFIED). One-click unsubscribes from a mail client are unaffected, and the List-Unsubscribe header still points at Motorical.
  • Scheduling needs an unsubscribe link. POST /campaigns/{id}/schedule now answers 400 UNSUBSCRIBE_LINK_MISSING when neither the HTML nor the text of the template contains {{unsubscribe_url}}. Campaigns already scheduled are not affected.
  • Removed: the old inbound POST /api/webhooks/motorical route, which never accepted a request.

Documentation changed