Reference
All 48 workflow nodes.
Aifluence builds videos out of 48 node types on a canvas. A node is one step: fetch something, ask the AI, generate an image, speak a line, render, check, publish. Every node states what it takes and what it hands to the next step, so a workflow can be read top to bottom instead of guessed at.
This page lists all of them, grouped the way they appear in the app. The third column is the part people usually have to find out by trial and error: the fields a node adds to the record it passes on, which is what the next step can reference.
Triggers · 4
What starts a workflow — by hand, on a schedule, from a feed, or from another program.
| Node | What it does | Hands on |
|---|---|---|
Starttrigger.manual |
Also passes on runFolder — one folder for everything this run makes — and recentTitles, what this workflow made before. | startedAt, recentTitles, runFolder |
Scheduletrigger.interval |
Runs only while “Automatic” is on for the workflow — but then regardless of whether this panel is open. Settings: mode, seconds, time, days |
firedAt, recentTitles, runFolder |
Started from outsidetrigger.webhook |
Lets another program start this workflow: a Stream Deck button, a script that runs after your edit, a service like Zapier. Settings: path, method, secret |
body, query, method, path, receivedAt, recentTitles, runFolder |
New in a feedfeed.rss |
Any blog, news site or podcast that publishes a feed — the address usually ends in /rss, /feed or . Settings: url, onlyNew, limit |
title, url, published, summary, id |
Flow · 3
Branching, waiting and looping.
| Node | What it does | Hands on |
|---|---|---|
Conditionflow.if |
Settings: expression |
der Datensatz geht unveraendert weiter |
Waitflow.wait |
Settings: seconds |
der Datensatz geht unveraendert weiter |
Splitflow.loop |
Settings: path |
der Datensatz geht unveraendert weiter |
Data · 11
Fetching, reshaping, filtering and remembering records as they travel between steps.
| Node | What it does | Hands on |
|---|---|---|
HTTP requestdata.http |
Settings: method, url, headers, body |
status, body, json |
Connected APIdata.api |
The access token stays in the main process and is only attached after leaving the panel — no secret is ever written into the workflow. Settings: service, method, path, body |
status, body, json |
Run a scriptscript.run |
The assistant writes the script into the workflow’s project folder. Settings: interpreter, file, args, secrets |
whatever the script prints as a JSON line |
Codedata.code |
Available: items, $json, $item, $index, $now, $seed. Settings: code |
was der Code zurueckgibt |
Set fieldsdata.set |
Settings: fields, keepOld |
the fields from the configured JSON |
Split a listdata.split |
One record holding a list becomes many. Settings: field, keepOld |
index, total, the fields of the list entry |
Collect into onedata.collect |
The counterpart to "Split a list": many records become ONE, holding them all as a list. Settings: field, keep, carry |
total, the field named by "field" (default: scenes), holding every incoming record |
Merge branchesdata.merge |
Use this where parallel paths meet — for example, one branch generates images while another creates audio. Settings: mode, key, includeUnmatched, conflicts |
die zusammengeführten Felder aller parallelen Zweige |
Keep only somedata.filter |
Like the condition, but without a second branch: what does not match is dropped here. Settings: expression |
the record passes through unchanged, just fewer of them |
Sort and keep the firstdata.pick |
For "take the three best clips": sort by a value the step before produced, then keep the front of the list. Settings: value, order, count |
the record passes through unchanged, sorted and trimmed |
Skip what was already handleddata.dedupe |
Lets an entry through the first time and never again. Settings: identity, scope, limit |
the record passes through unchanged, minus anything seen before |
Media · 22
The production itself: analysis, script, images, voice, rendering, checking and publishing.
| Node | What it does | Hands on |
|---|---|---|
Fileinput.file |
Settings: path, field, askEveryRun |
file (bzw. der eingestellte Feldname) |
Several filesinput.files |
Produces one record per file, sorted alphabetically — plus index and total. Settings: source, folder, only, field, askEveryRun |
file, index, total — ein Datensatz je Datei |
Cut videomedia.ffmpeg |
Settings: preset, input, output, start, duration, args |
output, file |
Transcribeai.transcribe |
Local needs Python and faster-whisper — the assistant can set both up. Settings: mode, file, language, device |
transcript, segments |
Analyse a video visuallyai.video |
Checks fresh video frames with timestamps on every run. Settings: file, prompt, maxFrames, outputKey, json |
the field named by outputKey (default: videoAnalysis), videoMetadata |
AI analysisai.claude |
Uses your Aifluence account automatically. Settings: system, prompt, outputKey, json, schema |
the field named by outputKey (default: analyse) |
Generate imageai.image |
Generated securely through your Aifluence account. Settings: prompt, initImage, width, height, steps, outPath |
image |
Speechaudio.speak |
Natural speech through your Aifluence account. Settings: text, voice, rate, wordsPerCaption, outPath |
audio, seconds, segments |
Sound effect at momentsvideo.sfx |
Mixes one file in at every second listed, leaving the existing sound alone. Settings: video, effect, times, volume, outPath |
video, file |
Add musicvideo.music |
Loops the song under existing audio, or adds it to a silent video. Settings: video, music, volume, outPath |
video |
Story over background videovideo.background |
Loops and crops one reusable video locally, then replaces its sound with the narration. Settings: background, audio, seconds, start, size, focus, outPath |
video, file, backgroundVideo, seconds |
Burn in captionsvideo.captions |
Settings: video, segments, clipStart, clipDuration, maxWords, position, font, fontSize, bold, outline, shadow, marginV, outPath |
video, file, captionCount |
Check the videovideo.validate |
Stops the workflow with a clear message if file, length, aspect ratio or audio are wrong. Settings: file, aspect, minSeconds, maxSeconds, requireAudio |
a check result; the record is otherwise unchanged |
Video from scenesvideo.timeline |
Gathers every incoming record into ONE video — or reads a ready-made list if a single record carries scenes: [{image, audio, caption, seconds, camera}]. Settings: image, audio, caption, seconds, camera, fade, size, fps, captionPosition, captionSize, captionOutline, captionLines, captionWidth, outPath |
video, scenes, seconds, sceneStarts |
Still from a videovideo.frame |
Without a time it grabs at about 35% of the runtime — the opening is usually a logo or a black frame. Settings: video, at, outPath |
image, frame, frameAt |
Either-or cardimage.quiz |
One card per incoming record. Settings: topImage, bottomImage, topText, bottomText, topPercent, bottomPercent, badge, topColor, bottomColor, size, outPath |
image, card |
Build a thumbnailimage.thumbnail |
The background can be a still from the video or a generated image. Settings: image, text, subtext, position, accent, size, outPath |
thumbnail |
Build a videovideo.build |
Image duration follows the length of the audio track, so the two match. Settings: images, audio, size, fps, outPath |
video |
Prepare for platformspublish.variants |
One record per platform, with the right crop and platform-appropriate text. Settings: file, networks, title, caption, hashtags, convert |
network, video, file, title, caption, hashtags, format |
New YouTube videosyoutube.feed |
Uses the public RSS feed — no API key needed. Settings: channelId, onlyNew |
videoId, title, url, published |
Publish on YouTubeyoutube.upload |
Uploads the video directly through the connected YouTube account. Settings: file, idempotencyKey, allowDuplicates, title, description, tags, thumbnail, privacyStatus, publishAt, categoryId, madeForKids, containsSyntheticMedia, notifySubscribers, language |
uploaded, alreadyPublished, idempotencyProtected, network, videoId, url, studioUrl, title, privacyStatus, publishAt, thumbnailUploaded |
Prepare an uploadupload.prepare |
Opens the upload page in a panel, copies the file path to the clipboard and puts the text ready. Settings: network, file, caption |
uploadReady, network, file, caption |
Workspace · 4
Driving the browser panels on the canvas.
| Node | What it does | Hands on |
|---|---|---|
Open a panelpanel.open |
Settings: network, url |
der Datensatz geht unveraendert weiter |
Panel opens URLpanel.navigate |
Settings: panelId, url, wait |
der Datensatz geht unveraendert weiter |
Read the pagepanel.extract |
Settings: panelId, code |
whatever the code on the page returns |
Tidy uppanel.tidy |
der Datensatz geht unveraendert weiter |
System · 4
The computer around the workflow — programs, OBS, files and notifications.
| Node | What it does | Hands on |
|---|---|---|
Start a programsystem.app |
Settings: exe, args |
der Datensatz geht unveraendert weiter |
OBS actionsystem.obs |
Settings: action, scene, url, password |
obs |
Notificationsystem.notify |
Settings: title, body |
der Datensatz geht unveraendert weiter |
Write a filesystem.file |
Settings: path, content, append |
path |
See them working
Aifluence is a Windows 10/11 desktop app. The assistant wires these nodes for you from a prompt or a reference video — you keep every one of them editable.
Download for Windows