# Entradas

> Define qué recibe cada herramienta: un texto fijo, una variable del contacto, del equipo o una credencial, o un dato que completa el agente.

Las **entradas** son los datos que recibe una herramienta. Cada una tiene un nombre, un formato (texto, número o sí/no) y un **origen**:

<CardGroup cols={3}>
  <Card title="Fija" icon="pin">
    Un texto predefinido que se manda siempre. Por ejemplo, el código de tu empresa en el sistema.
  </Card>
  <Card title="Variable" icon="variable">
    Sale de eltick al ejecutar: un dato del contacto, de la conversación, del equipo o una credencial.
  </Card>
  <Card title="IA" icon="sparkles">
    La completa el agente, con un prompt que le explica cómo y un valor por defecto.
  </Card>
</CardGroup>

**El agente solo ve y completa las entradas de IA.** Las fijas y las variables las pone eltick al ejecutar, y las credenciales nunca pasan por el modelo.

## Variables disponibles

| Grupo | Variable | Qué trae |
| --- | --- | --- |
| Contacto | `contacto.nombre` | Nombre |
| | `contacto.telefono` | Teléfono, con `+` |
| | `contacto.instagram` | Usuario de Instagram, con `@` |
| | `contacto.etiquetas` | Etiquetas, separadas por coma |
| | `contacto.id` | ID del contacto en eltick |
| | `contacto.campo.clave` | Cualquier campo del contacto |
| Conversación | `conversacion.id` | ID de la conversación |
| | `conversacion.canal` | `whatsapp` o `instagram` |
| Cuenta y equipo | `cuenta.nombre` | Nombre de tu negocio |
| | `equipo.asignado.nombre` | Persona asignada a la conversación |
| | `equipo.asignado.email` | Su email |
| Credenciales | `credencial.clave` | Una credencial de [Ajustes › Credenciales](/avanzados/credenciales) |

Una entrada de credencial llega al código como un **token opaco** (por ejemplo `cred_k2m…`), nunca como el valor. Lo usas en `eltick.fetch` y eltick pone el valor real al salir el pedido. Mira [Credenciales](/avanzados/credenciales).

## Entradas de IA

Para cada entrada de IA escribes **cómo la completa el agente**. El agente puede sacar el dato de la conversación o pedírselo al cliente:

> Número de usuario de NAVE (también le dicen número de cliente, abonado, asociado o plan). Si no está en el chat, pedíselo. Nunca uses DNI ni CUIL.

El **valor por defecto** se usa cuando el agente no la completa. Una entrada con valor por defecto es opcional para el agente, aunque esté marcada como obligatoria. Si falta una entrada obligatoria sin valor, la herramienta no se ejecuta y el agente recibe qué dato falta.

## Vista visual o JSON

La pestaña **Entradas** tiene dos vistas. En la **visual** eliges cada entrada de una lista; en **JSON** puedes escribirlas o pegarlas todas juntas. Las dos vistas editan lo mismo:

```json
{
  "numero_usuario": {
    "tipo": "ia",
    "requerida": true,
    "prompt": "Número de usuario de NAVE (cliente, abonado, asociado o plan). Si no está en el chat, pedíselo.",
    "default": null
  },
  "motivo": {
    "tipo": "ia",
    "prompt": "En una frase, qué le pasa al cliente con la conexión.",
    "default": "Sin conexión"
  },
  "telefono": { "tipo": "variable", "valor": "contacto.telefono" },
  "credenciales": { "tipo": "variable", "valor": "credencial.sopnet" },
  "empresa": { "tipo": "fija", "valor": "NAVE" },
  "reintentos": { "tipo": "fija", "formato": "numero", "valor": "2" }
}
```

| Propiedad | Valores | Para |
| --- | --- | --- |
| `tipo` | `"fija"`, `"variable"`, `"ia"` | Todas |
| `formato` | `"texto"` (por defecto), `"numero"`, `"si_no"` | Todas |
| `valor` | El texto fijo o la ruta de la variable | Fijas y variables |
| `prompt` | Cómo la completa el agente | IA |
| `default` | Valor si el agente no la completa (o `null`) | IA |
| `requerida` | `true` (por defecto) o `false` | IA |
| `ubicacion` | `"query"`, `"ruta"`, `"cuerpo"` o `"header"` (sin valor: automático) | Solo HTTP |
| `nombre` | Nombre en el pedido, si no es la clave (por ejemplo `"X-Api-Key"`) | Solo HTTP |

Si el JSON tiene un error, el editor te dice cuál y en qué entrada. Una herramienta puede tener hasta 20 entradas.

## Qué recibe cada tipo de herramienta

- **Código**: todas las entradas llegan juntas en `input`: `input.numero_usuario`, `input.credenciales`, etc.
- **HTTP**: cada entrada va donde diga su ubicación: en la ruta (`{nombre}` en la URL), como parámetro de la URL, en el cuerpo JSON o como header. En automático, va en la ruta si la URL la nombra; si no, como parámetro en `GET` y `DELETE`, y en el cuerpo en `POST`, `PUT` y `PATCH`. Las credenciales en automático no se mandan como datos: se aplican como autenticación según el tipo de credencial. Mira [Herramientas HTTP](/avanzados/herramientas#herramientas-http).

```json
{
  "numero": { "tipo": "ia", "prompt": "Número de pedido", "ubicacion": "ruta" },
  "sucursal": { "tipo": "fija", "valor": "12", "ubicacion": "header", "nombre": "X-Sucursal" },
  "estado": { "tipo": "ia", "prompt": "Estado nuevo del pedido", "ubicacion": "cuerpo" }
}
```

Los cambios en las entradas se aplican al guardar, sin volver a revisión.
