n8n is a workflow tool you can run yourself or use in the cloud. The SendBeam node adds SendBeam to it as an app of its own: create or update a contact, add them to a list, tag them, start an automation for them, send a campaign or a transactional email, and read a campaign's report, with lists, tags and automations chosen by name rather than pasted as IDs.
The SendBeam Trigger starts a workflow when something happens in your workspace: a contact is created or unsubscribes, an email is opened or clicked, a form is submitted, a campaign is sent. Publishing the workflow sets up its webhook endpoint in SendBeam and unpublishing it removes it again, so nothing has to be copied between the two.
Native integration: yes
SendBeam publishes an official community node for n8n (MIT licence, source on GitHub, released to npm as n8n-nodes-sendbeam). Install it from Settings → Community nodes; the HTTP Request example below is there for anything the node does not cover.
How it works
- Install the node. Settings → Community nodes → Install in n8n, and enter n8n-nodes-sendbeam. Search the nodes panel for SendBeam once it has installed.
- Connect your workspace. Settings → API keys in SendBeam, one key for each n8n instance, with the permissions its workflows use. Add it as a SendBeam API credential; saving it runs a connection test.
- Build the workflow. Pick an action, or start with the SendBeam Trigger and publish the workflow: its endpoint is set up in SendBeam for you, and unpublishing removes it.
Code
Install the node
n8n → Settings → Community nodes1. Settings → Community nodes → Install
2. npm package name: n8n-nodes-sendbeam
3. Nodes panel → search "SendBeam"
4. Credentials → SendBeam API → paste your API key Only the n8n instance owner and admins can install community nodes. Saving the credential runs a connection test.
Map fields from the SendBeam Trigger
Any node after the triggerContact events {{ $json.data.contact.email }}
{{ $json.data.contact.first_name }}
Tag events {{ $json.data.tag.name }}
Email events {{ $json.data.email }}
Any event {{ $json.event }} Contact events carry the person under data.contact, and Send test event in Settings → Webhooks sends the same shape, so a mapping built from a test keeps working.
Without the node: HTTP Request
HTTP Request nodeMethod POST
URL https://sendbeam.io/api/v1/contacts
Headers x-api-key: sb_live_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
Body JSON
{
"email": "{{ $json.email }}",
"first_name": "{{ $json.first_name }}",
"source": "n8n"
} Needs contacts:write. A 409 means the contact already exists; the node's Create or update action handles that for you.
Things to know
- Give each n8n instance its own API key with only the permissions its workflows use; the node's documentation lists which action needs which.
- The trigger needs n8n to be reachable over https. On your own computer, point n8n's WEBHOOK_URL at a tunnel before publishing the workflow.
- Events usually reach n8n within a minute of happening, and each one arrives whole: event, created_at and data.
- Adding a tag or a list membership a contact already has succeeds, so workflows can be re-run safely.
Spam and abuse
The public form endpoint has no key on purpose, so protection lives on the form. Every submission is checked for the signs of an automated post and is rate-limited per visitor and capped per form per day; the caps are shown, and adjustable, on the form's settings page. In the form's Protection section you can add an Allowed sites list, which makes browsers on any other origin get a 403, and Cloudflare Turnstile, after which every submission must carry a valid token. Details are in Protecting public forms.
Go further
- Documentation Overview →
- Official node SendBeam for n8n → Node source, tests and release notes; released to npm as n8n-nodes-sendbeam.
- Starter kits Five starters: plain HTML, Astro, Eleventy, Next.js and Hugo →
- Docs Forms: signup and contact →
- Docs API reference →
Related integrations
Also: Astro, Next.js, Hugo, Eleventy, Cloudflare Pages, Netlify, Vercel.