Node Reference
Complete reference for every node type available in the Keplars automation builder - triggers, email, delays, conditions, and actions.
Every automation is a graph of nodes connected in sequence. This page covers every node type, its configuration fields, and how it behaves at runtime.
Trigger Node
Every automation starts with exactly one trigger node. The trigger type determines what causes contacts to be enrolled.
| Trigger type | Config field | Description |
|---|---|---|
contact_event | Event name | Fires when your app calls Track Event with a matching name |
contact_added_to_audience | Audience | Fires when a contact is added to the linked audience |
date_time | Scheduled datetime | Fires once at the specified date and time |
manual | - | Triggered from the dashboard or via the Direct Enroll API |
Only active automations accept enrollments. Contacts that trigger the event while the automation is in Draft are silently skipped.
Send Email Node
Sends an email to the enrolled contact at this point in the workflow.
| Field | Required | Description |
|---|---|---|
| Template | Yes | A template from your Template Library |
| Subject | Yes | Email subject line - supports Handlebars variables |
| Sending from | Yes | An OAuth-connected account or a verified custom domain prefix |
Template variables
Use Handlebars syntax in both the subject line and the template body:
| Variable | Value |
|---|---|
{{firstName}} | Contact's first name |
{{lastName}} | Contact's last name |
{{email}} | Contact's email address |
{{event.<property>}} | Any property from the trigger event (e.g. {{event.plan}}) |
Event properties are only available when the automation uses a contact_event trigger that includes properties in the Track Event call.
Delay Node
Pauses the contact's progress through the automation for a fixed duration.
| Field | Options | Description |
|---|---|---|
| Amount | Any positive integer | How long to wait |
| Unit | seconds, minutes, hours, days | Time unit for the amount |
The contact resumes from where they paused once the delay expires. If the automation is deactivated while a contact is in a delay, the contact remains paused until the automation is reactivated.
Condition Node
Evaluates a condition against the contact's data and routes the flow to one of two branches.
| Field | Description |
|---|---|
| Field | The data field to evaluate (see table below) |
| Operator | How to compare the field to the value |
| Value | The value to compare against (not required for exists) |
The node always produces two output branches:
- True - condition evaluated to true
- False - condition evaluated to false (or field did not exist)
Condition fields
| Field | What it checks |
|---|---|
contact.email | Contact's email address |
contact.firstName | Contact's first name |
contact.lastName | Contact's last name |
email_opened | Whether the last automation email sent to this contact was opened |
email_clicked | Whether the last automation email had a link clicked |
email_delivered | Whether the last automation email was delivered |
event.<name> | Value of a trigger event property (e.g. event.plan) |
Operators
| Operator | Description | Value required |
|---|---|---|
eq | Equals | Yes |
neq | Not equals | Yes |
contains | String contains substring | Yes |
exists | Field is present and non-empty | No |
email_opened, email_clicked, and email_delivered reflect the state of the most recent Send Email node that ran before this Condition node in the same automation run.
Action Node
Performs a side-effect operation on the contact's profile without sending an email or waiting.
Add Tag
| Field | Description |
|---|---|
| Tag name | The tag to attach to the contact |
Creates the tag if it doesn't already exist in your workspace, then attaches it to the contact's profile. Tags are visible in Audiences → Contact profile and can be used to filter contacts in future campaigns.
Update Contact Field
| Field | Description |
|---|---|
| Field | The contact field to update |
| Value | The new value to set |
Updatable fields:
| Field name | Contact property |
|---|---|
firstName | First name |
lastName | Last name |
jobTitle | Job title |
companyName | Company name |
phoneNumber | Phone number |
timezone | Timezone (IANA format, e.g. America/New_York) |
Next Steps
- Building Automations - end-to-end dashboard walkthrough
- Automations API Reference - full endpoint docs with request/response examples