Send Email
keap.send_email
ActionCRM & salesconnection required
Calls the Keap API with the connection's credentials.
Queue an email to one or more Keap contacts, sent on behalf of a Keap user, with optional base64 attachments.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- OAuth 2.0
- Providers
- Keap
- Secret shape
- {"client_id": "…", "client_secret": "…", "refresh_token": "…"}
- Config it needs
- base_url, default_user_id
- Resolved by
- config.connection_id, else node.connection_id
Configuration
7 fields, 2 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
contacts The Keap contact ids to send to — a JSON array, or a comma-separated list. | array | Yes | — | array of number | [12345] |
subject The subject line of the email. | string | Yes | — | — | — |
html The HTML body, written as ordinary HTML; it is base64-encoded for Keap. | string | No | — | — | — |
plain_text The plain-text body, written as ordinary text; it is base64-encoded for Keap. | string | No | — | — | — |
user_id The Keap user to send the email on behalf of; defaults to the connection's default_user_id. | string | No | — | — | 7 |
address_field Which email field of each contact to address, such as EmailAddress2; defaults to the contact's primary address. | string | No | — | — | — |
attachments Up to ten attachments, each {file_name, file_data} with file_data base64-encoded. | array | No | — | array of object | — |
- At least one of html, plain_text must be set.
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"contacts": [
12345
],
"user_id": "7"
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
queued True — Keap accepted the send (202) and will deliver it asynchronously. | boolean | — |
contact_ids The contact ids the email was queued for. | array | — |
subject The subject line that was sent. | string | — |
user_id The Keap user the email was sent on behalf of. | number | — |
attachment_count How many attachments went with it. | number | — |
{
"attachment_count": 0,
"contact_ids": [],
"queued": false,
"subject": "",
"user_id": 0
}Notes
- Keap answers 202 Accepted with no body: the email is queued, not confirmed delivered, so nothing downstream should treat this as proof of delivery.
- Keap caps a send at ten attachments of 1 MB each.
See Send Email run in a workflow.
In a technical demo we add the Keap connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.