Skip to main content
Documentação interna para desenvolvedores. Esta página aborda a API Forms: criação de formulário, incorporação de widget de bate-papo, processamento de envio e esquema do construtor de formulário. Não se destina a usuários finais.

Mapa de rotas


Padrão de autenticação

Os formulários têm padrões de acesso duplo: Autenticado (painel):
Público (widget incorporado):
  • POST /api/forms/[formId]/chat pode ser chamado sem autenticação
  • Protegido pelo sigilo formId (assinado pelo HMAC, se necessário)

Esquema de formulário

Os formulários são definidos como um esquema JSON armazenado no campo config:

Ponto final de envio de bate-papo

O endpoint POST /api/forms/[formId]/chat processa o envio de um formulário por meio da IA:
Isso potencializa a experiência de conversação do widget de formulário.

Envios

Os envios são armazenados como blobs JSON — a estrutura exata depende do esquema de campo do formulário.

Índices Prisma usados


Problemas conhecidos/pegadinhas

  • Endpoint de bate-papo público: O formId é o único segredo que protege os envios de formulários públicos. Para formulários confidenciais, considere adicionar assinatura HMAC ou reCAPTCHA.
  • Evolução do esquema JSON de envio: Se os campos do formulário mudarem após a existência dos envios, os envios antigos poderão ter campos que não correspondem mais ao esquema atual. A UI deve lidar com os campos ausentes normalmente.
  • Tempo limite de processamento da IA: o endpoint de envio do chat chama a IA, o que pode levar até 30 segundos para formulários complexos. Configure o tempo limite da função Next.js apropriado.
  • Entrega do webhook: O webhook externo ao enviar é disparar e esquecer. Implemente a lógica de nova tentativa em @zappway/lib/webhooks se a confiabilidade for necessária.