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