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.

FieldTypeRequiredDefaultConstraintsExample
contacts
The Keap contact ids to send to — a JSON array, or a comma-separated list.
arrayYes—array of number[12345]
subject
The subject line of the email.
stringYes———
html
The HTML body, written as ordinary HTML; it is base64-encoded for Keap.
stringNo———
plain_text
The plain-text body, written as ordinary text; it is base64-encoded for Keap.
stringNo———
user_id
The Keap user to send the email on behalf of; defaults to the connection's default_user_id.
stringNo——7
address_field
Which email field of each contact to address, such as EmailAddress2; defaults to the contact's primary address.
stringNo———
attachments
Up to ten attachments, each {file_name, file_data} with file_data base64-encoded.
arrayNo—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

FieldTypeExample
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.