SendBeam

Make setup

Connect SendBeam to Make: what you need, the steps, and the code.

View as Markdown

Via API

There is no SendBeam app in Make today, but its HTTP module covers the same ground: one request adds a contact, another sends the email. It works against a public form endpoint too, with no API key.

Before you start

  • An account with Make
  • A SendBeam API key, or a form ID

Set it up

  1. Create an API key. Settings → API keys in SendBeam. Give it contacts:write, and transactional:send if the scenario sends email. The full key is shown once.
  2. Add the HTTP step. Point Make’s webhook or HTTP module at the endpoint, set the x-api-key header and a JSON body. The examples below are ready to map.
  3. Test with your own address. Run the scenario once. The contact appears under Contacts within a second; a send appears in Activity with the API filter.

Code

Add a contact (HTTP → Make a request)

Module 2

Module: HTTP → Make a request
URL:          https://sendbeam.io/api/v1/contacts
Method:       POST
Headers:      x-api-key = sb_live_XXXXXXXX_YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
Body type:    Raw
Content type: JSON (application/json)
Request content:
{
  "email": "{{1.email}}",
  "first_name": "{{1.first_name}}",
  "source": "make"
}
Parse response: Yes   → use {{2.data.contact.id}} in the next module

Create the key under Settings → API keys with contacts:write.

Send an email (HTTP → Make a request)

Module 3

Module: HTTP → Make a request
URL:          https://sendbeam.io/api/v1/send
Method:       POST
Headers:      x-api-key = sb_live_…
Body type:    Raw · JSON
Request content:
{
  "contact_id": "{{2.data.contact.id}}",
  "subject": "Welcome aboard",
  "html_content": "<p>Hi {{first_name}}, thanks for joining.</p>"
}

Needs transactional:send. The response is { “ok”: true, “message_id”: “…” }.

No API key? Post to a signup form instead

Module 2

POST https://sendbeam.io/api/forms/YOUR_SIGNUP_FORM_ID
Headers
  Content-Type: application/json
Data (JSON)
{ "email": "{{1.email}}", "first_name": "{{1.first_name}}" }

200 → { "success": true, "message": "Thanks for subscribing!", "redirect_url": null }

Works on every plan. Leave Allowed sites empty on that form, because the HTTP module sends no Origin header.

Things to know

  • Turn on “Parse response” so the contact id is available as a mapped value in the next module.
  • Add an error handler route for status 409 (contact exists) that calls GET /api/v1/contacts?q={{1.email}} and continues with the matching id.
  • Make retries failed modules according to your scenario settings; POST /api/v1/send is not idempotent, so keep retries off for the send module.

← Back to the Make integration

Stuck, or found a gap? Ask in the community — questions, tips and every release note, with this page as the source of truth.