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:
- Create a workflow and choose the Incoming Webhook trigger.
-
Notebooker generates a unique URL with a secret token in it:
https://app.notebooker.ai/api/webhooks/workflows/<token> - 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.