Hookdeck · Arazzo Workflow

Hookdeck Attach an Integration to a New Source

Version 1.0.0

Create a source, create an authentication integration, then attach the integration to the source.

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

Provider

hookdeck

Workflows

attach-integration-to-source
Provision a source and bind a verification integration to it.
Creates a source, creates an integration for the named provider, attaches the integration to the source, and reads the source back to confirm the integration is associated.
4 steps inputs: integrationLabel, provider, sourceName outputs: attached, integrationId, sourceId
1
createSource
Create a WEBHOOK source that the integration will later authenticate.
2
createIntegration
Create an integration for the named provider that will supply the source's verification credentials.
3
attachIntegration
Attach the integration to the source so inbound requests are verified against the integration's credentials.
4
confirmSource
Read the source back to confirm the integration is now associated with it.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Hookdeck Attach an Integration to a New Source
  summary: Create a source, create an authentication integration, then attach the integration to the source.
  description: >-
    Integrations carry the verification credentials (HMAC, API key, basic auth)
    a source uses to authenticate inbound webhooks. This workflow creates a new
    source, creates an integration for a provider, attaches the integration to
    the source, and confirms the source picked up the integration. 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
  x-realizes-capability-ids:
  - BC-4270.80
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-4270.80
      capability_name: Webhook & Event Subscription Management
      spec: hookdeck-sources-api-openapi.yml
      confidence: 0.7
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: integrationsApi
  url: ../openapi/hookdeck-integrations-api-openapi.yml
  type: openapi
- name: sourcesApi
  url: ../openapi/hookdeck-sources-api-openapi.yml
  type: openapi
workflows:
- workflowId: attach-integration-to-source
  summary: Provision a source and bind a verification integration to it.
  description: >-
    Creates a source, creates an integration for the named provider, attaches the
    integration to the source, and reads the source back to confirm the
    integration is associated.
  inputs:
    type: object
    required:
    - sourceName
    - integrationLabel
    - provider
    properties:
      sourceName:
        type: string
        description: A unique name for the source.
      integrationLabel:
        type: string
        description: A human-friendly label for the integration.
      provider:
        type: string
        description: The integration provider (e.g. HMAC, API_KEY, BASIC_AUTH, STRIPE).
  steps:
  - stepId: createSource
    description: >-
      Create a WEBHOOK source that the integration will later authenticate.
    operationId: createSource
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.sourceName
        type: WEBHOOK
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      sourceId: $response.body#/id
  - stepId: createIntegration
    description: >-
      Create an integration for the named provider that will supply the source's
      verification credentials.
    operationId: createIntegration
    requestBody:
      contentType: application/json
      payload:
        label: $inputs.integrationLabel
        provider: $inputs.provider
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      integrationId: $response.body#/id
  - stepId: attachIntegration
    description: >-
      Attach the integration to the source so inbound requests are verified
      against the integration's credentials.
    operationId: attachIntegrationToSource
    parameters:
    - name: id
      in: path
      value: $steps.createIntegration.outputs.integrationId
    - name: source_id
      in: path
      value: $steps.createSource.outputs.sourceId
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.success == true
      type: jsonpath
    outputs:
      attached: $response.body#/success
  - stepId: confirmSource
    description: >-
      Read the source back to confirm the integration is now associated with it.
    operationId: getSource
    parameters:
    - name: id
      in: path
      value: $steps.createSource.outputs.sourceId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      sourceId: $response.body#/id
  outputs:
    sourceId: $steps.confirmSource.outputs.sourceId
    integrationId: $steps.createIntegration.outputs.integrationId
    attached: $steps.attachIntegration.outputs.attached

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-attach-integration-to-source-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.