> ## Documentation Index
> Fetch the complete documentation index at: https://docs.baselayer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Build a Journey

> Lay out a hosted enrollment flow in Console: its steps, fields, checks and branding.

You build customer journeys in [Console](https://console.baselayer.com), under **Onboarding**. The [journey builder](/hosted-enrollment/playground) on these docs is the same editor, running in your browser, so you can try everything below without an account.

## Steps and fields

A journey is a list of **steps**, each a screen the applicant sees, with **fields** on it. Use **Add Step** to add a step, blank or prefilled with common fields, and **Add field** to add fields to it. Open a field to set its label, help text and whether it is required, and use its arrows to reorder it.

| Field | What the applicant sees |
| - | - |
| Text, email, phone, number, date | A single input, with optional limits on length, value or format. |
| Currency | An amount in USD, EUR, GBP, CAD or AUD. |
| Dropdown | A choice from options you list. |
| Checkbox, consent | A box to tick. |
| Address | A US address, with suggestions as they type. |
| Document upload | One or more files, limited by type and count. |
| Content | Text to read, in Markdown. Collects nothing. |
| Business autocomplete | A search for the applicant's business. |
| Beneficial owners | Everyone who owns 25% or more of the business. |

Each field's **Fills** shows the data key its answer is saved under. Identity and business fields fill Baselayer's keys, which the checks read; any other field fills a custom key named after it, and its answer comes back in the session's results.

## Pre.Fill

**Identity Pre.Fill** asks for the applicant's phone number and date of birth, confirms they hold that phone with a one-time code, and fills in their identity for them to confirm on the next step.

When Pre.Fill can't find the applicant, the identity step shows a form for them to type their details instead. Switch that step to **No match** to edit the form: reorder, remove or re-add its fields, and add fields shown only to applicants Pre.Fill can't find.

## Checks

| Check | Runs | Needs |
| - | - | - |
| Identity verification (KYC) | Verifies the applicant. | Pre.Fill, or fields for first name, last name, date of birth and phone. With Pre.Fill, the no-match form must ask for those four as required fields. |
| Business verification (KYB) | Verifies the business. | Business autocomplete, or fields for the legal name and address. |

The rail shows **Ready** or **Missing inputs** for each check, and opening a check shows what it reads and what it still needs. A journey with no checks sends every completed application to your review queue.

## Branding

Open **Branding** to set your primary and secondary colors, logo, font, and the Privacy, Terms and Support links in the footer, and to hide the "Powered by Baselayer" mark. Logos can be PNG, JPEG, WebP, SVG, GIF or AVIF up to 1 MB; fonts are WOFF2 files up to 2 MB, one per weight and style. Branding changes reach sessions already in progress.

## Publish and test

**Save Draft** keeps your changes without affecting live sessions. **Publish** makes the draft the version new sessions run, and **Version history** lists what you published and restores an earlier version. **Copy Test Link** opens the journey as an applicant sees it.

To start sessions on a journey from your server, you need its ID: the last part of the journey's URL in Console. See [Sessions and embedding](/hosted-enrollment/sessions).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.