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

# Enroll an authentication method

> Have users set up an authentication method, such as a passkey or email OTP.

Users set up an authentication method. They choose one of the methods you allow, and the flow completes once it's set up.

![A flow with a required enrollment step for email OTP, passkey, SMS OTP or WhatsApp, followed by Complete](https://mintcdn.com/authsignal-23/wPTVXdR08lavcXQp/images/docs/flows/enroll-authentication-method-flow.png?fit=max\&auto=format\&n=wPTVXdR08lavcXQp\&q=85\&s=034b36e4dc333f24f510841adf1bbe7b)

Users choose a method to set up

## Build the flow

**1. Set up the methods**

Set up the methods users can choose, such as email OTP, passkeys, SMS OTP and WhatsApp, on the
**Authenticators** page.

**2. Start from the Basic enrollment template**

Create a Flows action, such as `enrollMethod`, and choose the **Basic enrollment** template. It
gives you a required enrollment step that offers every method you've set up, then **Complete**.
**Required** means users can't continue until they set up a method. The step leaves out methods
the user already has.

**3. Adjust the flow (optional)**

* To let users skip it, set **Requirement** to **Optional**.
* To have users verify first, add a verification step before the enrollment step.

**4. Publish the flow**

Select **Publish**. Then start and verify the flow from your backend, as in the
[quickstart](https://docs.authsignal.com/flows/overview.md#quickstart).


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