n8n
Send transactional email, sync contacts, and manage domains from n8n workflows using the official Sendry community node.
n8n-nodes-sendry is the official community node for the open-source
workflow automation tool n8n. It exposes the core Sendry
operations to any self-hosted or n8n.cloud instance.
- Source:
packages/sendry-n8n. - Distribution: npm (
n8n-nodes-sendry). - Peer dep:
n8n-workflow@^1. - License: Apache-2.0.
Install
From the n8n UI (recommended)
- Open your n8n instance and go to Settings → Community Nodes.
- Click Install and enter the package name:
n8n-nodes-sendry. - Accept the risk prompt — community nodes run inside your n8n server's Node.js sandbox.
From the CLI (self-hosted)
# Inside your n8n container or VM
cd ~/.n8n
npm install n8n-nodes-sendry
# restart n8n
The node appears in the editor as Sendry with a small envelope icon.
Credentials
- In n8n: Credentials → New → Sendry API.
- API Key: paste a key from
Settings → API keys. Use
sending_accessorfull_accessfor write operations. - API Base URL: leave the default
https://api.sendry.onlinefor Sendry Cloud, or point at your self-hosted host.
The credential test hits GET /v1/auth/whoami so n8n confirms the key
is live before saving.
Operations
| Resource | Operation | Endpoint |
|---|---|---|
| Send | POST /v1/emails | |
| Get | GET /v1/emails/:id | |
| Contact | Upsert | PUT /v1/contacts/by-email |
| Domain | Create | POST /v1/domains |
| Audience | List | GET /v1/audiences |
Email → Send
From,To,Subject— required.To/CC/BCC/Reply Toaccept comma-separated lists.- Body collection — either
HTML,Text, orTemplate ID. - Additional Fields:
Scheduled At— ISO 8601 or natural language ("in 1 hour").Idempotency Key— auto-generated per n8n execution if blank.Tags (JSON)— array of{"name":"...","value":"..."}objects.
Contact → Upsert
Emailis required.- Optional
First Name,Last Name,Audience ID, and a JSON object of customProperties(keys must match contact-property definitions in your workspace).
Domain → Create
Domain NameplusRegion(us-east-1/eu-west-1/ap-southeast-1).- The node returns the DNS records you need to publish before the domain verifies.
Audience → List
Limit— 1 to 100. Each audience is emitted as a separate output item so downstream nodes can fan out.
Example workflow
When a Typeform submission arrives, upsert the contact and send a templated welcome email.
- Trigger — Typeform → On New Response.
- Sendry — Resource
Contact, OperationUpsert.- Email:
{{$json["email"]}} - Additional Fields → First Name:
{{$json["first_name"]}}
- Email:
- Sendry — Resource
Email, OperationSend.- From:
hello@example.com - To:
{{$json["email"]}} - Subject:
Welcome to Acme! - Body → Template ID:
tmpl_welcome
- From:
Continue on fail
Every operation respects n8n's standard Continue on Fail toggle. When
enabled, errors are emitted as { "error": "..." } items so downstream
branches can react without halting the workflow.
Development
cd packages/sendry-n8n
bun install
bun run build # tsc + gulp build:icons → dist/
bun run typecheck # tsc --noEmit
The build produces dist/nodes/Sendry/Sendry.node.js,
dist/credentials/SendryApi.credentials.js, and the bundled
sendry.svg. n8n picks them up via the n8n field in package.json.
License
Apache-2.0. See the LICENSE in the repository.