Core Concepts

Flows

A flow is an automation pipeline. It starts with an event and contains a sequence of actions and functions that execute in order.

Events

An event is what triggers a flow. Examples:

  • Telegram Bot Update — someone sends a message to your bot
  • Telegram Update — a message arrives on your personal Telegram account
  • API Trigger — an external service sends an HTTP request to your webhook URL
  • Helper Flow — another flow calls this one via Call Flow or ForEach

Each event produces outputs (message text, user ID, date, etc.) that you can use in subsequent blocks.

Actions

Actions interact with external services:

  • Send a Telegram message
  • Call OpenAI with a prompt
  • Make an HTTP request

Actions have inputs (what to send) and outputs (what came back).

Functions

To add a function, click Add function in the editor. You'll see the function picker:

Functions

Choose a category

Functions transform data without calling external services:

  • Text: concatenate, replace, split, find
  • Number: add, multiply, round, formula
  • Object: get, set, merge, construct
  • List: filter, sort, forEach, map
  • Logic: if/else, continue if, lookup

Connections

A connection links Fainflow to an external service. It stores credentials (bot token, API key, etc.) securely. One connection can be used by multiple flows.

Drag & Drop

Outputs from any block can be dragged into inputs of subsequent blocks. This is how data flows between steps. The colored badges show which block each value comes from.

Helper Flows

A helper flow is a reusable sub-flow triggered by:

  • Call Flow — run once and get the result
  • ForEach — run once per item in a list
  • Repeat — run N times

Helper flows have a special event type "Helper Flow" with custom outputs that you define.

Branching

Use Continue If to filter messages, or If/Else for conditional logic:

Conditional Logic

Check if message is a command, then respond differently

Telegram Bot

Bot Update

message
userID

Branching

Continue If

value a
message
comparison
starts with
value b
/start

Telegram Bot

Send Message

chatId
userID
text
Welcome! How can I help?

Vault

The vault stores sensitive values (API keys, tokens, passwords) encrypted with AES-256. Reference them in any field with {{vault.KEY_NAME}}. Values are masked in execution history.