n8n
Use Cavuno with self-hosted n8n: install the community node, or receive signed webhooks without it.
A
JUse n8n to react when something changes on your board, or to create and update jobs, companies, candidates, and marketing permissions through the Cavuno API.
Install the community package n8n-nodes-cavuno for the shortest path. If you cannot install community nodes, receive events with n8n’s built-in Webhook node and verify the signature yourself.
You need a paid Cavuno plan (Starter or higher). Free boards cannot use the API or webhooks.
Install the community node
This path is for self-hosted n8n. A verified install on n8n Cloud is not available yet.
- In n8n, open Settings → Community nodes.
- Select Install a community node.
- Package name:
n8n-nodes-cavuno. Accept the risk prompt. - Install, then confirm the package appears in the list.
If your instance blocks community packages, see n8n’s community nodes installation guide for the flags and version requirements.
Create a Cavuno API credential
- In Cavuno, open Settings → API and create an API key with only the scopes you need.
- In n8n, create a Cavuno API credential:
- API Base URL: your board’s API base ending in
/api/v1(for examplehttps://your-board.com/api/v1). - API Key: the
cavuno_live_…key.
- API Base URL: your board’s API base ending in
Scopes
| What you do in n8n | Scopes to grant |
|---|---|
| Read or write jobs | jobs.read, plus jobs.manage / jobs.publish if you create, update, publish, or expire |
| Companies | companies.read, plus companies.manage for create, update, or delete |
| Candidates | candidates.read, plus candidates.manage only if you delete |
| Marketing permissions | marketing_permissions.read, plus marketing_permissions.manage to withdraw |
| Cavuno Trigger (webhooks) | webhooks.read, webhooks.manage, plus the read scope for each event family you subscribe to |
Existing API keys do not pick up new scopes. If the credential test fails, read the message on the credential: missing scopes and Free-plan boards are the usual causes.
Run actions (Cavuno node)
Add a Cavuno node and choose a resource and operation.
| Resource | Operations |
|---|---|
| Job | Create, Get, Get Many, Update, Delete, Publish, Expire |
| Company | Create, Find or Create, Get, Get Many, Update, Delete |
| Candidate | Get, Get Many, Delete |
| Marketing Permission | Get Many (exact email lookup), Withdraw |
Withdrawing marketing consent is safe to run more than once. Only the person on your board can grant consent, so this node cannot grant it.
For a first check, run Job → Get Many with a small limit and Execute step. Correct credentials return rows from your board.
Start workflows from events (Cavuno Trigger)
Cavuno Trigger registers a webhook endpoint when you activate the workflow and removes it when you deactivate.
- Add Cavuno Trigger as the first step.
- Select the events you want (jobs, companies, candidates, marketing permission granted or withdrawn).
- Attach the same Cavuno API credential (with webhook scopes).
- Activate the workflow.
Cavuno delivers only to a public HTTPS URL. On n8n Cloud that is set for you. On self-hosted n8n, set WEBHOOK_URL to your instance’s public HTTPS base (for example https://n8n.example.com/) before you activate. Local and private network URLs are rejected.
The node verifies every delivery before the workflow runs. It checks the Standard Webhooks headers (webhook-id, webhook-timestamp, webhook-signature) against the endpoint secret. Forged or stale requests never enter the workflow.
The same event can arrive more than once. If that is a problem, deduplicate on the top-level event id. Each snapshot also has a revision: ignore events that are not newer than the last revision you applied for that resource.
Payload details: Events. Retries: Delivery and retries.
Without the community node
You can still receive Cavuno webhooks with stock n8n:
- In n8n, add a Webhook node (POST) and activate the workflow so n8n shows a production HTTPS URL.
- In Cavuno, open Settings → Developer → Webhooks, add that URL, select events, and save.
- Copy the signing secret (
whsec_…) when Cavuno shows it. It appears only once. - In n8n, verify the signature before you act on the payload. Keep the raw body (do not parse and re-serialise JSON first). Steps and code: Verifying signatures.
Use Send test on the endpoint in Cavuno to confirm the path. Test deliveries use synthetic data and do not appear in the delivery log.
Without the community node, subscribe and unsubscribe yourself via the Operator API (/webhook-endpoints) with webhooks.read and webhooks.manage. Prefer the community node if you want activate and deactivate to manage that for you.
Common problems
| Symptom | What to do |
|---|---|
| Package does not install | Allow community nodes on the instance. Use the exact name n8n-nodes-cavuno. |
| Credential test fails | End the base URL with /api/v1. Use a current key on a paid board. Match scopes to the operation. |
| Trigger is active but no events arrive | Set WEBHOOK_URL (or your host public URL) to HTTPS that the internet can reach. Keep the workflow active. Confirm the endpoint under Settings → Developer → Webhooks. |
| Signature fails on a custom Webhook | Sign the raw body, not re-serialised JSON. Use the full whsec_… secret from endpoint creation. |
| Workflow runs twice for one change | Expected. Cavuno delivers at least once. Deduplicate on event id. |