Node reference

All 128 palette nodes, grouped exactly as the editor groups them: domain → group → node. How to read a node page.

Input / Output

AI

LLM

Json ParserAn extension tool for the agent: forces the LLM to respond in JSON format per a schema. Injects the schema into the system prompt and parses the response. Connects to the agent's 'Agent extensions' input.json_parserLLMLanguage model configuration (provider + model + temperature). Does not run on its own — connects to an AI Agent, LLM Response or Structured Output LLM through their Model port. It is not a step of its own: it has no run input or output.llmLLM ResponseSends a message to the LLM and streams the response. A simpler option than AI Agent — no tools, a single call. Takes its model from the Model port. Conversation history is a Messages array on the Message port: wire the Chat History node's output there and the model receives every message, the last one being the current turn.llm_responseMessageBuilds a canonical message (role + text + attachments) from the text and files inputs. Use it when you need to pass a message with files to an LLM node, sub-workflow, or memory.messageMessagesAssembles an array of messages (Messages) from several inputs. Only the number of Message input ports is set in the config. Any input value becomes a role=user message; if an incoming input is a Messages array, it is unpacked and inserted in place. The node waits for the inputs that start it; a value on an input that only carries data is taken only if its source has already run — set the order with a connection from the source's Success output. The history from Chat History already contains the current message: there is no need to add the Entry message to it.messagesStructured Output LLMCalls an LLM and returns the response strictly in JSON format according to a given schema (structured output). Used when you need typed output rather than free text. Takes its model from the Model port. A Messages array on the Message port (e.g. from Chat History) reaches the model whole.structured_output_llm

Agents

Agent State

Conversation Memory

Buffer MemoryAccumulates conversation history from this scenario's OWN past runs: empty on the first turn, filled as the conversation goes on. To read messages written in the chat before this scenario existed, use the Chat History node. Connects to the AI Agent's Memory input. LLM Response has no memory input — its conversation history comes from a Chat History node wired into its Message port. Storage scope: thread (between messages), session (within an execution) or call (one-off).buffer_memoryChat HistoryReads THIS chat's conversation as a Messages array — including messages written before the scenario was built: the source is the saved chat messages keyed by (workflow_id, session), written by the platform itself. This is the primary way to give a bot memory of past turns; the memory nodes (Buffer/Window/Summary Memory), by contrast, only accumulate their own runs and are empty on the first turn. The last message of the array is the current one: the platform records it before the scenario starts. Wire the output into LLM Response's Message port (the model gets the whole conversation) or read it in a template. A node that takes this output must run after Chat History: either this output is the only thing connected to it, or draw a connection to it from the Success output. Bounded by limit. Works for both web chat and Telegram (bot turns are mirrored into the same table). By default it reads the current thread; you can override session_id.chat_historyChat History ToolA tool for the AI Agent: on call it returns the recent conversation history (a role: text transcript), bounded by a message limit. The source is the same as the Chat History node — the saved chat messages (web chat and Telegram). Connect it to the agent's 'Agent extensions' input.chat_history_toolSummary MemoryStores the history of this workflow's OWN past runs, compressing older messages via LLM; empty on the first turn — to read a conversation written before the workflow was built, use the Chat History node. The LLM can be taken from the connected agent or wired separately into the Model port.summary_memoryWindow MemoryStores the last N messages from this workflow's OWN past runs (sliding window); empty on the first turn — to read a conversation written before the workflow was built, use the Chat History node. Configured via window_size.window_memory

RAG

Embed TextComputes a vector embedding for the input text. The model comes from a connected Embedding node or from the inline setting. The vector can be fed into RAG Query (search by a ready vector) or used in any pipeline.embed_textEmbedding ModelEmbedding model configuration (analogous to the LLM node). Links to Embed Text. Does not perform computations itself.embeddingKB WriteAdds text to the knowledge base: chunking → embedding → vector store. By default creates a document (visible in the KB UI); optionally a raw mode without writing a document record.kb_writeKnowledge BaseKnowledge base configuration for search: selects an existing knowledge base. Connects to the 'Knowledge base' port of RAG Query and KB Write and supplies kb_id, top_k, the score threshold and the context window (metadata filters are combined with the node's own). Does not perform the search itself.rag_kbRAG QueryPerforms a semantic search over the knowledge base and returns relevant context. Takes the query via the 'query' port and the KB via the 'kb' port. The result is passed to the LLM to generate an answer.rag_queryRAG ToolExposes the knowledge base as a tool for the AI Agent. The agent itself decides when to run the search. Connects to the agent's 'Agent extensions' input. Unlike RAG Query, it is invoked by the agent rather than deterministically.rag_toolRerankRe-ranks a list of chunks by relevance to the query via a cross-encoder reranker. Universal: composes with RAG Query, RRF Fusion, or any chunk source.rerankRerankerReranker configuration: the model and how many fragments to keep. Connects by link to the Rerank node. Performs no computation itself.rerank_configRRF FusionMerges several ranked lists of chunks using Reciprocal Rank Fusion (rank-only, independent of score scales). Waits for all incoming branches, then fuses. The basis of hybrid search.rrf_fusion

Media (Speech / Image / Video)

Stream Observers

Logic & Flow

Branching

Iteration

Synchronization

Data

Values & State

Operators

JSON

Code

DataFrame I/O

DataFrame Ops

Database

Diagnostics

Integrations

HTTP & Web

Email

Calendar

Files

Telegram

Send Telegram MessageSends a message to a Telegram chat. Uses the bot this workflow is deployed to; set 'Connection source' to 'External connection' to pick a different bot through the 'Telegram connection' port. Chat ID and text come from the config (templates are supported); a blank Chat ID means the chat of the running Telegram turn. Files wired into the 'files' port are delivered after the text, one message each (document/photo/audio). Sending neither text nor files is an error, not a silent no-op.send_telegram_messageTelegram ReactionPuts (action=set) or removes (action=clear) the bot's emoji reaction on a Telegram message. A blank Chat ID means the chat of the running turn; templates are supported. Uses the bot this workflow is deployed to; set 'Connection source' to 'External connection' to pick a different bot through the 'Telegram connection' port.set_telegram_reactionTelegram Chat InfoInformation about a chat and its members. Actions: chat (metadata), member_count (the exact number of members), administrators (the exact list of admins), member (one user's status), known_members (an APPROXIMATE roster assembled from recorded observations — the Bot API cannot enumerate members, so lurkers are missing), bot_rights (what the bot itself may do: delete messages, ban). Requires a Telegram Config, except for known_members, which is answered from our own tables.telegram_chat_infoTelegram Manage ChatChat administration: title, description, read-only mode for everyone (mute_everyone/unmute_everyone via setChatPermissions), creating and revoking invite links, approving or declining join requests, and the 'typing…' status. The bot must be an administrator. Supports dry_run. Uses the bot this workflow is deployed to; set 'Connection source' to 'External connection' to pick a different bot through the 'Telegram connection' port.telegram_chat_manageTelegram ConfigPicks a saved Telegram bot from the workspace. The credentials live in the workspace settings, never in the graph — this node hands the resolved token to the action nodes through their 'Telegram connection' port.telegram_configTelegram Forward MessageRelays a message to another chat: forward keeps the 'Forwarded from' header, copy re-sends the content without naming the source and can replace the caption. The classic moderation shape is 'archive before you delete' — copy the offending message into a log chat BEFORE removing it. Both chats accept a numeric id or @channelusername; a blank From chat means the chat of the running turn. Uses the bot this workflow is deployed to; set 'Connection source' to 'External connection' to pick a different bot through the 'Telegram connection' port.telegram_forwardTelegram Get FileDownloads a Telegram attachment by file_id and stores it as a file reference that can be fed to an LLM/vision node or back into Send Telegram Message. The file_id comes from the recorded history ({{ nodes.telegram_history_1.rows[0].media_file_id }}). Not for the current message: the attachment of the message that started this run already arrives on the Entry node's Message output — wire that straight into Speech → Text or the model. The Bot API serves files up to 20 MB only. Uses the bot this workflow is deployed to; set 'Connection source' to 'External connection' to pick a different bot through the 'Telegram connection' port.telegram_get_fileTelegram Group HistoryReads the recorded history of a Telegram chat: the messages the bot observed in a group or channel, including those that never triggered a workflow. Needs both the 'record group history' switch in the deployment AND privacy mode disabled on the bot (or admin rights) — otherwise the bot simply never sees the messages. A blank Chat ID means the chat of the running turn. Outputs: Messages (for LLMs), Records (raw rows carrying message_id/file_id) and Transcript (plain text). This is the group's history, not the current message: the message that started this run — with its voice note, photo or document — arrives on the Entry node's Message output; wire that straight into Speech → Text or the model.telegram_historyTelegram Inline KeyboardSends a message carrying inline buttons, or attaches buttons to an existing message. Buttons carry command/args — tapping one re-runs the workflow with data.telegram.command / args / message_id. Uses the bot this workflow is deployed to; set 'Connection source' to 'External connection' to pick a different bot through the 'Telegram connection' port. Target 'reply_message' attaches the buttons to the bot's reply for this turn, which is delivered at the end of the turn.telegram_inline_keyboardTelegram ModerateChat moderation: delete messages, ban/unban, mute/unmute, grant or revoke admin rights, pin/unpin. The bot must be an administrator holding the matching right (can_delete_messages / can_restrict_members / can_pin_messages). Own messages can only be deleted under 48 hours old; delete_messages is sent in batches of 100. Supports dry_run. Uses the bot this workflow is deployed to; set 'Connection source' to 'External connection' to pick a different bot through the 'Telegram connection' port.telegram_moderateTelegram Search MessagesSearches the recorded Telegram messages by whole words, without word forms. It searches ONLY what the bot observed — the Bot API offers no history search at all. Scope 'This chat' uses the Chat ID, or the chat of the running turn when it is blank; scope 'Every observed chat' searches the whole workspace and must be chosen deliberately. Returns matches with message_id, author and date, newest first.telegram_searchTelegram ToolsTool for an AI Agent: one bounded entry point to a Telegram chat — reading (history/search/info), moderation (delete/ban/mute/pin) and administration (title/invites/join requests). Each action is enabled separately in enabled_actions, and the tool list the model sees is filtered further by the type of the current chat. The chat comes from the config or the running turn — the model does NOT choose it. Supports dry_run and a ceiling on ban/mute duration. promote/demote are never offered. Uses the bot this workflow is deployed to; set 'Connection source' to 'External connection' to pick a different bot through the 'Telegram connection' port. Moderation and administration also need admin rights on the bot. Connects to the agent's 'Agent extensions' input.telegram_tools

Widget

Bitrix24

amoCRM

VK

VK Chat InfoInformation about a conversation and its members. Actions: conversation (metadata), members (the exact list — requires the community to hold the 'administrator' access level inside that conversation), known_members (an APPROXIMATE roster from our own observations: people who never posted are missing, because VK does not report them to a community). known_members answers from our tables and needs no connection.vk_chat_infoVK ConfigSelects a saved VK connection (community/user access_token) from the workspace. Credentials are configured in workspace settings, not in the graph.vk_configVK Forward MessageRelays messages to another VK chat. forward — with the source named (VK does not allow suppressing it). copy — rebuilds the message: text and attachments arrive without naming where they came from. The classic moderation shape is 'archive first, delete second': copy the offending message into a log conversation BEFORE removing it. A blank From means the chat of the running turn.vk_forwardVK Get FileDownloads a VK message attachment and stores it as a file reference usable by an LLM/vision node or for sending back. Takes a conversation_message_id from the recorded history ({{ nodes.vk_history_1.rows[0].platform_message_ref }}): VK's links expire, so the history keeps an attachment reference rather than a URL and the message is re-read for a fresh link.vk_get_fileVK Conversation HistoryReads the recorded history of a VK chat: the messages the bot observed in a conversation or a direct chat, including those that never triggered a scenario. Needs both the 'record history' switch in the deployment AND the 'access to all correspondence' level for the community inside that conversation — otherwise the bot simply never sees the messages. A blank Peer ID means the chat of the running turn. Outputs: Messages (for LLMs), Records (raw rows: platform_message_ref — the message number within the conversation, attachments) and Transcript (plain text).vk_historyVK KeyboardSends a message carrying buttons, or attaches buttons to the bot's reply for this turn. A button carries command/args — tapping one re-runs the workflow with trigger.vk.payload.command / args. The VK client reports every turn whether it can draw buttons: when it cannot, the text is still delivered and the output says keyboard_sent=false.vk_keyboardVK ModerateModeration actions inside a VK conversation: delete messages, remove a member, pin or unpin. There is no ban and no mute here — VK has no such methods for a conversation. Requires the community to be an administrator of the conversation. A blank Peer ID means the chat of the running turn.vk_moderateVK Search HistorySearches the recorded VK history. Scope: this chat only, or every chat the workspace has observed. Searches strictly what the bot managed to record — VK is not queried. Outputs: Matches (rows) and Transcript.vk_searchSend VK MessageSends a message via the VK API (messages.send). Connection: a VK connection node on the 'VK connection' port, or a saved connection picked in the node itself (the port wins). peer_id and text are set in the config (templates supported). A VK error fails the node — wire the Error output to handle it in the scenario.vk_send_messageVK ToolsTool for an AI Agent: one bounded entry point to a VK chat — reading (history, search, conversation, members) and moderation (delete, remove, pin, unpin). Each action is enabled separately, and the tool list the model sees is narrowed further by the type of the current chat. The chat comes from the config or the running turn — the model does NOT choose it. Supports dry_run. There is no ban, mute or admin promotion: VK has no such methods for a conversation. Moderation requires the community to be an administrator of the conversation. Connects to the agent's 'Agent extensions' input.vk_tools