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

# Get started

<Tip>
  STOP. Do not read past this section until you have read and followed [/quickstart.md](/quickstart.md).

  Goal: produce a reliable SDK automation script. The intended authoring flow is generate then edit, not write browser automation from scratch.

  Do not hand-write SDK code with element IDs, selectors, or form fields from memory. Element IDs, selectors, and field mappings must come from a live `observe()` call, CLI `notte page observe` output, or generated workflow code. Guessed browser targets fail on real pages.

  Use the Notte skill and CLI to inspect the live site, validate actions/selectors, handle auth/session state, and export workflow code with `notte sessions workflow-code` before using SDK docs or SDK code.

  SDK reference pages are for understanding, running, or editing generated workflow code. They are not the starting point for manually authoring the initial browser automation. SDK-first code is guesswork on real-world pages with dynamic selectors, auth state, CAPTCHAs, and anti-bot behavior.
</Tip>

[Source: node-sdk/src/personas.ts](https://github.com/nottelabs/notte/blob/main/node-sdk/src/personas.ts#L54)

Self-service identities for web automation (account creation, 2FA, etc.)

Notte Personas provide automated identity management for AI agents, enabling them to create accounts,
handle two-factor authentication, and interact with web platforms without manual intervention.

Notte Personas come with complete digital identities:

* Unique Email Address: Dedicated mailbox for each persona with full email management
* Phone Number: SMS-capable phone number for verification and 2FA
* Credential Vault: Optional secure storage for passwords and authentication tokens
* Automated Communication: Built-in email and SMS reading capabilities
* 2FA Support: Seamless handling of two-factor authentication flows

## Create NottePersona

Use [NotteClient.Persona](/typescript-sdk-reference/client/persona) to create this object from your configured client.

```typescript theme={null}
client.Persona(options?: PersonaConstructor): NottePersona;
```

<ParamField body="options" type={"PersonaConstructor"} />

## Related types

* [PersonaConstructor](/typescript-sdk-reference/types/personaconstructor)

## Usage

* [delete](/typescript-sdk-reference/persona/delete): Delete the persona from the notte console
* [addCredentials](/typescript-sdk-reference/persona/addcredentials): Add credentials to the persona (generates a password and stores it in the vault)
* [emails](/typescript-sdk-reference/persona/emails): Read recent emails sent to the persona
* [sms](/typescript-sdk-reference/persona/sms): Read recent SMS messages sent to the persona

<Accordion title="Direct constructor reference">
  ```typescript theme={null}
  new NottePersona(client: NotteClient, options?: PersonaConstructor): NottePersona;
  ```

  <ParamField body="client" type={"NotteClient"} required />

  <ParamField body="options" type={"PersonaConstructor"}>
    Default:

    ```typescript theme={null}
    {}
    ```
  </ParamField>

  ## Related types

  * [PersonaConstructor](/typescript-sdk-reference/types/personaconstructor)
</Accordion>

<Accordion title="Properties">
  ### info

  ```typescript theme={null}
  info: PersonaResponse
  ```

  Get persona info

  ### vault

  ```typescript theme={null}
  vault: NotteVault
  ```

  Get vault (cached property equivalent)

  ### hasVault

  ```typescript theme={null}
  hasVault: boolean
  ```

  Check if persona has a vault

  ### personaId

  ```typescript theme={null}
  personaId: string
  ```

  Get persona ID

  ### email

  ```typescript theme={null}
  email: string
  ```

  Public, human-readable email address of the persona

  ### internalEmail

  ```typescript theme={null}
  internalEmail: string
  ```

  Internal UUID-backed mailbox address of the persona
</Accordion>
