Hookdeck · Arazzo Workflow

Hookdeck Author and Verify a Transformation

Version 1.0.0

Create a transformation, run it against a sample request, then read it back.

1 workflow 1 source API 1 provider
View Spec View on GitHub WebhookEvent GatewaysGatewaysEventEvent InfrastructureEvent-DrivenMessagingQueuesRetriesTransformationObservabilityArazzoWorkflows

Provider

hookdeck

Workflows

author-transformation
Create a transformation and validate it against a sample request.
Creates a transformation, tests it with a sample request body, branches when the test reports an error log level, and otherwise reads the stored transformation.
3 steps inputs: code, sampleBody, transformationName outputs: testLogLevel, transformationId
1
createTransformation
Create the transformation from the supplied name and JavaScript code.
2
testTransformation
Run the stored transformation against a sample request to confirm it executes and capture the resulting log level.
3
readTransformation
Read the stored transformation back to confirm it was persisted and capture its final code.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Hookdeck Author and Verify a Transformation
  summary: Create a transformation, run it against a sample request, then read it back.
  description: >-
    Transformations are JavaScript functions that reshape inbound payloads.
    This workflow creates a transformation from supplied code, immediately tests
    it against a sample request to confirm it executes cleanly, branches on the
    execution log level, and reads the stored transformation back. Every step
    spells out its request inline so the flow can be read and executed without
    opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: transformationsApi
  url: ../openapi/hookdeck-transformations-api-openapi.yml
  type: openapi
workflows:
- workflowId: author-transformation
  summary: Create a transformation and validate it against a sample request.
  description: >-
    Creates a transformation, tests it with a sample request body, branches when
    the test reports an error log level, and otherwise reads the stored
    transformation.
  inputs:
    type: object
    required:
    - transformationName
    - code
    - sampleBody
    properties:
      transformationName:
        type: string
        description: A unique name for the transformation.
      code:
        type: string
        description: The JavaScript code to execute as the transformation.
      sampleBody:
        type: object
        description: A sample request body to test the transformation against.
  steps:
  - stepId: createTransformation
    description: >-
      Create the transformation from the supplied name and JavaScript code.
    operationId: createTransformation
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.transformationName
        code: $inputs.code
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      transformationId: $response.body#/id
  - stepId: testTransformation
    description: >-
      Run the stored transformation against a sample request to confirm it
      executes and capture the resulting log level.
    operationId: testTransformation
    requestBody:
      contentType: application/json
      payload:
        transformation_id: $steps.createTransformation.outputs.transformationId
        request:
          headers:
            content-type: application/json
          body: $inputs.sampleBody
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      logLevel: $response.body#/log_level
      executionId: $response.body#/execution_id
    onSuccess:
    - name: testFailed
      type: end
      criteria:
      - context: $response.body
        condition: $.log_level == "error"
        type: jsonpath
    - name: testPassed
      type: goto
      stepId: readTransformation
      criteria:
      - context: $response.body
        condition: $.log_level != "error"
        type: jsonpath
  - stepId: readTransformation
    description: >-
      Read the stored transformation back to confirm it was persisted and
      capture its final code.
    operationId: getTransformation
    parameters:
    - name: id
      in: path
      value: $steps.createTransformation.outputs.transformationId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      transformationId: $response.body#/id
      name: $response.body#/name
  outputs:
    transformationId: $steps.createTransformation.outputs.transformationId
    testLogLevel: $steps.testTransformation.outputs.logLevel

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/hookdeck-author-transformation-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.