Formulários e ações
Dois blocos do Construtor deixam o cliente fazer algo no portal: o Formulário, que envia o que ele preencheu por e-mail ou para um webhook, e o Botão de ação, que abre um link ou dispara um webhook.
Na página Ajuda da Aurora Energia, o formulário Fale com a gente envia a mensagem do cliente para atendimento@auroraenergia.com.br, e o botão Pedir religação abre o site da empresa numa nova aba.

Formulário
Campos
Em Campos, adicione um item para cada campo do formulário:
| Propriedade | Para que serve |
|---|---|
| Rótulo | O nome do campo para o cliente, como Unidade consumidora. |
| Nome da variável | Como o valor é usado no e-mail ou no webhook ({{unidade}}). Vazio, é criado a partir do rótulo. |
| Tipo | O formato aceito (veja abaixo). |
| Valor inicial | O que o campo já traz preenchido. Aceita expressões, como {{ $user.email }}. |
| Obrigatório | Se o cliente precisa preencher. |
Os tipos validam e formatam o que o cliente digita:
| Tipo | Aceita |
|---|---|
| Texto, Texto longo | Qualquer texto |
| Um e-mail válido | |
| Telefone | (00) 0000-0000 ou celular com 9 dígitos |
| URL | http:// ou https:// |
| Números | Só números |
| Moeda Reais / Moeda Outras | Valores como R$ 999.999,99 |
| CPF, CNPJ, CPF ou CNPJ | Documentos válidos, com a máscara aplicada |
| Regexp | O texto que casar com a Expressão regular que você informar, como [A-Z]{3}-\d{4} |
Valores iniciais
Para poupar o cliente de digitar o que o portal já sabe, use no Valor inicial:
| Expressão | Valor |
|---|---|
{{ $user.name }} | Nome de quem está logado |
{{ $user.first_name }} | Primeiro nome |
{{ $user.email }} | |
{{ $user.id }} | Id do usuário do portal |
{{ $tenant.id }} | Tenant ID do usuário |
Dá para combinar com texto e métodos, como {{ $user.name.toUpperCase() }}. No Construtor, o valor aparece com os dados do usuário escolhido em Ver como.
No formulário de pedido de vistoria da Aurora Imóveis, o Nome começa com {{ $user.name }}, e CPF e Telefone são obrigatórios, nos tipos CPF e Telefone.
O que acontece no envio
Em Ação ao enviar, escolha:
| Campo | Para que serve |
|---|---|
| Para | Os destinatários, separados por vírgula (até 10). |
| Assunto | O assunto do e-mail. |
| Mensagem | O corpo do e-mail. |
Nos três campos você pode usar {{variáveis}}: as de cada campo do formulário e as do envio — {{form_title}}, {{page_path}}, {{submitted_at}}, {{customer_name}}, {{customer_email}}, {{organization_name}} e {{all_fields}} (todos os campos, um por linha). Clique numa variável na lista do painel para copiá-la. Também valem expressões como {{ $now.toFormat('dd/MM/yyyy') }}.
O e-mail sai com o remetente, o endereço de resposta, a cópia oculta e o layout definidos em Notificações, e fica no histórico de notificações.
Webhook
Escolha um dos webhooks ativos do workspace, cadastrados em API e webhooks › Webhooks. O envio segue pela mesma fila dos outros webhooks — com a mesma assinatura, novas tentativas e o registro em Entregas. Nenhuma URL ou credencial fica na página.
Defina também o Texto do botão e a Mensagem de sucesso, que o cliente vê depois de enviar.
Botão de ação
| Propriedade | Para que serve |
|---|---|
| Texto do botão | O que aparece no botão. |
| Tipo | Link ou Webhook. |
| Estilo | Cheio ou Contorno. |
| Ícone e Posição do ícone | Um ícone antes ou depois do texto. |
| Alinhamento | Esquerda, centro ou direita. |
| Pedir confirmação | Mostra a Mensagem de confirmação antes de seguir. |
Link
Em Abrir, escolha Página do portal (e a página) ou URL — um endereço https://…, mailto: ou tel:, com a opção Abrir em nova aba. Um link só leva o cliente a outro lugar; nada é enviado.
Webhook
O botão envia uma requisição do servidor para o endereço que você definir:
| Campo | Para que serve |
|---|---|
| Method | POST, PUT ou PATCH. |
| URL | O endereço chamado. Aceita {{variáveis}}. |
| Headers | Pares de chave e valor (até 20), como Authorization. |
| Body | O corpo da requisição. Já vem com um JSON com os dados do clique. |
| Mensagem de sucesso | O que o cliente vê quando a chamada dá certo. |
Variáveis disponíveis na URL, nos headers e no corpo: {{button_label}}, {{page_path}}, {{triggered_at}}, {{customer_name}}, {{customer_email}}, {{tenant_id}}, {{portal_user_id}} e {{organization_name}}. Num corpo JSON, escreva a variável entre aspas ("{{customer_name}}") — o valor é escapado. Sem um header Content-Type, o envio vai como application/json.
:::warning Tokens e chaves de API Para guardar um token, clique em Secreto ao lado do valor do header, digite o valor e clique em Salvar. Ele é guardado criptografado: nem a página, nem a IA, nem quem abre o Construtor consegue lê-lo de volta — o painel mostra só Valor secreto salvo (criptografado), com a opção Trocar. Nunca escreva um segredo direto no campo de valor ou no corpo. :::
Se a chamada falhar, o cliente vê só um aviso genérico.
Testar no Construtor
O preview do Construtor executa as ações de verdade: o e-mail do formulário é enviado, o webhook é chamado e o botão mostra como o endereço respondeu (status e tempo). Use destinatários e endereços de teste enquanto monta a página.
Onde ver os envios
| O quê | Onde |
|---|---|
| Cada envio de formulário | Evento portal_form.submitted em Eventos |
| Cada clique em botão com webhook | Evento portal_action.triggered em Eventos |
| Os e-mails enviados pelos formulários | Histórico de Notificações |
| As entregas para webhooks do workspace | Entregas |