This article shows you how to connect a webhook endpoint so Templified pushes a JSON notification to your server every time a design is exported from Studio. Once the webhook is connected, you can attach it to a Send-To Preset and receive render results automatically in Zapier, Make, n8n, or any HTTPS service.
What you need
- An HTTPS endpoint that can receive POST requests — your own server, a Zapier catch hook URL, a Make (formerly Integromat) webhook, or any HTTPS listener.
- Owner or admin role in your organization. Members can use presets that include a Webhook destination, but cannot add or change the webhook configuration.
Configure your webhook URL
- Go to Settings → Integrations.
- Find the Webhook card.
- In the Webhook URL field, paste your HTTPS endpoint — for example
https://hooks.zapier.com/hooks/catch/…. The URL must use HTTPS. - Optionally, enter a value in the HMAC secret field. When set, Templified signs each request with a SHA-256 HMAC and includes the signature in the
X-Templified-Signatureheader (format:sha256=<hex>). Your server can verify this signature to confirm the request came from Templified. Leave the field blank to skip signing. - Make sure the Enabled toggle is on.
- Click Save & enable. The card immediately shows Enabled in green.
Test the connection
After saving, click Send test. Templified posts a sample request to your URL and shows the HTTP status code and response body inline. A 2xx response confirms the endpoint is reachable. If the test fails, check that your URL is publicly accessible and that any firewall or authentication on your server accepts requests from Templified.
The Send test button is disabled while there are unsaved changes — save first, then test.
What gets pushed: the notification body
Every time a design is exported from Studio, Templified sends an HTTP POST to your URL with Content-Type: application/json. The body is a JSON object with the following fields:
| Field | Type | Description |
|---|---|---|
event |
string | Always "studio.export"
|
exportedAt |
ISO 8601 string | Timestamp of the export |
orgId |
string | Your organization identifier |
instanceId |
string or null | The design ID, or null for renders submitted via the API without a design |
templateId |
string | The template the design is based on |
designName |
string | The design's name |
folder |
string | The Studio folder the design lives in |
imageUrl |
string | Public URL of the finished render image |
qty |
number (optional) | Number of copies requested; absent if 1 (default) |
mainEventCode |
string or null (optional) | Main Event Code set on the design, if any |
destinationEventCode |
string or null (optional) | Destination Event Code set on the design, if any |
playerId |
string or null (optional) | Player identifier, if present on the design |
textLayers |
array | One object per text layer: { name, content } — the layer name and its resolved text value |
Request headers
Every request carries these headers in addition to Content-Type: application/json:
| Header | Description |
|---|---|
X-Templified-Delivery-Id |
Identifies the send. Every attempt at the same send carries the same value. |
X-Templified-Attempt |
The attempt number for this request, starting at 1. |
X-Templified-Signature |
Present only when an HMAC secret is set. Format: sha256=<hex>. |
Delivery and retries
Your server must respond with any 2xx status code within 10 seconds.
Templified makes up to 3 attempts per send, with a short delay between them, and retries only transient failures — that is:
- A connection failure or a timeout, which the delivery log records as Unreachable.
- An HTTP
408,425,429,500,502,503or504response.
Any other 4xx response is treated as a rejection your endpoint would repeat — for example a 401, 404 or 422 — so it fails immediately rather than being retried. Fix the endpoint and send the design again.
Because every attempt at one send repeats the same X-Templified-Delivery-Id, your receiver can deduplicate on that value and treat a retry as another attempt at the delivery it already answered, rather than as a second export. This matters when your endpoint processed the request and still returned an error — say, it printed the render and then timed out. A retry started by hand from the delivery log reuses the same delivery id too, so the guarantee holds across the whole life of a send.
Using the webhook in a preset
Once the webhook is configured, you can add it as a destination in any Send-To Preset. To do this:
- Go to Settings → Send-To Presets and open or create a preset.
- Click Add destination and choose Webhook.
- The editor confirms the destination sends to your organization's configured webhook URL. There are no per-preset fields to fill in — the URL is set once at the integration level.
- Click Save.
When a team member fires this preset, Templified renders the design and pushes the notification to your webhook alongside any other destinations attached to the preset (for example, a Dropbox folder). Your endpoint receives one POST per send regardless of how many destinations the preset contains.
To change the endpoint later, return to Settings → Integrations and update the Webhook URL. The change takes effect immediately on the next send.
Check the delivery log
When a send does not arrive, start here rather than in your own server logs. Every delivery to your webhook — successful or not — is recorded under History → Deliveries.
Each row shows the design, what triggered the send (for example Studio send, Send-To preset or Test send), the endpoint host it went to, and the result: Accepted with the status code, Responded with the status code, or Unreachable when the connection failed or timed out. When more than one attempt was made, the row says how many. For a failure, the row also shows your endpoint's response as the failure reason.
Use the outcome filter to switch between Failed only and All deliveries.
Failures that could still land — the transient ones listed above — get a Retry button on the row, and the toolbar offers a single Retry … failed sends button for everything on the page, which is what you want after a receiver outage takes out a whole event. Failures your endpoint rejected outright have no Retry button; fix the endpoint, then send the design again.
A design whose last send failed also shows a red Send failed badge on its card in Studio. Click the badge to open the delivery log filtered to that design.
Async sends and the 202 response
When Templified dispatches a preset, the send itself may complete asynchronously — meaning the export is queued and processed in the background. In that case the server returns a 202 Accepted response to the sending client rather than waiting for all destinations to finish. Your webhook endpoint is still called once the render completes; the timing is not instantaneous, and the result of that call — delivered or not — appears in the delivery log either way.
If you are calling the Templified API directly and need to handle asynchronous responses, see the Developer API reference for details on the 202 async response shape and how to poll for job status.
Remove the webhook
To disconnect the webhook, open Settings → Integrations, find the Webhook card, and click Remove. This also removes the webhook destination from any preset that used it. Sends that had this webhook destination will still complete to any other destinations on the same preset.
Comments
0 comments
Article is closed for comments.