Getting started

Quickstart

Get your first webhook routing in under 3 minutes. You'll need a Hookman account — sign up free.


1. Create a project

A project in Hookman maps to one webhook integration — for example, your Stripe setup, your GitHub webhooks, or your Paddle integration. Each project gets a unique endpoint URL.

Go to your dashboard, click New project, and choose a slug. The slug becomes part of your endpoint URL and can't be changed later.

Endpoint format: https://hookman.dev/w/{org}/{project}
For example: https://hookman.dev/w/acme/payments

2. Register your deployments

Tell Hookman where each branch deployment lives. You can do this from the dashboard, the CLI, or the GitHub Action (recommended for teams).

Via CLI

Install the CLI and authenticate:

shell
## Install globally
npm install -g hookman

## Authenticate (opens browser)
hookman login

## Register a deployment
hookman register \
  --org acme \
  --project payments \
  --branch feature/checkout \
  --url https://pr-42.myapp.com/api/webhooks/stripe

The register command is idempotent — running it again with the same branch updates the URL rather than creating a duplicate. This makes it safe to call on every deploy.

Tip: Set the HOOKMAN_API_KEY environment variable and drop the --key flag entirely. Key resolution order: --key flag → HOOKMAN_API_KEY env → ~/.hookman/config.json.

Via GitHub Action

Add this to your repository to register deployments automatically when Vercel, Netlify, or Cloudflare Pages posts a preview URL:

yaml .github/workflows/hookman.yml
name: Hookman webhook routing

on:
  deployment_status:
  pull_request:
    types: [closed]

jobs:
  hookman:
    runs-on: ubuntu-latest
    steps:
      - uses: hookman-dev/register-deployment@v1
        with:
          api-key:      ${{ secrets.HOOKMAN_API_KEY }}
          org:          acme
          project:      payments
          webhook-path: /api/webhooks/stripe

The action uses deployment_status events — these fire after the deployment platform posts the preview URL back to GitHub. Your PR URL is available the moment it's live. On PR close, the deployment is automatically removed.

3. Configure your webhook provider

Set your Hookman endpoint as the webhook URL in your provider. You'll do this once and never need to change it again.

Stripe

shell
# Stripe CLI
stripe webhooks update wh_xxx \
  --url https://hookman.dev/w/acme/payments

# Or set it in the Stripe dashboard:
# Developers → Webhooks → your endpoint → Update

Paddle

In the Paddle dashboard, go to Notifications and set the endpoint URL to your Hookman endpoint. Paddle supports one URL per notification destination — Hookman is the one URL you'll ever set.

Any webhook provider works. Hookman is provider-agnostic — it proxies the raw request unchanged. If your provider can POST to a URL, Hookman can route it.

4. Switch the active branch

When you want webhooks to go to a different deployment, flip the switch.

Dashboard

Open your project in the dashboard and use the active deployment dropdown. The change takes effect immediately.

CLI

shell
hookman switch \
  --org acme \
  --project payments \
  --branch feature/checkout
Automatic routing (no manual switching). If your webhook payloads include a branch identifier, you can configure Hookman to route automatically without any switching. See routing strategies.

Next steps