Formularios y acciones
Dos bloques del Constructor permiten que el cliente haga algo en el portal: el Formulario, que envía lo que completó por correo o a un webhook, y el Botón de acción, que abre un enlace o dispara un webhook.
En la página Ayuda de Aurora Energia, el formulario Hable con nosotros envía el mensaje del cliente a atendimento@auroraenergia.com.br, y el botón Pedir reconexión abre el sitio de la empresa en una pestaña nueva.

Formulario
Campos
En Campos, agrega un elemento por cada campo del formulario:
| Propiedad | Para qué sirve |
|---|---|
| Etiqueta | El nombre del campo para el cliente, como Unidad consumidora. |
| Nombre de la variable | Cómo se usa el valor en el correo o en el webhook ({{unidade}}). Si está vacío, se crea a partir de la etiqueta. |
| Tipo | El formato aceptado (mira abajo). |
| Valor inicial | Lo que el campo ya trae completado. Acepta expresiones, como {{ $user.email }}. |
| Obligatorio | Si el cliente debe completarlo. |
Los tipos validan y formatean lo que el cliente escribe:
| Tipo | Acepta |
|---|---|
| Texto, Texto largo | Cualquier texto |
| Correo | Un correo válido |
| Teléfono | (00) 0000-0000 o celular con 9 dígitos |
| URL | http:// o https:// |
| Números | Solo números |
| Moneda Reales / Moneda Otras | Valores como R$ 999.999,99 |
| CPF, CNPJ, CPF o CNPJ | Documentos válidos, con la máscara aplicada |
| Regexp | El texto que coincida con la Expresión regular que indiques, como [A-Z]{3}-\d{4} |
Valores iniciales
Para ahorrarle al cliente escribir lo que el portal ya sabe, usa en el Valor inicial:
| Expresión | Valor |
|---|---|
{{ $user.name }} | Nombre de quien está conectado |
{{ $user.first_name }} | Primer nombre |
{{ $user.email }} | Correo |
{{ $user.id }} | Id del usuario del portal |
{{ $tenant.id }} | Tenant ID del usuario |
Se puede combinar con texto y métodos, como {{ $user.name.toUpperCase() }}. En el Constructor, el valor aparece con los datos del usuario elegido en Ver como.
En el formulario de pedido de inspección de Aurora Imóveis, el Nombre empieza con {{ $user.name }}, y CPF y Teléfono son obligatorios, de los tipos CPF y Teléfono.
Qué pasa al enviar
En Acción al enviar, elige:
Correo
| Campo | Para qué sirve |
|---|---|
| Para | Los destinatarios, separados por coma (hasta 10). |
| Asunto | El asunto del correo. |
| Mensaje | El cuerpo del correo. |
En los tres campos puedes usar {{variables}}: las de cada campo del formulario y las del envío — {{form_title}}, {{page_path}}, {{submitted_at}}, {{customer_name}}, {{customer_email}}, {{organization_name}} y {{all_fields}} (todos los campos, uno por línea). Haz clic en una variable de la lista del panel para copiarla. También valen expresiones como {{ $now.toFormat('dd/MM/yyyy') }}.
El correo sale con el remitente, la dirección de respuesta, la copia oculta y el diseño definidos en Notificaciones, y queda en el historial de notificaciones.
Webhook
Elige uno de los webhooks activos del workspace, registrados en API y webhooks › Webhooks. El envío sigue por la misma cola que los demás webhooks — con la misma firma, reintentos y el registro en Entregas. Ninguna URL ni credencial queda en la página.
Define también el Texto del botón y el Mensaje de éxito, que el cliente ve después de enviar.
Botón de acción
| Propiedad | Para qué sirve |
|---|---|
| Texto del botón | Lo que aparece en el botón. |
| Tipo | Enlace o Webhook. |
| Estilo | Relleno o Contorno. |
| Ícono y Posición del ícono | Un ícono antes o después del texto. |
| Alineación | Izquierda, centro o derecha. |
| Pedir confirmación | Muestra el Mensaje de confirmación antes de continuar. |
Enlace
En Abrir, elige Página del portal (y la página) o URL — una dirección https://…, mailto: o tel:, con la opción Abrir en una pestaña nueva. Un enlace solo lleva al cliente a otro lugar; no se envía nada.
Webhook
El botón envía una solicitud del servidor a la dirección que definas:
| Campo | Para qué sirve |
|---|---|
| Method | POST, PUT o PATCH. |
| URL | La dirección llamada. Acepta {{variables}}. |
| Headers | Pares de clave y valor (hasta 20), como Authorization. |
| Body | El cuerpo de la solicitud. Ya viene con un JSON con los datos del clic. |
| Mensaje de éxito | Lo que el cliente ve cuando la llamada sale bien. |
Variables disponibles en la URL, en los headers y en el cuerpo: {{button_label}}, {{page_path}}, {{triggered_at}}, {{customer_name}}, {{customer_email}}, {{tenant_id}}, {{portal_user_id}} y {{organization_name}}. En un cuerpo JSON, escribe la variable entre comillas ("{{customer_name}}") — el valor se escapa. Sin un header Content-Type, el envío va como application/json.
:::warning Tokens y claves de API Para guardar un token, haz clic en Secreto junto al valor del header, escribe el valor y haz clic en Guardar. Se guarda cifrado: ni la página, ni la IA, ni quien abra el Constructor puede leerlo de vuelta — el panel muestra solo Valor secreto guardado (cifrado), con la opción Cambiar. Nunca escribe un secreto directamente en el campo de valor o en el cuerpo. :::
Si la llamada falla, el cliente ve solo un aviso genérico.
Probar en el Constructor
La vista previa del Constructor ejecuta las acciones de verdad: el correo del formulario se envía, el webhook se llama y el botón muestra cómo respondió la dirección (estado y tiempo). Usa destinatarios y direcciones de prueba mientras arma la página.
Dónde ver los envíos
| Qué | Dónde |
|---|---|
| Cada envío de formulario | Evento portal_form.submitted en Eventos |
| Cada clic en botón con webhook | Evento portal_action.triggered en Eventos |
| Los correos enviados por los formularios | Historial de Notificaciones |
| Las entregas a webhooks del workspace | Entregas |