Skip to content

Trigger Nodes

Trigger nodes define how a flow is activated. They are standalone nodes (separate from the start node’s inline trigger) that provide richer configuration and can be mixed in flows.

Fires when the agent is mentioned on a social platform.

{
"type": "trigger",
"data": {
"type": "trigger",
"triggerId": "mention-1",
"name": "Twitter Mentions",
"triggerType": "MENTION",
"platform": "TWITTER",
"config": {
"mentionTypes": ["direct", "reply", "quote"],
"replyToSelf": false,
"keywords": ["help"],
"excludeKeywords": ["spam"],
"verifiedOnly": false,
"minFollowers": 0
},
"rateLimit": {
"maxExecutions": 60,
"windowSeconds": 3600
}
}
}
FieldTypeDescription
mentionTypesarraydirect, reply, quote
replyToSelfbooleanRespond to own mentions (thread continuations)
keywordsstring[]Required keywords in mention
excludeKeywordsstring[]Exclude mentions with these words
verifiedOnlybooleanOnly verified accounts
minFollowersnumberMinimum follower count

Fires when specific keywords are detected in platform messages.

{
"triggerType": "KEYWORD",
"config": {
"keywords": ["help", "support", "question"],
"matchMode": "any",
"caseSensitive": false,
"wholeWord": true,
"excludeKeywords": ["test"]
}
}
FieldTypeDescription
keywordsstring[]Words to monitor
matchModeany | allMatch any or all keywords
caseSensitivebooleanCase-sensitive matching
wholeWordbooleanMatch whole words only

Fires on a cron schedule.

{
"triggerType": "SCHEDULE",
"config": {
"cron": "0 9 * * *",
"timezone": "America/New_York",
"maxCatchUp": 3
}
}
ExpressionSchedule
* * * * *Every minute
0 * * * *Every hour
0 9 * * *Daily at 9am
0 9 * * 1-5Weekdays at 9am
0 0 * * 1Every Monday midnight
0 0 1 * *First of month
*/15 * * * *Every 15 minutes

Fires when an HTTP request is received at the webhook URL.

{
"triggerType": "WEBHOOK",
"config": {
"methods": ["POST"],
"secretRef": "webhook_secret",
"allowedIps": [],
"contentType": "application/json",
"pathPattern": "/hooks/my-agent"
}
}

Fires when explicitly triggered by a user (chat UI or API call).

{
"triggerType": "MANUAL",
"config": {
"requireConfirmation": false,
"inputFields": [
{
"name": "topic",
"type": "string",
"label": "Research Topic",
"required": true
}
]
}
}

All triggers support rate limiting:

{
"rateLimit": {
"maxExecutions": 100,
"windowSeconds": 3600,
"cooldownSeconds": 60,
"perUser": {
"maxExecutions": 10,
"windowSeconds": 60
}
}
}

At runtime, triggers produce a standard payload:

{
"triggerType": "MENTION",
"messageId": "tweet-123",
"platform": "TWITTER",
"timestamp": "2024-01-01T12:00:00Z",
"author": {
"id": "user-456",
"username": "johndoe",
"displayName": "John Doe",
"verified": true,
"followerCount": 1500
},
"content": "@myagent help me with this question",
"context": {
"parentId": "tweet-100",
"threadId": "thread-50",
"replyToUsername": "janedoe"
}
}