# Secrets

> Secrets

Source: https://docs.plazbot.com/kb/secrets

Los **secrets** guardan tus claves (API keys, tokens, URLs privadas) **encriptadas**, para usarlas en tus **workers** y en tus **WhatsApp Flows** sin escribirlas en el código.

[Watch the video on YouTube](https://www.youtube.com/watch?v=lUXNKJXGmCM)

## 1\. Dónde están

Ve a **Configuración › Developer** y abre la pestaña **Secrets**. Cada secret es una **key** con su **valor**. Los valores se guardan encriptados y **nunca se vuelven a mostrar**: en la lista solo ves `***********`.

## 2\. Configura los secrets de Plazbot

Presiona **Configurar Secrets de Plazbot** (el botón aparece mientras no los tengas). Plazbot genera un token de API y prepara dos secrets:

Secret

Valor

`PLZ_API_KEY`

Un token de API nuevo, para que tus workers llamen a Plazbot

`PLZ_ZONE`

La región de tu cuenta: `LA` (Latinoamérica) o `EU` (Europa)

Presiona **Guardar**.

Los necesitan los workers que usan `plz.contacts`, `plz.whatsapp` y demás datos de Plazbot. `plz.fetch`, `plz.log`, `plz.kv` y `plz.env` funcionan sin ellos.

## 3\. Agrega tus propios secrets

1. Presiona **Agregar Secret**.
2. **Key**: solo mayúsculas, números y guiones bajos (`UPPER_SNAKE_CASE`), por ejemplo `SLACK_WEBHOOK_URL`.
3. **Value**: pega el valor.
4. Presiona **Guardar**.

Si la key ya existe, se reemplaza su valor.

## 4\. Úsalo en tu código

En un worker, lee el secret con `plz.env.<KEY>`:

```ts
import { defineWebhook } from 'plz/workers'

export default defineWebhook({
  name: 'nuevo-lead',
  reference: 'Recibe leads del formulario web y avisa en Slack',

  async run(payload, plz) {
    const { email, nombre } = payload
    await plz.fetch(plz.env.SLACK_WEBHOOK_URL, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ text: `Nuevo lead: ${nombre}` }),
    })
    return { ok: true, email }
  }
})
```

Si cambias la URL, solo editas el secret: no necesitas volver a desplegar el worker.

En un **WhatsApp Flow** (intercambio de datos › Headers), usa la referencia `{{secret.KEY}}`:

```json
{ "Authorization": "Bearer {{secret.STRIPE_API_KEY}}" }
```

## 5\. Edita o elimina

- **Cambiar el valor:** presiona el ícono de la **llave** en la fila, escribe el nuevo valor y confírmalo.
- **Eliminar:** presiona la **papelera** y confirma en **Eliminar secret**.

**Ojo:** si eliminas un secret que un worker usa, `plz.env` lo devuelve vacío y el worker puede fallar.

## 6\. Vista de solo lectura en Desarrolladores

En **Desarrolladores › Secrets** ves qué keys existen y cuándo se crearon, sin poder editarlas. **Gestionar en Configuración** te lleva directo a la pestaña para editarlas.
