Convoy · Arazzo Workflow

Convoy Retry a Failed Delivery

Version 1.0.0

Find a failed event delivery, retry it, and inspect the resulting delivery attempts.

1 workflow 1 source API 1 provider
View Spec View on GitHub WebhooksWebhook GatewayEvent DeliveryEventingMessagingIntegrationAPI InfrastructureArazzoWorkflows

Provider

convoy

Workflows

retry-failed-delivery
Locate a failed delivery, retry it, and review its delivery attempts.
Lists event deliveries filtered to the Failure status, branches when a failed delivery is found, retries that delivery, and lists the delivery attempts so the retry result can be inspected.
3 steps inputs: apiKey, projectID outputs: deliveryStatus, failedDeliveryId, latestAttemptHttpStatus
1
findFailedDelivery
GetEventDeliveriesPaged
List event deliveries filtered to the Failure status and branch only when a failed delivery is found.
2
retryDelivery
ResendEventDelivery
Retry the matched failed event delivery.
3
inspectAttempts
GetDeliveryAttempts
List the delivery attempts for the retried delivery to inspect the outcome of the retry.

Source API Descriptions

Arazzo Workflow Specification

convoy-retry-failed-delivery-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Convoy Retry a Failed Delivery
  summary: Find a failed event delivery, retry it, and inspect the resulting delivery attempts.
  description: >-
    A targeted remediation flow for a single failed webhook delivery. It lists
    failed event deliveries for the project, branches only when a failure
    exists, retries the first matched delivery, and then reads the delivery
    attempts to inspect the retry outcome. 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: convoyApi
  url: ../openapi/convoy-openapi.yml
  type: openapi
workflows:
- workflowId: retry-failed-delivery
  summary: Locate a failed delivery, retry it, and review its delivery attempts.
  description: >-
    Lists event deliveries filtered to the Failure status, branches when a
    failed delivery is found, retries that delivery, and lists the delivery
    attempts so the retry result can be inspected.
  inputs:
    type: object
    required:
    - apiKey
    - projectID
    properties:
      apiKey:
        type: string
        description: Convoy API key used as the Bearer token on the Authorization header.
      projectID:
        type: string
        description: The Convoy project identifier.
  steps:
  - stepId: findFailedDelivery
    description: >-
      List event deliveries filtered to the Failure status and branch only when
      a failed delivery is found.
    operationId: GetEventDeliveriesPaged
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiKey
    - name: projectID
      in: path
      value: $inputs.projectID
    - name: status
      in: query
      value:
      - Failure
    - name: perPage
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      failedDeliveryId: $response.body#/data/content/0/uid
    onSuccess:
    - name: failureFound
      type: goto
      stepId: retryDelivery
      criteria:
      - context: $response.body
        condition: $.data.content.length > 0
        type: jsonpath
  - stepId: retryDelivery
    description: >-
      Retry the matched failed event delivery.
    operationId: ResendEventDelivery
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiKey
    - name: projectID
      in: path
      value: $inputs.projectID
    - name: eventDeliveryID
      in: path
      value: $steps.findFailedDelivery.outputs.failedDeliveryId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      deliveryStatus: $response.body#/data/status
  - stepId: inspectAttempts
    description: >-
      List the delivery attempts for the retried delivery to inspect the
      outcome of the retry.
    operationId: GetDeliveryAttempts
    parameters:
    - name: Authorization
      in: header
      value: Bearer $inputs.apiKey
    - name: projectID
      in: path
      value: $inputs.projectID
    - name: eventDeliveryID
      in: path
      value: $steps.findFailedDelivery.outputs.failedDeliveryId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      latestAttemptStatus: $response.body#/data/0/status
      latestAttemptHttpStatus: $response.body#/data/0/http_status
  outputs:
    failedDeliveryId: $steps.findFailedDelivery.outputs.failedDeliveryId
    deliveryStatus: $steps.retryDelivery.outputs.deliveryStatus
    latestAttemptHttpStatus: $steps.inspectAttempts.outputs.latestAttemptHttpStatus