Workflow step
A workflow step is a single operation any workflow can drop in. Inputs and outputs are typed; Vincia handles retries and idempotency around your execute function. No UI of its own — pure transform plus optional outbound call.
The CLI command is vincia create workflow-node <name> (the manifest type is workflow-node); on the marketplace and in user-facing copy, these are called workflow steps.
A minimal node
import { defineWorkflowNode } from '@vincia/sdk/workflow';
export default defineWorkflowNode({
id: 'translate-text',
version: '0.1.0',
inputs: {
text: { type: 'string', required: true },
target_lang: { type: 'string', required: true },
},
outputs: {
translated: { type: 'string' },
},
async execute(ctx, inputs) {
const res = await ctx.outbound.fetch('https://api.translate.example.com', {
method: 'POST',
body: JSON.stringify(inputs),
});
const json = await res.json();
return { translated: json.text };
},
});
What gets reviewed
- Inputs/outputs match the declared schema
- Execute returns deterministically (no hidden side-effects beyond declared outbound)
- Idempotency-safe: re-executing with the same inputs should be safe
- Outbound caps honored