Smart Forms
Formulários Inteligentes integrados nativamente com o nosso editor visual de formulários e assistidos por IA para captação direta de leads no CRM.
1. Visão Geral
O módulo Smart Forms permite que gestores de marketing criem formulários dinâmicos, altamente otimizados e com conformidade de privacidade, sem escrever uma linha de código. Os dados capturados alimentam em tempo real a régua de scoring e nutrição do CRM do DevCod Agency.
2. O Construtor Visual de Formulários
Os formulários são construídos visualmente no painel administrativo (/admin/forms/builder/[formId]) por meio do nosso editor visual proprietário. O sistema conta com componentes customizados que geram layouts flexíveis:
Campos de Dados
- InputField: Texto simples (Ex: Nome, Empresa)
- EmailField: Campo de e-mail com validação nativa
- PhoneField & WhatsAppField: Máscara telefônica
- NumberField & CurrencyField: Campos numéricos e monetários
- DateField: Seletor de data integrado
Escolha e Opções
- SelectField: Listas suspensas dinâmicas
- RadioGroup: Escolha única
- CheckboxGroup: Múltipla escolha
- RatingField: Avaliação por estrelas (0-5)
- NpsField: Escala NPS (0-10)
Layout e LGPD
- FormHeader & Section: Títulos e estruturação
- RichTextBlock & InfoBox: Textos e avisos
- TwoColumnBlock: Divisão em duas colunas
- ConsentCheckbox: Caixa de consentimento LGPD
- Honeypot Field (_gotcha): Campo invisível para prevenção de Spam
- HiddenField: Metadados e UTMs ocultas
3. Geração de Formulários Assistida por IA
O sistema conta com o painel FormAIPanel integrado ao editor. O usuário final insere um comando em linguagem natural e o agente processa a solicitação traduzindo o prompt em uma estrutura JSON completa de componentes compatível com o nosso construtor.
{`
Fluxo de Geração por IA:
┌─────────────────────────┐ ┌─────────────────────────┐ ┌─────────────────────────┐
│ Prompt do Usuário │─────▶│ API Endpoint │─────▶│ Agent (Nova/DevCod AI Core) │
│ "Crie formulário de..." │ │ /api/.../ai-generate │ │ Processamento & Schema │
└─────────────────────────┘ └─────────────────────────┘ └─────────────────────────┘
│
┌─────────────────────────┐ ┌─────────────────────────┐ │
│ Renderização na UI │◀─────│ Estrutura JSON Layout │◀──────────────────┘
│ Campo gerados no Canvas │ │ { root, content } │
└─────────────────────────┘ └─────────────────────────┘
`}
A geração automatizada cria rótulos (labels), placeholders descritivos, define a obrigatoriedade dos campos e injeta o botão de envio personalizado respeitando as melhores práticas de conversão (CRO).
4. Atribuição e Captura de Cookies (Attribution)
Na rota pública de exibição de cada formulário (/forms/[formId]), o cliente armazena cookies de sessão e atribuição. No momento da submissão do formulário, os seguintes metadados são transmitidos de forma transparente para o CRM:
- Parâmetros UTM: utm_source, utm_medium, utm_campaign, utm_term, utm_content
- IDs de Rastreamento de Anúncios: gclid (Google), fbclid (Facebook), ttclid (TikTok)
- Origens de Tráfego: Referrer inicial, canal de entrada (primeiro toque e último toque)
- Identificadores de Tenant: siteId e landingPage onde o formulário foi disparado
5. Modelo de Dados e Banco de Dados (DevCod ORM)
A arquitetura do banco de dados reflete o isolamento multi-tenant e a persistência dos dados de edição visual do formulário:
{`
model SmartForm {
id String @id @default(cuid())
siteId String
name String
description String?
status String @default("draft")
theme String @default("dark-neon")
tags Json @default("[]")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
consentMessage String?
consentPolicyVersion String?
notificationEmails Json @default("[]")
publishedAt DateTime?
redirectUrl String?
slug String?
webhookUrl String?
dispatches FormDispatch[]
fields FormField[]
puckData FormPuckData? // Estrutura de dados de blocos do formulário
responses FormResponse[]
}
`}
6. Segurança e LGPD
A submissão de formulários passa por validações de segurança rígidas e conformidade de privacidade de dados:
- Validação Zod: Todos os payloads de submissão na rota
/api/forms/[id]são sanitizados no servidor por esquemas Zod estritos para evitar injeção de scripts (XSS). - Consentimento LGPD: O bloco
ConsentCheckboxobriga a gravação do consentimento atrelado à versão da política de privacidade no lead criado no CRM. - Isolamento Multi-tenant: Toda query de gravação e consulta executa a verificação
getTenantPrisma(siteId)impedindo vazamento de dados entre empresas.