CRUD Conversacional
Referência de ações, referências dinâmicas e validação automática para execução de planos no FormFlow
O CRUD Conversacional transforma instruções em linguagem natural em sequências de ações. O fluxo começa com reasonFormFlowPlan, que gera os steps. Cada step executa uma das ações abaixo.
Ações disponíveis
Mutações
| Ação | Descrição |
|---|---|
createCatalog | Cria um novo formulário |
updateCatalog | Atualiza formulário existente |
createVariable | Cria uma nova variável |
updateVariable | Atualiza variável existente |
createFormField | Adiciona campo a um formulário |
updateFormField | Atualiza campo de formulário |
upsertFormItemValue | Insere ou atualiza um valor capturado |
upsertFormResponse | Insere ou atualiza uma resposta de formulário |
createFormItemResponse | Cria snapshot de resposta |
Queries
| Ação | Descrição |
|---|---|
queryFormCatalogs | Lista formulários do host |
queryFormVariables | Lista variáveis do host |
queryFormFields | Lista campos de um formulário |
queryFormItemsValues | Busca valores capturados |
queryFormResponses | Busca respostas de formulários |
queryFormItemsResponses | Busca snapshots de respostas |
Validação
| Ação | Descrição |
|---|---|
validateStepResult | Valida o resultado de uma etapa anterior antes de continuar |
Referências dinâmicas
Steps podem referenciar o resultado de steps anteriores usando a notação $previous:
| Referência | O que acessa |
|---|---|
$previous | Objeto completo do resultado anterior |
$previous.id | Campo id do resultado anterior |
$previous.campo | Qualquer campo do resultado anterior |
$previous[0].id | Primeiro elemento quando o resultado é um array |
Exemplo: criar catálogo e logo depois associar uma variável ao ID gerado:
[
{
"stepNumber": 1,
"action": "createCatalog",
"generalInstructions": "Criar formulário Pré-vendas"
},
{
"stepNumber": 2,
"action": "updateCatalog",
"generalInstructions": "Associar variáveis ao formulário criado",
"params": {
"catalogId": "$previous.id",
"variableIds": ["uuid-email", "uuid-phone"]
}
}
]
Validação automática
Steps com requiresValidation: true são verificados automaticamente antes de prosseguir:
{
"stepNumber": 1,
"action": "createCatalog",
"generalInstructions": "Criar formulário de pré-vendas",
"requiresValidation": true,
"validationQuestion": "O formulário foi criado corretamente?",
"validationInstructions": "Verificar se o ID retornado é válido e o nome está correto"
}
realtimeInstructions
Durante a execução, cada step gera mensagens de feedback em realtimeInstructions:
{
"stepNumber": 1,
"action": "createCatalog",
"result": { "id": "abc-123", "name": "Pré-vendas" },
"realtimeInstructions": [
"✅ Formulário criado com sucesso!",
"📋 ID gerado: abc-123",
"📝 Nome: Pré-vendas"
]
}
Essas mensagens são ideais para exibir progresso ao usuário em tempo real, especialmente combinadas com o evento form_flow_step_executed do WebSocket.