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çãoDescrição
createCatalogCria um novo formulário
updateCatalogAtualiza formulário existente
createVariableCria uma nova variável
updateVariableAtualiza variável existente
createFormFieldAdiciona campo a um formulário
updateFormFieldAtualiza campo de formulário
upsertFormItemValueInsere ou atualiza um valor capturado
upsertFormResponseInsere ou atualiza uma resposta de formulário
createFormItemResponseCria snapshot de resposta

Queries

AçãoDescrição
queryFormCatalogsLista formulários do host
queryFormVariablesLista variáveis do host
queryFormFieldsLista campos de um formulário
queryFormItemsValuesBusca valores capturados
queryFormResponsesBusca respostas de formulários
queryFormItemsResponsesBusca snapshots de respostas

Validação

AçãoDescrição
validateStepResultValida 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ênciaO que acessa
$previousObjeto completo do resultado anterior
$previous.idCampo id do resultado anterior
$previous.campoQualquer campo do resultado anterior
$previous[0].idPrimeiro 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.