Shipfox
IntegrationsCustom webhook

Create and verify a Shipfox custom webhook

Create a webhook, inspect a test delivery, and verify that it starts a workflow run.

Use a custom webhook when another system can send HTTP requests. This works even when Shipfox has no built-in integration for that system. See the custom webhook overview for its capabilities.

Before you begin

You need access to workspace integration settings. You also need a terminal or system that can send an HTTP POST request.

To verify a run, you need a project that can sync workflows and an online runner with the ubuntu-latest label.

Create the integration connection

Add the webhook

Open Settings → Integrations. Select Custom webhook, then create an integration connection with a short slug such as deploy_hook.

Copy the ingest URL

Copy the URL shown after you create the webhook. Keep it secret. Anyone who has the URL can send events to the integration connection.

Send a test event

Replace the URL below with the copied value:

curl -X POST '<your-ingest-url>' \
  -H 'Content-Type: application/json' \
  -d '{"environment":"staging","version":"1.4.2"}'

Shipfox should respond with 202 Accepted and a delivery ID.

Verify the event

Open Settings → Events and filter by the webhook integration connection slug. Open the new received event and confirm that its body contains the test values.

Verify a triggered run

Create .shipfox/workflows/check-custom-webhook.yml. Replace deploy_hook with the integration connection slug. This is a complete workflow:

# yaml-language-server: $schema=https://www.shipfox.io/docs/workflow.schema.json
name: Check the custom webhook
runner: ubuntu-latest

triggers:
  on_deploy_event:
    source: deploy_hook # Replace with your webhook integration connection slug.
    event: received
    filter: event.body.environment == "staging"

jobs:
  check:
    steps:
      - env:
          RELEASE_VERSION: "${{ event.body.version }}"
        run: |
          printf 'Staging release: %s\n' "$RELEASE_VERSION"

Commit and push the workflow to the project's default branch. Wait for Check the custom webhook to sync. Send the same test request again.

Open the new event and its linked run. Confirm that the log prints Staging release: 1.4.2. The workflow binds the request value through env before the shell reads it.

The custom webhook events reference describes the request and event fields. Read Events and triggers for the routing model.

Was this page helpful?
Edit this page on GitHub

On this page