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

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://auth0.com/feedback

```json
{
  "path": "/docs/customize/actions/actions-overview",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

> Describes how Auth0 Actions work and what you can accomplish with them.

# Understand How Auth0 Actions Work

Actions are secure, tenant-specific, [versioned](/docs/customize/actions/manage-versions) functions written in Node.js that execute at certain points within the Auth0 platform. Actions are used to customize and extend Auth0's capabilities with custom logic.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Auth0 Actions uses modern JavaScript's [promise-based programming model](https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Async_JS/Promises), a basis for asynchronous functions in Actions.
</Callout>

The processes that can be extended in this way are called triggers. Trigger groupings represents the logical pipeline through which information moves during a single point in the Auth0 journey. Multiple Actions can be added to a trigger, with each Action executing in the order in which it was placed. Some triggers are executed synchronously, blocking the flow in which they are involved, and some are executed asynchronously, as indicated in the table below.

Actions are a cornerstone to our overall extensibility product at Auth0. With Actions, you can add essential custom logic to your login and identity flows specific to your needs. Actions also allow you to connect external integrations that enhance your overall extensibility experience. For example, you can add an Action to your login trigger to verify credentials such as a License or Passport using a Marketplace Partner who specializes in identity proofing.

## What can you do with Actions?

What an Action can do is determined by where it is executed within the Auth0 runtime environment.

<AccordionGroup>
  <Accordion title="Signup & Login: When a user is added to a database or passwordless connection.">
    | Trigger                  | Description                                                                           |
    | ------------------------ | ------------------------------------------------------------------------------------- |
    | `pre-user-registration`  | Triggers before a user is created. Does not run for social connections.               |
    | `post-user-registration` | Triggers asynchronously after a user is created. Does not run for social connections. |
    | `post-login`             | Triggers after a user is authenticated but token hasn't issued.                       |
  </Accordion>

  <Accordion title="MFA Notifications: When using SMS as a factor for Multi-factor Authentication (MFA) or to configure a custom provider.">
    | Trigger              | Description                                                                                                                              |
    | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
    | `send-phone-message` | Triggers when using a custom provider to send the messages for the enrollment and the challenge process. Does not run social connection. |
  </Accordion>

  <Accordion title="Password reset: When a password reset request is initiated.">
    | Trigger                         | Description                                                                       |
    | ------------------------------- | --------------------------------------------------------------------------------- |
    | `post-change-password`          | Triggers after a password is changed. Does not run for Social connections.        |
    | `password-reset-post-challenge` | Triggers after the first challenge is completed and before the password is reset. |
  </Accordion>

  <Accordion title="Machine to Machine: When an application, instead of a user, is authenticated and authorized to use your APIs.">
    | Trigger                | Description                                  |
    | ---------------------- | -------------------------------------------- |
    | `credentials-exchange` | Triggers before an access token is returned. |
  </Accordion>
</AccordionGroup>

## Key benefits of Actions

### Improved developer experience

* When editing an Action within the <Tooltip tip="Auth0 Dashboard: Auth0's main product to configure your services." cta="View Glossary" href="/docs/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip>, you will have access to rich type information and inline documentation about what is possible within each trigger, which makes it easy to discover what capabilities each Trigger supports.
* An Action can be edited and tested without affecting the version that is currently serving production traffic.
* If an issue is found within an Action, it can be rolled back to a previous version.

### Reuse custom functions

* Create, manage, and share functions between Actions using [Actions Modules](/docs/customize/actions/modules/actions-modules-overview).

### Access to npm packages

* You can use nearly all [public `npm` packages](https://www.npmjs.com/) within Actions.

### Observability

* When Auth0 executes Actions, it captures key metrics about them and links them to [Auth0 Logs](/docs/deploy-monitor/logs).
* When debugging, use the [Actions Real-time Logs](/docs/customize/actions/actions-real-time-logs) feature.

### Multiple Actions on every trigger

* Every Action trigger supports multiple independent Actions.

## Get started

* [Write your first Action](/docs/customize/actions/write-your-first-action).
* Review the current [Action Coding Guidelines](/docs/customize/actions/action-coding-guidelines).
* Review the current [Actions Limitations](/docs/customize/actions/limitations).

## Learn more

* [Write Your First Action](/docs/customize/actions/write-your-first-action)
* [Explore Triggers](/docs/customize/actions/explore-triggers)
* [Actions Limitations](/docs/customize/actions/limitations)
* [Manage Versions](/docs/customize/actions/manage-versions)
* [Migrate from Actions Beta to Final](/docs/customize/actions/migrate/migrate-from-actions-beta-to-final)
