Webhooks & workflows

Trigger Notebooker from other apps with incoming webhooks, and notify other apps when things happen with outgoing webhooks — all through Workflows.

Notebooker connects to the rest of your tools through Workflows. A workflow has a trigger (what starts it) and one or more actions (what it does). Webhooks show up on both sides:

  • Incoming webhook — an outside app sends Notebooker a request to start a workflow.
  • Outgoing webhook — a workflow sends a request to an outside app as one of its actions.

You build both under Workflows in Notebooker. No code required.

Incoming webhooks (start a workflow)

Use an incoming webhook when another service should kick off a Notebooker workflow — for example, “when my form is submitted, save the link as a source” or “when CI finishes, generate a podcast summary.”

Set it up:

  1. Create a workflow and choose the Incoming Webhook trigger.
  2. Notebooker generates a unique URL with a secret token in it:

    https://app.notebooker.ai/api/webhooks/workflows/<token>
    
  3. Configure the other service to POST JSON to that URL.

Send a request:

curl -X POST https://app.notebooker.ai/api/webhooks/workflows/<token> \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/article", "title": "Something to read"}'

Notebooker accepts the request (HTTP 202) and runs every active workflow that uses that token.

Use the data: any field you send is available to your workflow’s actions as a variable — for example and. So a “Create Source” action can save exactly the link that was posted in.

The token in the URL is the credential — keep it secret. If it leaks, regenerate it in the trigger settings.

Outgoing webhooks (notify another app)

Use an outgoing webhook when a workflow should tell another service something happened. Add an HTTP Request action to any workflow.

Configure the action:

Field What it does
Method GET, POST, PUT, PATCH, or DELETE.
URL The endpoint to call — supports variables like ``.
Headers Any custom headers (e.g. an Authorization token for the receiving service).
Body JSON or form data, also with variables, for POST/PUT/PATCH.
Timeout / retries How long to wait and how many times to retry on failure.
Store response Optionally capture the response for later actions in the workflow.

For example, a workflow triggered by “Podcast created” can POST to a Slack or Discord incoming-webhook URL so your team gets a message every time a new episode is ready.

Triggering on Notebooker events

Beyond incoming webhooks, workflows can also start when something happens inside Notebooker:

  • Source created / updated / deleted
  • Notebook created / updated / deleted
  • Podcast created / updated / deleted

Pair one of these with an HTTP Request action and you’ve built an outgoing event webhook — “whenever a podcast is created, notify my app.”

What a workflow can do

Besides HTTP Request, workflow actions include:

  • Create source, Create notebook, Add source to notebook — build your library automatically.
  • Create podcast — generate an episode as part of a flow.
  • Send email — email yourself or a teammate.
  • Condition and Run workflow — branch on data and chain workflows together.

Services that work well

Anything that can send or receive a JSON HTTP request integrates cleanly — Slack, Discord, Zapier, Make, n8n, IFTTT, GitHub, Linear, Notion, Telegram, and more. See the Integrations page for a fuller list and links to each service’s webhook docs.

Note on billing webhooks

Notebooker also receives Stripe webhooks to keep your subscription and credits in sync. That’s an internal, system-level integration handled for you — it isn’t something you configure, and it’s separate from the Workflow webhooks above.