Skip to main content
Paste a template into Payload template when the does not fit your receiver. Tallwatch interpolates the same fields it would have POSTed as JSON, then sends the rendered string as the body. Use a template when the other side expects a fixed shape (a text field, a flat ticket API, a comma-separated region list). Leave the field blank if the default payload already works. Webhook channels and templates need Pro or Business.

What you can use

Stock helpers only (#if, #unless, #each, #with). No join, eq, or JSON escaping. That means:
  • There is no join helper. To put incident.failing_regions into one string, iterate with #each and insert separators yourself (#unless @last in the example below).
  • There is no string-equality helper. You cannot write {{#if (eq event "incident.resolved")}}. Branch on incident.resolved_at instead of comparing event: it is set after resolve and null while the incident is still open.
  • Values are inserted as-is. There is no helper that JSON-escapes quotes or newlines inside a string. If a monitor name contains " and you wrap {{monitor.name}} in JSON quotes, the body may not be valid JSON.
#if / #unless test whether a value is present. #each walks an array. #with shifts context to a nested object. Do not rely on helpers you know from other Handlebars setups; they are not registered here.

Example

This template builds a small JSON object: a human-readable text line, and regions as a comma-separated list from incident.failing_regions.
If the template output is JSON, Content-Type is application/json. If it is not JSON, Tallwatch sends text/plain. See for the headers.

Test and fallback

Test with Send test. That POST uses event test and incident null, so paths like {{incident.status}} render empty. Use it to confirm the URL, the signature, and that the template compiles. A broken template falls back to the canonical JSON. If Handlebars cannot compile or render the template, Tallwatch POSTs the JSON from instead of failing the dispatch. Fix the template and Send test again rather than assuming the receiver will keep seeing your custom shape.
Signature verification uses the bytes Tallwatch actually POSTs. If the template ran, those bytes are the rendered body. If it fell back, they are the canonical JSON. Verify against the raw request body. See .
See to stand up the endpoint, and to fill in the channel.