flowstore / getting started Open the editor

Getting started with flowstore

flowstore is a browser tool for designing conversational agents. You design the agent on a canvas, and flowstore compiles the design into the system prompt a language model runs. You can talk to the agent, test it, and copy the prompt into any platform that takes one. There is no account, and you use your own API keys.

If you know Voiceflow

Voiceflowflowstore
Workflow, topic, componentFlow
Intent and training utterancesExit path condition, in plain language
Speak or text stepScript (exact wording) or instructions (the model phrases it)
Global intentInterrupt flow, which returns to where it left off
Happy and unhappy pathsFlow types: happy, sad, off, utility, interrupt
Knowledge baseKnowledge: FAQ, glossary, tables
API or function stepCapability, with mock results during testing

Three habits from Voiceflow work differently here.

  1. A flow is a stage of the conversation. It can span many turns. In the example, Coffee order is one flow that collects drink, size, milk and syrup. Drawing one node per turn makes a spec harder to read and gains nothing.
  2. Routing uses plain-language conditions. There are no intents or training phrases. “The customer wants tea” can be the whole condition, and the model decides when it is true. Precision comes from writing the condition well and testing it.
  3. The design compiles to one prompt, and you can read it. A system prompt is the set of instructions a language model reads before every conversation, and almost every platform takes one, so a design that compiles to a prompt can run anywhere. The prompt view shows exactly what the model sees, block by block, with a link from each block back to the part of the design that produced it.

Try it (about 15 minutes)

1Open the coffee example

Go to flowstore.org/create and click load example (coffee agent).

The coffee example on the canvas: Greet & route leads to Coffee order and Tea order, which both lead to Confirm & place, with a purple menu interrupt below.
The coffee example on the canvas.

The example is a barista at Bluebird Coffee. Greet & route sends the customer to Coffee order or Tea order. Both lead to Confirm & place. The INTERRUPT box is a flow for “what’s on the menu?”

2Look inside a flow

Click Greet & route. The inspector on the right shows the flow’s instructions and its exit paths. Exact lines, such as the greeting, are in Open scripts sheet at the bottom of the inspector.

The inspector for Greet & route, showing its instructions and three exit paths.
The inspector for Greet & route.

Click an exit path to see its condition and where it goes.

The exit path from Greet & route to Tea order: a plain-language condition and the destination Tea order.
The tea exit path goes to Tea order when the customer wants tea.

3Look at the agent and its guardrails

Click Agent in the top bar. The agent sheet sets the agent’s identity, purpose and tone for the whole conversation.

The Agent sheet for the coffee example: identity Skye, a barista at Bluebird Coffee, with purpose and tone.
The agent sheet.

Click Guardrails in the top bar. Guardrails are rules that apply across the whole conversation, such as “Bluebird only sells coffee and tea.”

The Guardrails dialog listing six rules, including that Bluebird only sells coffee and tea.
Guardrails.

4Read the compiled prompt

Click Prompt above the canvas. Each block is colored by its source and has an Open link back to it.

The compiled system prompt beside the canvas, with the Coffee order block and its Open link.
The compiled system prompt.

5Add a key

Talking to the agent needs a model, and the simplest setup is one OpenRouter key.

  1. Make an account at openrouter.ai, add a few dollars of credit, and create a key at openrouter.ai/keys. You can set a credit limit on the key.
  2. In flowstore, click the gear icon, paste the key under OpenRouter API key, and click Save at the bottom of the dialog. Closing the dialog without saving discards the key.
The Settings dialog with fields for Google, OpenAI, OpenRouter and xAI keys.
Settings.

One OpenRouter key covers every text model in the model picker, including Gemini and GPT. A conversation like the one below costs about a cent on the default model.

6Talk to the agent

Click Run, then Start session. Type as the customer and click Send. Try this order:

  1. “Hi, a large latte please.”
  2. “What’s on the menu?” The interrupt answers and returns to your order.
  3. “Do you have croissants?” A guardrail keeps the agent to coffee and tea.
A test conversation in the Run panel: the customer orders a large latte, asks for the menu, and asks for croissants, which the agent declines.
A test conversation.

7Change the design with the Assistant

Open the Assistant (the sparkle button next to Run) and ask for “a pastry flow, with croissants and blueberry muffins.” The assistant adds the flow, connects it, and updates the instructions and guardrail that said Bluebird only sells coffee and tea. The parts it changed are outlined on the canvas.

The canvas with a new Pastry order flow connected from Greet & route to Confirm & place, and the Assistant’s summary of its changes.
The Assistant adds a Pastry order flow.

8Save a gold standard conversation

When a conversation goes the way you want, click + capture as gold under it. A gold is a saved conversation you can replay after later edits to make sure it still works as expected.

To replay it after an edit, open Golds, click Open in Sim ▶, click the replay button, then click Evaluate. Your side of the conversation replays, and each reply is checked against the gold, with a note on anything that changed.

9Test, fix, repeat

Designing in flowstore is an iterative testing loop. When a reply is off, ask the Assistant why, such as “Why did the agent skip the milk question?” It sees the design and the conversation, so it can make the fix. Then test again.

Next steps

Build from your own material

Click the sparkle button next to Run to open the Assistant. Attach text or markdown files with Attach source files, such as a script, a design doc exported as text, or a flow diagram written in Mermaid. Then click Build from source. The assistant drafts a spec on the canvas that you can review and edit. You can also ask it for changes in plain language, such as “add a flow for pastries.”

The Assistant panel with a call script attached and the Build from source button.
The Assistant, with a call script attached.

Open a larger example

flowstore-example-fnol is a car insurance claims agent. It has 16 flows, 4 interrupts, 6 capabilities that are mocked during testing, and scripts in English and Spanish.

  1. Click Open a flowstore project from GitHub, the cloud with a down arrow in the top bar.
  2. Paste https://github.com/tap2k/flowstore-example-fnol under Public repo URL and open it.

No key or GitHub account is needed to open it. Talking to it needs an OpenRouter key (step 5 above).

Saving to GitHub

There is no flowstore server. The editor runs in the browser, keys stay in the browser, and model calls go straight from the browser to the provider. Work autosaves in the browser. You can also import and export files, or save to GitHub.

To save, add a GitHub token in Settings. The hint under the field links to the token page and lists the permissions it needs.

The GitHub section of Settings with a masked token and the permissions hint.
The GitHub token in Settings.

Then click Save to GitHub (the cloud with an up arrow) and name a new repo. Later saves go to the same repo. The cloud with a down arrow opens a project from GitHub.

The Save to GitHub dialog with a project name, Private selected, and Create project.
Saving a project to a new repo.

A project is a folder of plain files: agent.md, guardrails.md, one markdown file per flow under flows/, and golds, cases and personas under tests/. Each save is a commit, so the repo history shows every change to the design. A team can share one repo, and the Share button adds collaborators. New repos are private by default, so a student submits work by adding the instructor as a collaborator, or by making the repo public.

Questions

How do I get an API key?

Make an OpenRouter key and put a credit limit on it, or pick your preferred provider. A test conversation on the default model costs about a cent.

A class or team can share one key too, if there is a small budget. Agree on which models to use, since some models in the picker cost far more than the default.

How do I test an agent?

Talk to it in Run, save good conversations as golds, and replay them after each edit. The Run panel also has test cases, which script the user’s side, and personas, which simulate users. For automated testing, the fnol example includes a Python harness you can run through your own coding agent.

To test with real users, deploy the agent on a platform like Retell, or through a planned flowstore share link.

How do I collaborate?

Through GitHub. Save the project to a repo, and the Share button adds collaborators. Each save is a commit, so the history shows who changed what. New repos are private by default, so to share a project more widely, make the repo public and send the link.

Because a project is plain files in a repo, you can also clone it and work on it with your own coding agent, such as Claude Code, Codex or Copilot.