> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.withverifa.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.withverifa.com/_mcp/server.

# Tutorial: Creating a Workflow

> Step-by-step guide to building a verification workflow in the Verifa dashboard.

This tutorial walks you through creating a verification workflow from scratch
using the visual graph builder. By the end, you'll have a workflow that verifies
a user's identity with document scanning, facial recognition, age verification,
and duplicate detection.

## Prerequisites

* A Verifa account ([sign up](https://app.withverifa.com))
* Access to the dashboard in **Sandbox** mode

## Step 1: Navigate to Workflows

From the dashboard, expand the **Workflows** section in the left sidebar under
**Configure**, then click **Workflows**.

![Navigate to Workflows in the sidebar](/_fern-img/fe599c017f54e7abc64bad46aa496f0186d28e7212b7efc58e404d9fc28bfef4.webp)

## Step 2: Create a new workflow

You'll see your existing workflows displayed as cards, each showing the
workflow's name, version, included checks, and a description. Your organization
starts with default workflows like **ID & Selfie + Age Verification**.

Click **+ New Workflow** in the top right corner to create a new one.

![Workflow list with New Workflow button](/_fern-img/4f6dd08b954faac9dc21c489a90bfe0df79ea992f2d48529a0848aecb261e328.webp)

## Step 3: Choose a starting point

A **New Workflow** modal appears with template options. You can start from
scratch or pick a pre-built template like **Document Scan Only**, **Age
Verification**, **ID & Selfie + Age Verification**, **ID & Selfie + Duplicate
Prevention**, and more.

For this tutorial, select **Blank Workflow** to build everything step by step.

![New Workflow modal showing template options](/_fern-img/c4afeff8a4ed1c3c6ef2666083cb766f8c0c21a7088d9b030c8a922dcb727094.webp)

## Step 4: Configure capture requirements

Before building the graph, Verifa asks what data the workflow should collect from
applicants during the capture flow.

### Enable selfie capture

Toggle on **Selfie photo** to require a live selfie for facial comparison. This
is needed for the Facial Recognition check later.

### Enable user information

Toggle on **User information** to collect personal details from applicants
during the capture flow.

![Data Requirements — enable Selfie photo and User information](/_fern-img/a875712fba845e457313a721098f1e4fe527d3b8ea6487f5de5d547e42ed1c1e.webp)

### Select user info fields

After enabling User information, the field configuration expands. For this
tutorial, enable the following fields and set them to **required**:

* **First Name** — collect, required
* **Last Name** — collect, required
* **Email** — collect, required
* **Phone** — collect, required

You can leave Date of Birth, SSN, and Address disabled for now — the document
scan will extract date of birth automatically from the ID.

![User information fields — First Name, Last Name, Email, Phone all required](/_fern-img/7148fb9117228a10a568aaf765a8794407f61b529799f9a0f806c6b4a89bc82e.webp)

Click **Continue to Builder** when you're done.

## Step 5: Understand the graph builder

A quick tutorial modal explains how the workflow graph works. Every workflow
starts with a **Capture** node at the top. From there, you build a chain of
verification checks, branches, and outcomes. Data flows top-to-bottom through
each node.

Think of it as a flowchart — each path represents a route an applicant can take
through your verification process.

![Graph builder intro — workflow is a graph](/_fern-img/9771db7a0abb8189143ca8b7089f49e89f6bf9d29f6871d71284f31909034a06.webp)

Click **X** to dismiss the tutorial (or click through all the tips — they're
helpful for first-time users).

## Step 6: Add Document Scan

Click the **+** button below the Capture node to add your first verification
step. The **Add Step** menu appears with all available checks organized by
category:

* **Extraction** — Document Scan
* **Verification** — Facial Recognition, NFC Chip Authentication
* **Evaluation** — Address Validation, Age Verification, AML Screening, List Check, and more

Select **Document Scan**. This check extracts the applicant's name, date of
birth, address, and document number from their ID.

![Click + below Capture and select Document Scan](/_fern-img/4a167c6bada8bfab89d12a5fa128f09e07700e1f007e901aab6ce969c0865f58.webp)

## Step 7: Add Facial Recognition

Now add Facial Recognition after Document Scan. Click the **+** button on the
**pass** output of the Document Scan node, then select **Facial Recognition**
from the Add Step menu.

This check compares the applicant's selfie against the photo on their ID
document.

![Add Facial Recognition from the pass output](/_fern-img/383a743704a4b5854359a030fc77e04586ae91873661726b8beef1c4ee608643.webp)

> **Tip**
>
> Press **Spacebar** at any time to auto-align and organize the graph nodes. This
> keeps your workflow tidy as you add more steps.

## Step 8: Add Age Verification

Repeat the same process — click the **+** on the **pass** output of Facial
Recognition and select **Age Verification**.

When you click on the Age Verification node, the configuration panel opens on
the right side. Here you can set the **minimum_age** threshold. The default is
`18`, but you can change it to any value (e.g., `21` for alcohol delivery, `25`
for car rentals).

![Three steps with Age Verification config panel showing minimum\_age: 18](/_fern-img/83629a532122fa612dbb7410b422c9aeb5a081f54bcbefa31bfd6d270a0df46e.webp)

## Step 9: Add Duplicate Detection

Click the **+** on the **pass** output of Age Verification and select
**Duplicate Detection**. This check searches for the same person across all
previous sessions using hashed device fingerprints, email, phone, document
number, and face embeddings.

Press **Spacebar** to auto-layout the graph after adding the node.

![Duplicate Detection added to the workflow](/_fern-img/27332b00f80d7b73689b1152b720e9c89bf2f2bd9a4359da62fc49fe70470fe5.webp)

## Step 10: Add Auto-Approve

Finally, click the **+** on the **pass** output of Duplicate Detection and
select **Auto-Approve**. This is the decisioning step — if all prior checks
passed, the session is automatically approved. If any check failed, the session
routes to manual review or rejection.

Your complete workflow now looks like this:

```
Capture → Document Scan → Facial Recognition → Age Verification
  → Duplicate Detection → Auto-Approve
```

Each step also has a **fail** output that routes to **Manual Review** by
default, so failed checks don't silently disappear.

![Complete workflow with Auto-Approve](/_fern-img/7e70ce3a5f965e31b159d43cbcb4b2a11104defbbe3ee0bdaad009836d7fc14f.webp)

> **Note**
>
> Three checks run automatically on every session regardless of your workflow
> configuration: **Watchlist Screening**, **Risk Assessment**, and **Identity
> Cross-Reference**. You'll see these listed under "Runs automatically on every
> session" on the workflow detail page.

## Step 11: Review capture requirements

You can review and edit the capture requirements at any time by clicking the
**Capture Requirements** panel in the top left of the graph builder. This shows
a summary of what documents, biometrics, and user info the workflow will collect.

There are multiple ways to open and edit these settings — you can click the
panel header or use the **Capture Requirements Settings** button in the top
toolbar.

![Capture Requirements panel expanded](/_fern-img/dcaf8aa44ce2d1024721ab463d2290959d86a0892d681b2a75ebea7e1ad6028f.webp)

## Step 12: Name and save the workflow

Give your workflow a descriptive name by clicking the name field at the top of
the graph builder (e.g., "Facial, Age, Duplicate"). Add an optional description.

Then click **Save Workflow** in the top right corner. This saves the workflow as
a **draft** — it won't process any sessions until you publish it.

![Name the workflow and click Save Workflow](/_fern-img/b7e3cf4b1e0ccfe3c26cb5d3813c1e9c977083c3ed9590b1306cdac8f8718c90.webp)

## Step 13: Review the workflow detail

After saving, you're taken to the workflow detail page. Here you can see:

* **Details** — Status, publish status (Draft), version, and last updated timestamp
* **Data Requirements** — What the capture flow will collect (documents, selfie, user info)
* **Auto-injected checks** — Watchlist Screening, Risk Assessment, and Identity Cross-Reference
* **Workflow steps** — All 5 steps in order with their fail/review routing

Click **Publish** when you're ready to make the workflow live.

![Workflow detail page with Publish button](/_fern-img/b3689ac0d95c72a0f7b2fcc35cbf2d6e80dda7e8dc0bb475bee9e2a0898d656f.webp)

## Step 14: Publish the workflow

A confirmation modal appears showing the **rollout percentage**. This controls
how much traffic the new version receives:

* **100%** — All new sessions using this workflow will run on the new version immediately
* **50%** — Half of sessions use the new version, half continue on the previous version
* **10%** — Canary deployment — test with a small percentage before rolling out fully

Rollout percentage lets you safely deploy workflow changes in production. For a
brand new workflow, leave it at **100%** and click **Publish v2**.

![Publish modal with rollout percentage](/_fern-img/659751c192611658f4b8b2289b83fef81c8ab7b3fc38d57231db950d98acf770.webp)

## Step 15: Workflow is live

Your workflow is now **Published** and ready to process sessions. The detail page
shows:

* **Publish Status: Published**
* **Version: v2**
* **Rollout: 100%**

You can click **Set as Default** in the top toolbar to make this the default
workflow for all new sessions, or specify it per-session by passing the
`workflow_id` when creating a session via the API.

![Published workflow — v2, 100% rollout](/_fern-img/4ab6b8e4d2a276cf573799b87212e9c51a1ed9d9a278951ab553dfb7828a0ced.webp)

## Using your workflow via the API

Now that your workflow is published, create sessions that use it:

```bash
curl -X POST https://api.withverifa.com/api/v1/sessions \
  -H "X-API-Key: vk_sandbox_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "external_ref": "user_abc123",
    "workflow_id": "wf_your_workflow_id"
  }'
```

Or set it as the default workflow and all new sessions will use it automatically.

## What's next

* [Quickstart](/getting-started/quickstart) — Test your workflow with a sandbox session
* [Workflows](/core-concepts/workflows) — Deep dive into graph structure and conditional routing
* [Verifications & Checks](/core-concepts/verifications-checks) — All available check types
* [Cases](/core-concepts/cases) — How to review sessions routed to manual review
* [Fraud Signals](/best-practices/fraud-signals) — The 150+ signals collected during every session