SendBeam

Integrations · Automation

SendBeam and n8n

The official SendBeam node for n8n: 25 actions for contacts, lists, tags, campaigns, automations and email, and a trigger for every SendBeam event.

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

  1. Install the node. Settings → Community nodes → Install in n8n, and enter n8n-nodes-sendbeam. Search the nodes panel for SendBeam once it has installed.
  2. 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.
  3. 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 nodes
1. 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 trigger
Contact 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 node
Method   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

Also: Astro, Next.js, Hugo, Eleventy, Cloudflare Pages, Netlify, Vercel.