Send Email
ID:email-send · Kind: action
Send an email via an SMTP credential. Supports tracking and reply waiting.
Input fields
| Field | Required | Meaning |
|---|---|---|
credentialId | ✅ | SMTP credential — must be active |
subject | ✅ | Subject — supports {{...}} variables |
body | one of | Inline body (HTML) |
templateName | one of | Template reference (preferred over body) |
trackOpens | Enable pixel tracking | |
trackClicks | Rewrite links for click tracking | |
unsubscribeLink | Auto-append an unsubscribe link | |
replyTimeoutMs | Wait up to N ms for a reply; otherwise the node treats it as “no reply” and continues |
Output (edge.when keys)
| Field | True when |
|---|---|
sent | SMTP accepted the message |
opened | Pixel pinged back |
clicked | A tracked link was clicked |
replied | Inbound matched the In-Reply-To header |
bounced | Hard bounce |
replyText | (string) Reply body |
clickedUrl | (string) URL that was clicked |
edge.when example
Node email-1 (Send Email) outgoing edges:
when: replied→ Exit — Handoffwhen: clicked→ Wait 24h → Send follow-upwhen: bounced→ Exit — Suppress (reason=bounce)default→ Wait 72h → Send nudge
Send (LinkedIn / Telegram)
ID:send-step · Kind: action
Send via LinkedIn DM or Telegram. Channel + credential are independent but the credential picker filters by channel.
Input fields
| Field | Required | Meaning |
|---|---|---|
channel | ✅ | linkedin / telegram |
credentialId | ✅ | Credential matching the channel |
body | one of | Inline body |
templateName | one of | Template reference |
replyTimeoutMs | Wait up to N ms for a reply |
Output
| Field | Meaning |
|---|---|
sent | Sent successfully |
replied | Customer replied within N ms |
replyText | Reply body |
Channel notes
LinkedIn
- The credential is a cookie session. When LinkedIn invalidates the cookie → the workspace gets an alert.
- LinkedIn soft rate limit: ~50–100 DMs/day/account. Over → the account is throttled.
- Only DMs are supported today (after the connection request). InMail / connect message: roadmap.
Telegram
Telegram
- The credential is a bot token (from BotFather).
- Customer must have a Telegram chat ID linked as a contact.
- Telegram only delivers after the user runs
/starton the bot (granting permission).
Tracking pixel + click
See Tracking & Webhooks. Every outbound email is rewritten:- Pixel: a
<img src="...pixel.gif?t=<token>" width="1" height="1">is appended. - Click: every link is replaced with
...tracking/click?t=<token>&url=<encoded>.
Inbound
When a customer replies, the system parses inbound from the provider (SMTP IMAP / SES inbound rule / Telegram webhook), matches the contact by email / linkedin URL / chat ID, creates a message bubble, and fires the matching event. Any node waiting viareplyTimeoutMs immediately fires replied=true.
Outbound queue rate limiting + send-time optimization, custom retry-with-backoff policies, separate soft-bounce + complaint events,
latencyMs output field — coming soon or partial.