Reshape Webhook Payloads Before They Arrive
The payload a provider sends is rarely the payload your system wants. A Hookbase transform rewrites the event on its way through — with JSONata, XSLT, Liquid, or JavaScript — so the destination receives exactly the shape it expects, and you don't have to write an adapter service to get there.
Four Transform Engines
Hookbase supports JSONata, XSLT, Liquid, and JavaScript. They solve overlapping problems in different ways, so pick whichever one makes the mapping in front of you shortest and clearest.
JSONata
A compact query and transformation language for JSON. It shines when you want to reshape one JSON document into another in a few expressive lines, without writing procedural code.
XSLT
The long-standing standard for transforming XML. It shines on XML-heavy provider payloads, where template rules can restructure a document that never was JSON to begin with.
Liquid
A template language built around plain text output with tags, filters, and loops. It shines when you are rendering a payload into another format — a message body, a CSV line, or a bespoke document.
JavaScript
A full programming language, and the escape hatch when a mapping needs real logic — conditionals, arithmetic, string parsing, or anything the declarative options make awkward.
What People Actually Use Transforms For
Most transforms are not clever. They are the small, unglamorous reshaping work that otherwise ends up hard-coded in a service somewhere between the provider and the system that cares.
Map and Rename Fields
Pull the values you care about out of the incoming event and emit them under the names your destination expects, instead of forwarding the provider's vocabulary verbatim.
Drop Irrelevant Fields
Filter the payload down to the fields that actually matter downstream, so you are not shipping — or storing — a wall of provider metadata that nothing reads.
Flatten Nested Payloads
Providers love deeply nested objects. Flatten them into a shallow, predictable record that is easier to consume, index, and query on the other end.
Adapt Between Shapes
Take one provider's JSON shape and turn it into whatever format a destination's API actually accepts, so the two systems never need to agree on a schema.
Transforms Live on the Route
A route connects a source to one or more destinations, and each route can carry its own transform. That means the mapping is a property of the connection rather than of the event — see how routing works for the surrounding model.
One Transform per Route
Attach a transform to the route that needs it. Routes without one pass the event through untouched, so you only opt in where a mapping is genuinely required.
One Event, Many Shapes
Because the transform belongs to the route, the same incoming event can be reshaped differently for each destination — a flat record for one system, a nested object for another.
Test Before You Save
Run a transform against a sample payload and inspect the output before it is saved to a route, so you verify the resulting shape instead of discovering it in a failed delivery.
Try the Syntax First — Free
If you are still getting a feel for an expression, two free interactive playgrounds let you paste a payload and iterate on the output. No account needed.
Why This Matters
Without transforms, the reshaping still happens — it just happens in code you have to write, deploy, and keep alive.
Reshaping in your own code
Hookbase
Stop Writing Adapters for Webhook Payloads
Create a route, attach a transform, test it against a sample payload, and let Hookbase deliver the shape your destination actually wants. Get started free — no credit card required.