Zitadel Preview Docs
Concepts

Flows and schemas

The relationship between login flows, user schemas, and generated UI.

The flow engine drives login, registration, passkey, and related auth journeys.

A user schema defines what the platform stores about a user and how that user type can authenticate. A flow definition defines when and where users are asked to provide that data — which step renders when, and which fields each step collects. A flow's steps[].fields must name properties of the schema it pins via user_schema.

zitadel setup scaffolds editable copies of the default user schema and login flow into .zitadel/schemas/ and .zitadel/flows/, uploads them, and seeds .zitadel/state.json so the local files and the platform start in sync. Each folder contains a README explaining what you can change.

The local files are the source of truth: edit them, then sync with plan and apply. Schema edits publish a new immutable revision (existing users keep validating against the previous one); flow edits update the flow in place.