Skip to main content

Overview

Triggers enable event-driven automation in Kaireon. When a customer event occurs — a transaction, a profile update, a behavioral signal — a trigger can automatically enroll the customer in a journey, fire a real-time recommendation, call an external webhook, or update customer attributes.
Triggers are an Enterprise tier feature. See Licensing & Tiers for details.

How Triggers Work

Event Source → Trigger Rule → Condition Evaluation → Action Execution
  1. An event arrives from a connected data source (streaming connector, API call, or schema update)
  2. The trigger rule matches events by type and optional filters
  3. Conditions are evaluated to determine if the trigger should fire
  4. The configured action is executed

Event Types

Triggers listen for events from your connected data sources:
Event SourceExamples
Streaming connectorsKafka messages, webhook payloads, CDC events
Schema table updatesRow inserts, updates, or deletes in schema tables
Outcome eventsImpressions, clicks, conversions recorded via the Respond API
ScheduledTime-based triggers (daily, weekly, on a cron schedule)

Action Types

Action TypeDescription
enroll_journeyEnroll the customer in a specified journey
fire_recommendExecute a decision flow and deliver the result immediately
webhookSend an HTTP POST to an external URL with event data
update_attributeUpdate one or more customer attributes in a schema table

enroll_journey

{
  "actionType": "enroll_journey",
  "config": {
    "journeyId": "jrn_loan_nurture",
    "deduplication": "skip_if_active"
  }
}
The deduplication option prevents enrolling a customer who is already active in the same journey. Options: skip_if_active (default), restart, allow_multiple.

fire_recommend

{
  "actionType": "fire_recommend",
  "config": {
    "decisionFlowId": "df_realtime_offers",
    "channelId": "ch_push",
    "maxOffers": 1,
    "deliverImmediately": true
  }
}

webhook

{
  "actionType": "webhook",
  "config": {
    "url": "https://api.yourcompany.com/events/handle",
    "method": "POST",
    "headers": {
      "Authorization": "Bearer {{secret.webhook_token}}"
    },
    "bodyTemplate": {
      "customerId": "{{event.customerId}}",
      "eventType": "{{event.type}}",
      "triggerId": "{{trigger.id}}"
    }
  }
}

update_attribute

{
  "actionType": "update_attribute",
  "config": {
    "schemaId": "schema_customer_profile",
    "updates": [
      { "field": "last_event_date", "value": "{{event.timestamp}}" },
      { "field": "event_count", "expression": "event_count + 1" }
    ]
  }
}

Cooldown

Each trigger has a configurable cooldown period to prevent rapid re-firing for the same customer:
FieldTypeDescription
cooldownMinutesnumberMinimum minutes between trigger firings for the same customer
{
  "cooldownMinutes": 60
}
Without a cooldown, high-frequency events (e.g., page views, transaction streams) can cause a trigger to fire hundreds of times per customer. Always set an appropriate cooldown.

Priority

When multiple triggers match the same event, they are executed in priority order:
PriorityValue RangeDescription
Critical90-100Compliance and regulatory triggers
High70-89Revenue-critical automations
Medium40-69Standard engagement triggers
Low1-39Background/informational triggers

Creating a Trigger

1

Navigate to Triggers

Go to Studio > Triggers in the sidebar.
2

Click Create Trigger

Click the + New Trigger button.
3

Name and describe

Enter a name and description for the trigger.
4

Select event source

Choose the data source and event type that will activate this trigger.
5

Define conditions (optional)

Add filter conditions to narrow when the trigger fires (e.g., event.amount > 1000).
6

Select action type

Choose the action: enroll in journey, fire recommendation, call webhook, or update attribute.
7

Configure action

Fill in the action-specific configuration (journey ID, decision flow, webhook URL, etc.).
8

Set cooldown and priority

Configure the cooldown period and execution priority.
9

Save and enable

Save the trigger. Toggle it to enabled when ready.

API Reference

Create a Trigger

POST /api/v1/triggers
Content-Type: application/json
Request body:
{
  "name": "High-Value Transaction Nurture",
  "description": "Enroll customer in loan journey after a transaction over $5000",
  "eventSource": "schema_transactions",
  "eventType": "row_insert",
  "conditions": [
    { "field": "event.amount", "operator": ">", "value": 5000 }
  ],
  "actionType": "enroll_journey",
  "actionConfig": {
    "journeyId": "jrn_loan_nurture",
    "deduplication": "skip_if_active"
  },
  "cooldownMinutes": 1440,
  "priority": 70,
  "enabled": true
}
Response (201 Created):
{
  "id": "trg_high_value_txn",
  "name": "High-Value Transaction Nurture",
  "eventSource": "schema_transactions",
  "eventType": "row_insert",
  "actionType": "enroll_journey",
  "cooldownMinutes": 1440,
  "priority": 70,
  "enabled": true,
  "createdAt": "2026-03-10T14:30:00Z",
  "updatedAt": "2026-03-10T14:30:00Z"
}

List Triggers

GET /api/v1/triggers

Update a Trigger

PUT /api/v1/triggers/:id

Delete a Trigger

DELETE /api/v1/triggers/:id

Enable/Disable a Trigger

PATCH /api/v1/triggers/:id
Content-Type: application/json

{ "enabled": false }