Programmabledigital

Webhooks

Send new sign-ups, finished videos and exports, publishes, new versions and new share links to your own addresses as signed JSON, for Zapier, Make, a CRM or your own code.

A webhook sends events from your workspace to an address you choose, within seconds. It works with Zapier, Make and HubSpot workflows: use their "Catch hook" or webhook trigger and paste its address. You can have up to 10 endpoints, each listening to its own events.

The events

  • New sign-up (lead.created): someone left their email on an animation that collects emails.
  • Video ready (render.completed): an MP4 or GIF finished rendering.
  • Export ready (export.completed): a background export, such as a platform pack, finished.
  • Published (item.published): something was posted to a connected social account or placed on a site, now or on a schedule.
  • New version (version.created): an animation, deck, graphic or logo was saved as a new version.
  • Share link created (share.created): a share link was turned on for an animation, deck, graphic or logo.

Add an endpoint

  1. Go to Developers › Webhooks and choose Add endpoint.
  2. Paste the Address, give it a name if you like, and tick the Events to send.
  3. Copy its signing secret. It is shown only once.
  4. Choose Send a test to check it arrives.

For sign-ups, also tick Also send each sign-up to your CRM in each animation's Share › Leads tab.

Each endpoint has an On switch, Change events, New secret and Remove.

What we send

One POST per event, with Content-Type: application/json. Programmable-Event names the event and Programmable-Delivery carries its id, so you can ignore a repeat. A new sign-up's body has a type of lead.created, the lead's email and name, the animation it came from, and a source of embed or share (your share link). Every other event's body is described in the API documentation.

Checking the signature

The Programmable-Signature header is t=…,v1=…, where t is a Unix time and v1 is an HMAC-SHA256 of t, a dot and the raw body, keyed with that endpoint's secret. Compute your own and compare, and ignore deliveries older than 5 minutes.

Deliveries and retries

Recent deliveries on each endpoint shows what was sent and whether it worked. If your address doesn't answer with a 2xx, we try again after 1, 5 and 30 minutes and 2 hours, then mark it failed; Retry sends a failed delivery again.

Changing or removing one

Choose New secret if a secret may have leaked; the old one stops working right away. Remove stops sending to that address; new leads stay in Programmable.

If you set up a CRM webhook before endpoints existed, it is already listed here with the same address and secret, and sign-ups arrive in the same shape.