Hookdeck · Arazzo Workflow

Hookdeck Bulk Retry Failed Events

Version 1.0.0

Preview the impact of a bulk retry, start it, then poll until it completes.

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

Provider

hookdeck

Workflows

bulk-retry-failed-events
Estimate, launch, and monitor a bulk retry of failed events.
Generates a bulk retry plan for failed events scoped to a connection, branches when nothing matches, creates the bulk retry, and polls the operation until it finishes.
3 steps inputs: webhookId outputs: bulkRetryId, completedAt
1
planRetry
Estimate how many failed events match the connection before committing to a bulk retry.
2
startRetry
Create and start the bulk retry for the failed events matching the connection.
3
pollRetry
Poll the bulk retry operation until it is no longer in progress, retrying the read while the operation is still running.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Hookdeck Bulk Retry Failed Events
  summary: Preview the impact of a bulk retry, start it, then poll until it completes.
  description: >-
    When a destination outage causes many failures, a bulk retry recovers them
    in one operation. The workflow first generates a plan that estimates how many
    events match the query, branches on whether any were matched, starts the bulk
    retry, then polls the operation until it is no longer in progress. 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: bulkRetryEventsApi
  url: ../openapi/hookdeck-bulk-retry-events-api-openapi.yml
  type: openapi
workflows:
- workflowId: bulk-retry-failed-events
  summary: Estimate, launch, and monitor a bulk retry of failed events.
  description: >-
    Generates a bulk retry plan for failed events scoped to a connection,
    branches when nothing matches, creates the bulk retry, and polls the
    operation until it finishes.
  inputs:
    type: object
    required:
    - webhookId
    properties:
      webhookId:
        type: string
        description: The connection (webhook) id whose failed events should be retried.
  steps:
  - stepId: planRetry
    description: >-
      Estimate how many failed events match the connection before committing to
      a bulk retry.
    operationId: generateEventBulkRetryPlan
    requestBody:
      contentType: application/json
      payload:
        query:
          status: FAILED
          webhook_id: $inputs.webhookId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      estimatedCount: $response.body#/estimated_count
    onSuccess:
    - name: hasMatches
      type: goto
      stepId: startRetry
      criteria:
      - context: $response.body
        condition: $.estimated_count > 0
        type: jsonpath
    - name: nothingToRetry
      type: end
      criteria:
      - context: $response.body
        condition: $.estimated_count == 0
        type: jsonpath
  - stepId: startRetry
    description: >-
      Create and start the bulk retry for the failed events matching the
      connection.
    operationId: createEventBulkRetry
    requestBody:
      contentType: application/json
      payload:
        query:
          status: FAILED
          webhook_id: $inputs.webhookId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      bulkRetryId: $response.body#/id
      inProgress: $response.body#/in_progress
  - stepId: pollRetry
    description: >-
      Poll the bulk retry operation until it is no longer in progress, retrying
      the read while the operation is still running.
    operationId: getEventBulkRetry
    parameters:
    - name: id
      in: path
      value: $steps.startRetry.outputs.bulkRetryId
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.in_progress == false
      type: jsonpath
    retryAfter: 5
    retryLimit: 30
    outputs:
      bulkRetryId: $response.body#/id
      completedAt: $response.body#/completed_at
      progress: $response.body#/progress
  outputs:
    bulkRetryId: $steps.pollRetry.outputs.bulkRetryId
    completedAt: $steps.pollRetry.outputs.completedAt

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-bulk-retry-failed-events-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.