English
Nodes
Every node available in the workflow editor, generated from the catalogue itself. Each page lists the parameters, outputs and data of the node exactly as the product defines them.
Triggers
- Email received —
trigger.email. Starts the workflow when an incoming email matches the conditions. - Webhook received —
trigger.webhook. Starts the workflow on a POST to the workflow URL. The JSON body lands indata.webhook. - Called by a workflow —
trigger.called. This workflow subscribes to no email: it runs when another one calls it. The input lands indata.input. - Schedule —
trigger.schedule. Starts the workflow on a schedule, with no triggering email. The planned time, the actual time and the time zone land indata.schedule. - Manual trigger —
trigger.manual. Starts only on an explicit request, from the webmail or the editor. - Workflow failure —
trigger.error. Starts when an execution of a workflow that names this one as its error workflow fails. The report lands indata.failure. - Airtable row changed —
trigger.airtable. Starts the workflow when a row in an Airtable table is created or changed. What changed lands indata.airtable, with no triggering email. - MyNotary — event —
trigger.mynotary. Starts the workflow when MyNotary reports an event: a completed signature, a new case, a registered notification. The body lands indata.mynotary. - Yousign — event —
trigger.yousign. Starts the workflow when Yousign reports an event: a signed request, a decline, an expiry. The signed body lands indata.yousign. Deliveries Yousign sends again are deduplicated onevent_id. - Notion — event —
trigger.notion. Starts the workflow when Notion reports an event: an entry created, a status changed, a comment. The body lands indata.notion. The subscription is created by hand in Notion — otherwise prefer “Schedule” + “Entries changed since…”. - Notion entry changed —
trigger.notion_changes. Starts the workflow when an entry of a Notion database is created or changed, checking at a regular interval. The entry lands indata.notion, with no triggering email. Nothing to set up in Notion.
AI
- Categorize —
ai.categorize. Classifies the email into the categories you define and routes it down the matching branch. Each category is one output of the node. - Compose (AI) —
ai.compose. Has the model write a message from your instructions and the recipient profile (formality, tone, language, signature). Does not send it: add “Send” after it to save a draft or send it. - Extract —
ai.extract. Extracts the fields you declare from the email (number, date, amount…) into the working data. A missing field is null. - Summarize —
ai.summarize. Summarizes the email in a few lines, in the style and length you choose. The summary lands in the working data. - Free instruction (AI) —
ai.prompt. Gives the model a free-form instruction about the email and the working data. The node produces text or JSON: it sends nothing and changes nothing — add an action node downstream to act. - Anthropic (Claude) —
llm.anthropic. Link this node to the “Model” port of an AI node so it works with Claude. The API key comes from the chosen connection (Connections › AI). - OpenAI (GPT) —
llm.openai. Link this node to the “Model” port of an AI node so it works with GPT. The API key comes from the chosen connection (Connections › AI). - Mistral AI —
llm.mistral. Link this node to the “Model” port of an AI node so it works with a Mistral model, hosted in Europe. The API key comes from the chosen connection (Connections › AI). - OpenRouter —
llm.openrouter. Link this node to the “Model” port of an AI node to call any model in the OpenRouter catalogue with a single key. The model is written “vendor/model”. - Ollama (local) —
llm.ollama. Link this node to the “Model” port of an AI node so it works with a model running on your server: nothing leaves your machines, and there is no key to provide. - OpenAI-compatible API —
llm.openai_compatible. Link this node to the “Model” port of an AI node to call a server speaking the OpenAI protocol without being one of the named providers: vLLM, LM Studio, an internal proxy. The server address is set in the connections.
Logic
- Condition (If) —
flow.if. Routes the email to the "true" or "false" output based on conditions over the email and the working data. - Switch —
flow.switch. Sends the email down the first branch whose conditions match, otherwise down the "otherwise" branch. - Stop —
flow.stop. Ends this execution branch with a readable status and reason. - Approval —
flow.approval. Suspends the execution until a human approves or rejects. Request sent by email, with a timeout. - Wait —
flow.wait. Suspends the execution — from a minute to several years. Nothing is kept in memory: the wait survives restarts. - Emit a signal —
flow.signal. Ends, elsewhere, the waits watching this key — so a client who already answered is never chased. - Loop —
flow.loop. Repeats a set of nodes for each element of a list: each attachment, each row, each recipient. - Call a workflow —
workflow.call. Runs another published workflow with this execution’s data. In "wait" mode, its output becomes this node’s output.
Data
- Read attachments —
attachment.extract_text. Extracts the text of the email attachments (PDF, text, HTML…) into the working data:{{ data.extract_text_1.attachments.0.text }}. Place it before an AI node to hand it a document’s content. - HTTP request —
http.request. Calls an external API and puts the response into the working data. A write may be retried after an outage: prefer idempotent endpoints. - Drive — search files —
google_drive.search. Searches files in Google Drive and puts the list into the working data. It is a read: it runs for real, even during a test run. - Calendar — find free slots —
google_calendar.find_free. Reads the calendar availability over a window and returns free slots, ready to be offered by an AI node. - Airtable —
airtable.api. Finds, creates, completes and comments rows in an Airtable base, and drops the attachments (from the email or added by a step) into it. - Calendly —
calendly.api. Reads your event types and scheduled events, and can cancel one. - MyNotary —
mynotary.api. Reads and feeds MyNotary cases, records, contracts and documents. No signature can be started through the API: it stays a human action. - Notion —
notion.api. Reads and feeds your Notion pages and databases: entries, properties, Markdown content, comments and attachments. - Table — find a row —
table.find. Finds a row by its key. Two outputs: found, and not found. - Table — list rows —
table.list. Returns an array of filtered, sorted rows — ready to feed a loop. - Transform —
data.transform. Defines fields in the working data from text that accepts{{ }}expressions, with a few formatting options. - Compute a date —
date.compute. Adds a delay — calendar or business — to a date, to write it elsewhere: a table, a draft, a CRM.
Actions
- Move —
mail.move. Adds or removes folders/labels on the triggering email, through the mirror (immediately visible in the mailbox). - Flag —
mail.flag. Changes the state of the triggering email: read/unread, flagged/unflagged. Only the states you set are changed. - Compose —
mail.compose. Prepares a message — recipients, subject, body, attachments — without sending anything. Add “Send” after it to save a draft or send it; in between you can add an approval, a condition or a table write. - Send —
mail.send. Saves a message as a draft or sends it, from the mailbox of your choice and with the signature of your choice. Goes after “Compose” — or is filled in by hand. - Notify —
notify.send. Sends a message to a Slack, Teams or generic webhook. The shortcut for "tell the team". - Drive — upload a file —
google_drive.upload. Uploads the attachments (from the email or added by a step), or a text file you write, into a Google Drive folder. - Drive — create a folder —
google_drive.create_folder. Creates a Google Drive folder unless one with the same name already exists under the same parent, and returns its id for the rest of the workflow. - Sheets — append a row —
google_sheets.append. Appends a row to a Google Sheets spreadsheet. A deduplication column avoids a duplicate row on a retry. - Calendar — create an event —
google_calendar.create_event. Creates an event in Google Calendar. A retry of the step creates no duplicate: the id derives from the step. - Upload to OneDrive —
onedrive.upload. Uploads the attachments (from the email or added by a step) — or some text — into a folder of your OneDrive. - Search OneDrive —
onedrive.search. Searches files in your OneDrive and puts the list into the working data. - Create a OneDrive folder —
onedrive.create_folder. Creates a folder unless it already exists — a retry creates no duplicate. - Create an Outlook event —
outlook_calendar.create_event. Puts an appointment into your Outlook calendar. Invitations are sent only if you ask. - Find an Outlook slot —
outlook_calendar.find_free. Reads your calendar availability and lists the free slots within your working hours. - SharePoint —
sharepoint.api. Files, tags and shares documents in a SharePoint site, and keeps its lists up to date. - Excel —
excel.api. Reads and fills in an Excel workbook stored on SharePoint or on your OneDrive. - Yousign —
yousign.api. Gets an emailed attachment electronically signed: request, document, signers, activation, then collection of the signed document and its audit trail. ⚠ Activation is billed by Yousign. - Table — insert a row —
table.insert. Inserts a row. If the table has a unique key that is already taken, the step fails — use “insert or update” instead. - Table — update a row —
table.update. Changes the row carrying this key. The step fails if no row matches. - Table — insert or update —
table.upsert. Writes the row: created when its key is free, updated otherwise. This is the node for memory between runs. - Table — delete a row —
table.delete. Removes the row carrying this key. Nothing to remove is a success, not an error. - Table — append a comment —
table.append_text. Appends timestamped text at the bottom of a cell, never overwriting what it holds. One action = one comment.