Flow.Documentation

The security model: classification, visibility and requirements

8 steps± 6 minVideoVerified 22 Oct 2026
  1. Step 1 · Open your development environment
  2. Step 2 · Create a table for salaries
  3. Step 3 · Classify the data
  4. Step 4 · Create a workflow and say what a caller must bring
  5. Step 5 · Let the workflow read the table
  6. Step 6 · Create an API for HR
  7. Step 7 · Put the workflow behind an endpoint — without the permission
  8. Step 8 · Demand the permission on the endpoint

Flow does not secure per screen but per item: a table knows how sensitive its data is, a workflow says what a caller must bring, and an endpoint may only make security stricter. In this guide you create a table with personal data, a workflow that reads it, and you see an endpoint with too few rights being refused — and how to put it right.

Watch the whole guide as a video8 steps in one film
Step 1 / 8

Open your development environment

You set up security where you build: in Development. When you publish, it travels along to the next environments.

  1. Click Development
Open your development environment · Click Development
  1. Click Open ↗
Open your development environment · Click Open ↗
Open your development environment · Flow, with the module General in the explorer.
Step 2 / 8

Create a table for salaries

A new table in the module General. Give it a name under Settings.

  1. Click Add to General
Create a table for salaries · Click Add to General
  1. Click New table
Create a table for salaries · Click New table
  1. Click Settings
Create a table for salaries · Click Settings
  1. In Name, type Salaries
Create a table for salaries · In Name, type Salaries
Step 3 / 8

Classify the data

Under Security you say how sensitive the data is. Salaries are personal data. From now on no endpoint, workflow or chat with a lower classification gets to see these rows: data never becomes less protected because someone reuses it.

  1. Click Security
Classify the data · Click Security
  1. In Classification, choose Personal data (GDPR)
Classify the data · In Classification, choose Personal data (GDPR)
  1. Click Save structure
Classify the data · Click Save structure
Classify the data · The table is now recorded as personal data.
Step 4 / 8

Create a workflow and say what a caller must bring

A new workflow shows its settings on the right. Set it to Shared, so other modules may call it. Because it handles personal data, you demand the permission hr:read and the classification personal data from every caller. These demands travel along: whoever calls the workflow — an API, another workflow, an agent — must meet them.

  1. Click Add to General
Create a workflow and say what a caller must bring · Click Add to General
  1. Click New workflow
Create a workflow and say what a caller must bring · Click New workflow
  1. In Workflow name, type Look up salary
Create a workflow and say what a caller must bring · In Workflow name, type Look up salary
  1. Click Shared — other modules may call it
Create a workflow and say what a caller must bring · Click Shared — other modules may call it
  1. In Required scopes, type hr:read
  2. In **Handles data classified as No requirement Public Internal Confidential Personal **, choose Personal data (GDPR)
Create a workflow and say what a caller must bring · In Required scopes, type hr:read; In **Handles data classified as No requirement Public Internal Confidential Personal **, choose Personal data (GDPR)
Step 5 / 8

Let the workflow read the table

Add a Table step, choose the salaries and connect the trigger to the step. Then save. On every run the step checks that the caller has at least the table's classification.

  1. Click Add node
Let the workflow read the table · Click Add node
  1. Click Table
Let the workflow read the table · Click Table
  1. In Table, choose Salaries · 0
Let the workflow read the table · In Table, choose Salaries · 0
  1. Click the trigger's dot
Let the workflow read the table · Click the trigger's dot
  1. Click the step's dot
Let the workflow read the table · Click the step's dot
  1. Click Save
Let the workflow read the table · Click Save
Let the workflow read the table · The workflow is saved.
Step 6 / 8

Create an API for HR

An API is the front door: one base path, one security policy. By default a consumer only gets in with an API key.

  1. Click Add to General
Create an API for HR · Click Add to General
  1. Click New API
Create an API for HR · Click New API
  1. In Name, type HR
  2. In Base path, type /hr
Create an API for HR · In Name, type HR; In Base path, type /hr
  1. Click Save API
Create an API for HR · Click Save API
Create an API for HR · The API is now called HR.
Step 7 / 8

Put the workflow behind an endpoint — without the permission

An endpoint binds one method and path to one workflow. Choose the salary workflow and save, without extra permissions. Flow refuses: this endpoint would open the workflow to consumers who do not have hr:read.

  1. Click + Endpoint
Put the workflow behind an endpoint — without the permission · Click + Endpoint
  1. In Name, type Salary
  2. In Method, choose GET
  3. In Path, type /salary
  4. In Workflow, choose Look up salary
Put the workflow behind an endpoint — without the permission · In Name, type Salary; In Method, choose GET; In Path, type /salary; In Workflow, choose Look up salary
  1. Click Save endpoint
Put the workflow behind an endpoint — without the permission · Click Save endpoint
Put the workflow behind an endpoint — without the permission · The message: the workflow requires hr:read; add it to this endpoint's extra permissions.
Step 8 / 8

Demand the permission on the endpoint

Fill in hr:read under Additional required scopes and save again. Now it works. The endpoint also takes over the workflow's classification: personal data never opens without signing in and a permission. The plain-language summary says this endpoint is stricter than the API.

  1. In Additional required scopes, type hr:read
Demand the permission on the endpoint · In Additional required scopes, type hr:read
  1. Click Save endpoint
Demand the permission on the endpoint · Click Save endpoint
Demand the permission on the endpoint · ‘Access: API key and the permission hr:read’ and ‘classification Personal data (GDPR)’.

This guide was carried out step by step on 22 Oct 2026 by an automated test on Flow (version 3e563176).