Skip to main content

Your first workflow

What you'll build

A tiny workflow:

  • a manual trigger that asks for a name, and
  • a code step that returns a greeting for that name.

No infrastructure, no cloud credentials, nothing to connect. What matters is the loop around it: describe it, see it in the editor, run it, activate it. Every real workflow follows this same loop with more steps.

Before you start

The only prerequisite is the np-workflow skill, part of the nullplatform AI plugins for your coding assistant (Claude Code, Kiro, Cursor, and others). Follow Set up the AI plugins to install them and configure your API key.

1. Describe it

In a session of your coding assistant with the plugin installed, ask for the workflow:

/np-workflow create a workflow named hello-world with a manual trigger that
takes a name input, and a code step that returns a greeting for that name

The skill builds the definition, validates it, and publishes it to your organization, activated and ready to run. You describe the outcome; it picks the trigger and wires the step for you.

💡 Tip: Prefer to review before it goes live? Ask the skill to skip activation, and the workflow stays saved as a draft you can open in the editor.

2. See it in the editor

In the nullplatform UI, open Platform Settings → Workflow Editor and pick the hello world. The canvas draws two connected nodes: the manual trigger and the code step. Explore the same result below, click a node to see the step it runs:

Manual trigger
Build greeting

Small as it is, this workflow shows the whole model:

The trigger starts the run and feeds it inputs. The name input it declares is what the RUN dialog renders as a form, and steps receive whatever the person types as ${{ workflow.inputs.name }}.

The step reads data through expressions. The code step declares what it needs in its inputs block, wired with an expression:

inputs:
name: "${{ workflow.inputs.name }}"

Whatever a step returns becomes its outputs, ready for the next step to read the same way. That's the entire data flow: outputs, expressions, inputs, repeated.

3. Run it

Hit RUN. A dialog opens with a form built from the trigger's inputs: type a name and submit. A run this small finishes in under a second, and the run view highlights each node as it executes.

Click a step to see what happened inside it: the inputs it received, the outputs it returned, and its logs, all scoped to that run. Your greeting shows up in the code step's outputs. A failed step turns red and shows its error, so the failing step and its reason are one click away.

💡 Tip: You can inspect the same run without leaving the terminal: ask your coding assistant to "show me the last run of hello-world and its logs".

4. Activate it

Activation is the moment a workflow goes live: schedules get registered, entity triggers start listening. For this hello world, whose only trigger is manual, it simply makes it runnable outside the editor. And activation never starts a run: the execution count stays at zero until someone hits RUN.

The skill already activated the workflow when it published it, so there's nothing left to do here, unless you edited a step in the editor: saving creates a new version, and a saved version isn't active on its own. Click ACTIVATE in the toolbar, right next to RUN, to make it the one that runs.

All done! 🎉 Feel free to deactivate or delete the hello world once you're done playing with it.

Where to next

You now know the whole loop: describe, inspect, run, activate. Every workflow you'll ever build is this same loop with more steps, so point it at a real problem: 🚀