Node reference
All 16 nodes you can drop on the canvas. This page is generated from the builder's own registry, so it always matches the product.
Triggers
Start a flow when something happens in your bot.
Command Received
trigger:command-receivedTriggers when a specific bot command is received
commandstartMessage Received
trigger:message-receivedTriggers when any message is received
filteranyActions
Send and manage messages in the chat.
Send Message
action:send-messageSend a text message to a Telegram chat
text""Send Photo
action:send-photoSend a photo to a Telegram chat
photo""Edit Message
action:edit-messageRewrite a message the bot sent — its text and/or its buttons
text""Delete Message
action:delete-messageDelete a message the bot sent (within 48 hours)
Logic
Branch, match, and pause the flow.
Condition
logic:conditionBranch the workflow based on a condition
leftOperand""operatorequalsrightOperand""Switch
logic:switchRoute a value to one of many branches; the first matching case wins
input{{trigger.args}}cases[]Delay
logic:delayPause briefly (1–60 s) with a live typing indicator
seconds3showTypingtrueData
Read and write variables, state, and external services.
Set Variable
data:set-variableStore a value for use in downstream nodes
name""value""HTTP Request
data:http-requestCall an external HTTP API; branch on success or error
methodGETurl""bodyTypenoneSet State
data:set-stateStore a value that persists across updates, per chat and user
name""value""Get State
data:get-stateRead a stored value for this chat and user, with a fallback default
name""default""AI
Generate replies with your own model key.
Generate Text
ai:generate-textAsk an AI model and stream its reply into the chat
provideranthropicmodelclaude-sonnet-5apiKeySecretANTHROPIC_API_KEYinstructionsReply in plain text, without Markdown formatting.prompt{{trigger.text}}replystreamConversation Memory
ai:conversation-memoryRecall recent turns for the AI node, or record the latest exchange
moderecallkeychatwindow10Flow
Coordinate multi-step conversations.
Wait for Input
flow:wait-for-inputPause until the user's next message, then continue with their reply
filteranytimeoutSeconds300