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

> Aprenda a escribir una Action, lo que incluye elegir un flujo, crear y configurar una Action, y vincularla al flujo.

# Escriba su primera Action

Esta guía le mostrará cómo crear e implementar su primera Action mediante el <Tooltip tip="Auth0 Dashboard: el producto principal de Auth0 para configurar sus servicios." cta="Ver glosario" href="/es/docs/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip>. Al finalizar, comprenderá la funcionalidad básica que usará con todas las Actions y estará familiarizado con el modelo de programación. Lo que aprenderá constituye la base para escribir cualquier Action, independientemente de su propósito o del flujo.

<div id="the-goal-notify-slack-on-user-login">
  ## El objetivo: notificar a Slack cuando un usuario inicia sesión
</div>

Va a crear una Action que envía un mensaje a un canal de Slack cuando un usuario inicia sesión. Aunque este tutorial usará el trigger Post Login, la información que se proporciona aquí es útil para triggers de cualquier tipo.

Para completar esta tarea, hará lo siguiente:

* [Crear una Action](#create-an-action)
* [Agregar un Secret](#add-a-secret)
* [Agregar una dependencia](#add-a-dependency)
* [Guardar el borrador](#save-the-draft)
* [Agregar lógica personalizada](#add-custom-logic)
* [Probar una Action](#test-an-action)
* [Implementar una Action](#deploy-the-action)
* [Adjuntar una Action a un flujo](#attach-the-action-to-a-flow)
* [Ver los resultados de una Action en los registros del inquilino](#observe-actions-in-tenant-logs)

<div id="prerequisites">
  ## Requisitos previos
</div>

Como esta Action enviará mensajes a un canal de Slack, debe [crear un webhook entrante para un espacio de trabajo de Slack](https://api.slack.com/messaging/webhooks). Una vez que tenga la URL del webhook de Slack, puede continuar con esta guía.

<div id="create-an-action">
  ## Crear una Action
</div>

Para usar una Action en un flujo específico, primero debe crearla y luego agregarla a un flujo.

1. Vaya a [Auth0 Dashboard > Actions > Library,](https://manage.auth0.com/#/actions/library) y seleccione **Create Action** > **Build from scratch**.
2. Introduzca un **Name** y seleccione el trigger **Login / Post Login**, ya que va a agregar una Action al flujo de inicio de sesión; luego seleccione **Create.**

Se abre el editor de código de Actions:

<Frame>
  <img src="https://mintcdn.com/translations/raZlN0BXDjNonwyb/docs/images/cdy7uua7fh8z/12Q8OEuDI39eWuWsrVVwN0/ff7dd385d33aee704e1cb603f43c679b/2025-02-28_13-27-14.png?fit=max&auto=format&n=raZlN0BXDjNonwyb&q=85&s=2297ddea8163f88caa55eff5da1451b1" alt="Editor de código de Actions" width="902" height="507" data-path="docs/images/cdy7uua7fh8z/12Q8OEuDI39eWuWsrVVwN0/ff7dd385d33aee704e1cb603f43c679b/2025-02-28_13-27-14.png" />
</Frame>

<div id="create-an-action-from-a-template">
  ## Crear una Action a partir de una plantilla
</div>

La galería de plantillas de Actions ofrece varias plantillas iniciales para ayudarle a crear una Action. Para crear una Action a partir de una plantilla:

1. Vaya a [Auth0 Dashboard > Actions > Library](https://manage.auth0.com/#/actions/library) y, a continuación, seleccione **Create Action.**
2. Seleccione **Choose from template**.
3. Seleccione la plantilla que desea usar para crear la Action.
4. Ahora verá una vista previa de solo lectura del código de la plantilla. Para continuar, seleccione **Use this template**.
5. Introduzca un nombre y seleccione **Create**.

<div id="add-a-secret">
  ## Agregar un Secret
</div>

Cada Action puede contener valores Secret, adecuados para almacenar información confidencial, como <Tooltip tip="Token de acceso: credencial de autorización, en forma de cadena opaca o JWT, que se utiliza para acceder a una API." cta="Ver glosario" href="/es/docs/glossary?term=Access+Tokens">Tokens de acceso</Tooltip> y claves de API. Almacene la URL del webhook de Slack como un Secret.

1. Seleccione el icono de llave en la barra lateral izquierda del editor de código.
2. Seleccione **Add Secret**.
3. Asigne al Secret el siguiente nombre: `SLACK_WEBHOOK_URL`.
4. Pegue la URL del webhook proporcionada por Slack y seleccione **Create**.

Verá que el Secret se agregó a la Action y que puede usar el nuevo Secret mediante el autocompletado inteligente escribiendo `event.secrets`.

<Frame>
  <img src="https://mintcdn.com/translations/pvjQqAy3EB2TK6NP/docs/images/cdy7uua7fh8z/4FyFtKRSIYuigxE9U8TkEJ/9598b5909694631ca673f748abf2268a/Screen_Shot_2022-02-09_at_3.24.05_PM.png?fit=max&auto=format&n=pvjQqAy3EB2TK6NP&q=85&s=c05b92ab3da7350c96d58075b67d0fc4" alt="Editor de código de Actions: su Secret se agregó en la sección Secrets." width="1325" height="780" data-path="docs/images/cdy7uua7fh8z/4FyFtKRSIYuigxE9U8TkEJ/9598b5909694631ca673f748abf2268a/Screen_Shot_2022-02-09_at_3.24.05_PM.png" />
</Frame>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Una vez creado un Secret, su valor nunca volverá a mostrarse. Auth0 cifra todos los Secrets y los almacena de forma segura.
</Callout>

<div id="add-a-dependency">
  ## Agregar una dependencia
</div>

Usarás el paquete de `npm` [`@slack/webhook`](https://www.npmjs.com/package/@slack/webhook) para facilitar el envío de mensajes a Slack. Puedes usar casi cualquier paquete público de `npm` en una Action, siempre que pueda instalarse sin depender de [complementos nativos](https://www.npmjs.com/package/node-gyp).

Para agregar la dependencia:

1. Selecciona el icono **Dependency** (icono de cubo) en la barra lateral.
2. En **Nombre**, ingresa `@slack/webhook`.

   De forma predeterminada, tu Action usará la versión más reciente de la dependencia disponible en el momento en que se agregó.
3. Selecciona **Create** y la dependencia debería agregarse a la Action:

   <Frame>
     <img src="https://mintcdn.com/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/Jmzvgydo204pBLikzuDJy/1d9a614b4c92f27afbbdd2b2af3b3c0b/Screen_Shot_2022-02-23_at_11.28.41_AM.png?fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=5b1c3a88cec8f529524d445f3b823452" alt="Editor de código de Actions: se agregó tu dependencia." width="1504" height="614" data-path="docs/images/cdy7uua7fh8z/Jmzvgydo204pBLikzuDJy/1d9a614b4c92f27afbbdd2b2af3b3c0b/Screen_Shot_2022-02-23_at_11.28.41_AM.png" />
   </Frame>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Cuando guardes esta Action, se resolverá la versión más reciente de la dependencia y se reemplazará por un número de versión específico para evitar que futuras actualizaciones del paquete afecten a tu Action.
</Callout>

<div id="save-the-draft">
  ## Guardar el borrador
</div>

Selecciona **Guardar borrador**. Tu Action se guarda, pero todavía no se ejecutará como parte de ningún flujo de usuario. Con Actions, puedes crear, editar y probar Actions antes de que afecten al tráfico de tu inquilino de Auth0. Cuando estés conforme con el comportamiento de la Action, la implementarás y la agregarás a un flujo más adelante.

<div id="add-custom-logic">
  ## Agregar lógica personalizada
</div>

Ahora que la Action ya se configuró con un Secret y una dependencia, ¡escribamos el código!

Cada Action tiene un objeto `event` que contiene información contextual de solo lectura relevante para el trigger asociado. Si empiezas a escribir `event.` en el Editor, verás todas las propiedades disponibles del evento. Para obtener más información sobre qué datos están disponibles en cada trigger, consulta [Explorar flujos y triggers](/es/docs/customize/actions/explore-triggers).

Usemos nuestra Action para notificar a Slack. Agrega este código a tu Action:

```javascript lines theme={null}
const { IncomingWebhook } = require('@slack/webhook');

exports.onExecutePostLogin = async (event, api) => {
    const url = event.secrets.SLACK_WEBHOOK_URL;
    const webhook = new IncomingWebhook(url);

    // Enviar la notificación
    await webhook.send({ text: "Logging In..." });
};
```

Selecciona **Save Draft** para guardar la Action.

<div id="test-the-action">
  ## Probar la Action
</div>

Antes de ejecutar esta Action en tu inquilino con tráfico real de usuarios, pruébala para comprobar que funciona como se espera.

1. Selecciona el icono de Test (triángulo) en la barra lateral. En la sección Payload, verás datos JSON editables correspondientes al trigger que seleccionaste cuando creaste la Action.

   <Frame>
     <img src="https://mintcdn.com/translations/pvjQqAy3EB2TK6NP/docs/images/cdy7uua7fh8z/4MSu8EfpMLNJpcYtrwP7Jf/66480a0434c89eadb809012bca890037/Screen_Shot_2022-02-10_at_10.01.10_AM.png?fit=max&auto=format&n=pvjQqAy3EB2TK6NP&q=85&s=268f5e08a17c3c3c3cfb96ee843f234d" alt="Editor de código de Actions: panel Test Runner" width="378" height="644" data-path="docs/images/cdy7uua7fh8z/4MSu8EfpMLNJpcYtrwP7Jf/66480a0434c89eadb809012bca890037/Screen_Shot_2022-02-10_at_10.01.10_AM.png" />
   </Frame>
2. Selecciona el botón **Run** y deberías ver un mensaje en tu canal de Slack.

<div id="deploy-the-action">
  ## Desplegar la Action
</div>

Ahora que hemos comprobado que la Action funciona como se espera, es hora de desplegarla.

Selecciona **Deploy**. Al desplegar una Action, se toma una instantánea de la Action en ese momento y se registra como una **versión de Action**.

Selecciona **Version History** y deberías ver la Action registrada como Version 1:

<Frame>
  <img src="https://mintcdn.com/translations/MV7tE-x71x8RWRES/docs/images/cdy7uua7fh8z/53sn70cXoxUHibc3Bmk7Og/193af512ac2b58f3d60ab36ca5499d90/Screen_Shot_2022-02-10_at_10.02.47_AM.png?fit=max&auto=format&n=MV7tE-x71x8RWRES&q=85&s=12536896fe948de77396c8fe71126359" alt="Actions: Historial de versiones" width="326" height="177" data-path="docs/images/cdy7uua7fh8z/53sn70cXoxUHibc3Bmk7Og/193af512ac2b58f3d60ab36ca5499d90/Screen_Shot_2022-02-10_at_10.02.47_AM.png" />
</Frame>

Ahora puedes actualizar tu Action y guardarla sin afectar a la Version 1 de tu Action. Auth0 solo ejecutará la versión desplegada actualmente de una Action, por lo que, hasta que vuelvas a desplegar una Action, Auth0 ejecutará la Version 1.

<div id="attach-the-action-to-a-flow">
  ## Asocia la Action a un flujo
</div>

El último paso para configurar una nueva Action y hacer que se ejecute como parte del tráfico de tu inquilino es asociarla a un flujo.

1. Ve a [Auth0 Dashboard > Actions > Flows](https://manage.auth0.com/#/actions/flows) para ver una lista de los flujos disponibles:
2. Selecciona el [flujo de inicio de sesión](/es/docs/customize/actions/explore-triggers/signup-and-login-triggers/login-trigger) y arrastra `my-slack-action` al flujo.

   <Frame>
     <img src="https://mintcdn.com/translations/6GE5Z24GDCZehiJ9/docs/images/cdy7uua7fh8z/6hU7sKWtGzSx9Z8dhsXbvp/0253fb4e9eac1133cc9626385622c54e/Login_Action_-_English.png?fit=max&auto=format&n=6GE5Z24GDCZehiJ9&q=85&s=fd50d3f8faf41e106597bd9f48f6adac" alt="Actions Flows: Flujo de inicio de sesión" width="842" height="836" data-path="docs/images/cdy7uua7fh8z/6hU7sKWtGzSx9Z8dhsXbvp/0253fb4e9eac1133cc9626385622c54e/Login_Action_-_English.png" />
   </Frame>
3. Selecciona **Apply**.

La Action ya se está ejecutando con tráfico real de usuarios en tu inquilino. Si quieres un entorno de pruebas más sólido, considera [configurar varios entornos de Auth0](/es/docs/get-started/auth0-overview/create-tenants/set-up-multiple-environments).

<div id="observe-actions-in-tenant-logs">
  ## Observa las Actions en los registros del inquilino
</div>

Ahora que tu Action se ejecuta como parte del flujo de inicio de sesión, Auth0 registra información sobre cada ejecución de la Action en los registros del inquilino. Para verlo, ve a [Auth0 Dashboard > Monitoring > Logs](https://manage.auth0.com/#/logs) y selecciona un evento de **Successful Login**.

Deberías ver una vista de **Action Details** que contiene información sobre cualquier Action que se haya ejecutado como parte de ese flujo.

<Frame>
  <img src="https://mintcdn.com/translations/6GE5Z24GDCZehiJ9/docs/images/cdy7uua7fh8z/61k82wmsXSb9M3wOExM4jH/51fae3a36a8ecddeec08bc45da468e2b/Action_logs_-_English.png?fit=max&auto=format&n=6GE5Z24GDCZehiJ9&q=85&s=bbae31682ef23d5f086dd7df335cfedf" alt="Registros del inquilino: vista de Action Details" width="1079" height="1010" data-path="docs/images/cdy7uua7fh8z/61k82wmsXSb9M3wOExM4jH/51fae3a36a8ecddeec08bc45da468e2b/Action_logs_-_English.png" />
</Frame>

<div id="next-steps">
  ## Próximos pasos
</div>

Ahora que ya has escrito tu primera Action, consulta [Explorar flujos y triggers](/es/docs/customize/actions/explore-triggers) para aprender a realizar algunas tareas comunes con Actions.
