Workflows
Access from: Processes → Workflows
A workflow is an automation that runs a sequence of steps over your Amazon data, either on demand or on a schedule. It lets you audit products, detect issues and create review tasks without having to do it manually.
How are they created?
Today there are two ways to create a workflow in Epinium:
- From a template — by cloning one from the Templates library. This is the recommended and fastest path.
- With VelaxAI — describe in natural language what you want to automate and VelaxAI generates the workflow for you.
There is no option yet to create a workflow from scratch on a blank canvas. Once a workflow exists (cloned from a template or generated by VelaxAI), you can edit it freely: change its trigger, conditions, code, connections, etc.
Workflow, Task or VelaxAI?
Workflow states
A workflow can be in one of three states:
| State | Meaning |
|---|---|
| Paused | Configured but won't run automatically. This is the default state when you clone a template. You can still execute it manually. |
| Active | Will run automatically according to its trigger. |
| With validation errors | The editor detected a problem in the graph (disconnected node, empty condition, broken reference). It cannot be activated until you fix it. |
The visual editor
The editor shows the workflow as a graph: each box is a node (a step) and each line is a connection (what comes next).
- Canvas — you can move nodes to reorganize visually. It doesn't affect the logic.
- Connections — some are simple (a single outgoing path). Others branch: a Condition has
YesandNooutputs; a Loop hasper item(for each element) andon done(when the iteration finishes). - Configure a node — click a node to open a modal where you can edit its parameters: message, URL, condition, variable assignments, etc.
- Edit a node's code — the Run code node opens an editor where you can read and modify the script (generated by VelaxAI or copied from the template).
- Automatic validation — the editor highlights errors in red (orphan nodes, broken connections, conditions without an operator). If there are errors, the workflow cannot be activated.
Node types
These are the available nodes:
| Node | What it does |
|---|---|
| Start | Marks where the flow begins. Every workflow has exactly one start node. |
| End | Marks an end point. A workflow can have several end nodes (one per branch, for example). |
| Action | Performs a concrete task. It has several sub-types (see next table). |
| Condition | Yes / No branch based on a field and an operator (equals, greater than, contains, is empty…). |
| Multi-branch | Like a condition but with multiple outputs depending on the value of a field. Useful when there are more than two cases. |
| Loop (For each) | Iterates over a set of items (products, campaigns, search terms…). See § Loops. |
| Wait | Pauses the flow for a duration (seconds, minutes, hours) before continuing. |
Sub-types of the Action node:
| Sub-type | What it does |
|---|---|
| Log message | Writes a message to the execution log. Useful for debugging or leaving traces. |
| HTTP request | Calls an external URL (a webhook, an integration with another system). Lets you send data to third-party tools. |
| Run code | Runs custom logic in a sandboxed environment. It is the engine behind the audit-template checks: it evaluates complex rules over a product and returns a structured result. You can read and edit the script from the editor. |
| Create task | Generates or updates a task with one or more items for human review. See § Tasks and human oversight. |
| Resolve task | Marks as resolved the items of a task whose problems no longer apply (because they have been fixed). |
Triggers
A workflow can be launched in two ways:
- Manual — Run button on the workflow page. It opens a modal that shows the estimated maximum cost before you confirm.
- Scheduled — the workflow runs on its own following a schedule:
- Cron — standard 5-field cron expression. Examples: every Monday at 9:00, day 1 of each month at 5:00.
- Interval — every N minutes, hours or days.
- One-off date — a single run at a specific date/time.
- Time zone — configurable per workflow (e.g.
Europe/Madrid). The trigger is interpreted in this zone, not in UTC.
Estimated cost
Before running a workflow manually, Epinium calculates and shows the maximum cost in credits. This number reflects the worst case (every audited product, every node executed without skips).
Check the cost before activating
If you're about to activate a scheduled workflow that iterates over the whole catalog, run it manually first to see the actual cost. On large catalogs, an accidental daily run can consume more credits than expected.
Loops (For each)
A For each node repeats the steps inside it once per element of a list.
Data source — two modes:
- Query — pick a collection from your account (products, campaigns, search terms, ad groups, product ads, keywords, clusters) and apply filters to narrow it down. This is the most common mode.
- Reference — iterate over a list produced by a previous node (for example, the result of an HTTP request).
Per-item error handling — if the evaluation of an item fails, the loop can:
- Continue (default) — keep processing the rest of the items.
- Abort — stop the whole loop.
Collect results — optionally, the loop can aggregate what each iteration produces into a final summary. The audit templates use this to count how many products comply vs how many don't, and show the summary in the log.
The loop has two outputs: per item (what runs for each element) and on done (what runs once all are processed).
Variables and context
Workflows use variables to pass data between nodes. The syntax is {{ ... }} and there are three origins:
| Variable | Where it comes from | Example |
|---|---|---|
{{trigger.X}} | Data sent to the workflow when you run it manually. | {{trigger.email}} |
{{nodes.NAME.result.X}} | Output of a previous node. | {{nodes.checkTitle.result.titleTooLong}} |
{{forEach.NAME}} | The current element when you're inside a loop. By default it's called item, but templates typically use more readable names like product. | {{forEach.product}} |
Example use in a Condition: evaluate whether the result of a code node says the title is too short:
- Field:
{{nodes.checkTitle.result.titleTooLong}} - Operator:
is true
Tasks and human oversight
Workflows can generate tasks so a human can review their findings before any change is applied. This is the strong point of the system: automation detects issues, but nothing gets applied until you approve.
Create task node
When a workflow detects a problem, this node creates a task (or adds items to an existing task). Items can include a suggested value (auto-fix) that the user can accept with one click.
- Idempotency — the workflow uses a unique key per problem. Re-running the workflow doesn't duplicate tasks: it adds new items if new problems appear, and leaves alone the ones that were already there.
- HITL (Human-in-the-Loop) — when enabled, items are not applied automatically. A human must review and approve them before they reach the product or campaign.
Resolve task node
Marks as resolved the items of a task whose problems no longer apply. Useful when you re-run a workflow and a product that used to fail now complies — the node automatically closes the associated items.
More about the task system in Tasks.
Execution history
Every time a workflow runs, the run is recorded and viewable from its page. The possible states are:
| State | Meaning |
|---|---|
| Pending | Queued, hasn't started yet. |
| Running | In progress. |
| Completed | Finished without errors. |
| Failed | A node failed and aborted the flow. |
| Cancelled | Manually stopped. |
Execution inspector
Click a node inside a run to open the inspector and see:
- Input — the resolved variables the node received.
- Output — the result it produced.
- Error — if any, with a readable message.
Debug a failed run
Start with the first node in red. Read its output or its error. Check the input variables — most failures come from a broken reference to a previous node or from empty data where a value was expected.
Creating workflows with VelaxAI
VelaxAI includes a dedicated agent that generates workflows from natural language. The user describes what they want to automate and VelaxAI proposes a complete workflow: nodes, connections, conditions, and, when needed, the code of the Run code nodes.
What you can do:
- Describe your need in a conversation.
- Ask for changes to the initial proposal.
- Manually review and edit the code generated in the Run code nodes.
- Adjust the trigger (schedule, interval).
- Activate the workflow once you're happy with it.
Generation in evolution
VelaxAI's generation keeps improving. Very complex workflows may need manual adjustments after the initial generation — VelaxAI will tell you what's missing or what to validate.
More about VelaxAI in VelaxAI.
Best practices and limits
- Enable HITL when the workflow modifies sensitive data (prices, titles, descriptions, campaign budgets). It gives you a checkpoint before the change reaches Amazon.
- Check the estimated cost before activating a scheduled workflow, especially if it iterates over the whole catalog. A prior manual run shows you the actual cost.
- Start paused. Run the workflow manually once to validate the result, and only then enable the cron.
- Failed runs don't retry on their own. If a run fails, open the history, identify the failing node, fix the root cause and re-run manually.
- For mass audits, prefer the templates — they are tuned to process large catalogs with batching and per-item error handling.