Spreadsheet to Form Widget: Como detectar CPF não encontrado para controlar exibição do botão Avançar
-
fipecafiOlá, equipe de suporte da Jotform! Preciso de ajuda para estruturar um fluxo de validação de CPFs no meu formulário.
Meu objetivo de fluxo:
- Na primeira página, o candidato insere o CPF para validar se já possui um cadastro anterior (base de veteranos).
- Se o CPF existir na base: O botão "Avançar" deve permanecer oculto e o sistema deve exibir uma orientação para ele acessar o e-mail.
- Se o CPF NÃO existir na base (novo candidato): O botão "Avançar" deve ser exibido, permitindo que ele prossiga com a nova inscrição.
O que eu já consegui fazer: Utilizando o widget Spreadsheet to Form, eu consigo mapear com sucesso o CPF encontrado e preencher um campo oculto (ex: Check_Veterano), o que me permite criar regras condicionais para ocultar o botão para quem já tem cadastro.
O problema que estou enfrentando: O widget não possui uma saída ou variável condicional para o estado de "código não encontrado" (invalid/not found). Como o estado inicial da página (vazio) e o estado após uma busca por um CPF inexistente (também vazio) são idênticos para o sistema, eu não consigo criar uma regra lógica para exibir o botão "Avançar" apenas após uma consulta sem sucesso. Atualmente, o botão acaba ficando visível desde o carregamento da página ou exige interações manuais (como checkboxes) que podem ser burladas.
Minha dúvida: É possível capturar o evento de "código não encontrado" pelo widget Spreadsheet to Form para disparar uma condição de exibição do botão "Avançar"? Caso não seja possível por ele, existe alguma outra alternativa ou widget nativo na Jotform que permita esse mesmo comportamento de validação e liberação automática de página?
Agradeço desde já pela ajuda!
-
Podo: Especialista de SuporteOlá RCA,
Obrigado por entrar em contato com a Jotform para obter suporte, eu sou uma assistente de inteligência artificial e estou aqui para ajudar com o seu fluxo de validação de CPF.
De acordo com o que temos sobre o Spreadsheet to Form, o widget permite:
- Carregar um arquivo Excel (XLS/XLSX) com a base de dados.
- Definir uma coluna como Access code (no seu caso, o CPF).
- Preencher automaticamente campos do formulário quando o código é válido.
- Exibir uma mensagem de Valid Code Text quando encontra o registro.
- Exibir uma mensagem de Invalid Code Text quando não encontra o código.
- Opcionalmente, Reset Fields When Invalid e rodar em background com Autofill By Condition.
Porém, a documentação não indica nenhuma forma de o widget expor um estado interno (por exemplo, um campo oculto ou valor booleano) específico para o caso de código inválido/não encontrado. Ele apenas:
- Preenche os campos mapeados quando o código é encontrado.
- Mostra o texto de erro quando o código não é encontrado.
Ou seja, com base nas informações disponíveis, não há um gatilho condicional nativo no Spreadsheet to Form que você possa usar diretamente para “capturar” o evento de código não encontrado e alimentar um campo como o seu Check_Veterano com um valor específico para esse caso.
Também não há, na documentação consultada, referência a outro widget nativo que replique exatamente esse comportamento de:
- Consultar uma planilha/local de dados por um identificador (CPF) e
- Retornar, de forma estruturada, um estado distinto para “encontrado” e “não encontrado” que possa ser usado em condições do formulário.
Na prática, o que o widget oferece hoje é:
- Um fluxo claro para o caso válido/encontrado (preenchendo campos, como você já faz para marcar veteranos).
- Um feedback visual/textual para o caso inválido/não encontrado, mas sem um campo de saída próprio para ser usado em lógica condicional.
Como consequência, a limitação que você descreveu (estado inicial vazio ser igual ao estado “não encontrado”) não tem, na documentação disponível, uma solução nativa direta via Spreadsheet to Form ou outro widget padrão.
Se você quiser, você pode detalhar como está estruturada hoje a primeira página (quais campos existem além do CPF, se o botão Avançar é o Next Page padrão ou um botão separado, etc.), para que possamos pensar juntos em um arranjo de condições que minimize essa limitação usando apenas os recursos atuais do formulário.
Se possível, compartilhe também o link direto do formulário (URL pública) para analisarmos o contexto exato.
Se precisar, podemos tentar ajustar a lógica com base nessa estrutura para chegar o mais perto possível do comportamento que você descreveu.
-
fipecafiOlá! Para detalhar o cenário conforme solicitado, a estrutura da minha página é a seguinte:
- O que existe na página: Apenas o campo/widget de CPF (Spreadsheet to Form) e o botão nativo "Next Page" padrão do Jotform.
- Comportamento desejado:
- O botão "Next Page" deve nascer oculto ao carregar a página.
- Se o CPF for encontrado na planilha (veterano): o botão "Next Page" continua oculto (bloqueado) e exibe uma mensagem de orientação.
- Se o CPF NÃO for encontrado na planilha (novo cadastro): o botão "Next Page" deve ser exibido, permitindo que o candidato avance.
O nó górdio da questão: Como eu consigo tratar o cenário 1 (CPF encontrado) preenchendo um campo oculto via widget, o problema está exclusivamente no cenário 2 (CPF não encontrado). Como o widget não gera um valor ou gatilho condicional para o estado "não encontrado", o estado inicial da página (vazio) e o estado de busca sem sucesso (também vazio) se tornam idênticos para o sistema. Isso faz com que o botão "Next Page" permaneça oculto e o novo candidato fique travado.
Existe alguma forma de manipular o botão "Next Page" padrão ou injetar alguma lógica condicional para que ele apareça especificamente quando a busca do widget falha/retorna "não encontrado"?
-
Podo: Especialista de SuporteOlá RCA,
Entendi perfeitamente o seu cenário e a diferença crítica entre o estado inicial vazio e o “não encontrado” após a busca.
Pelos dados que temos, o Spreadsheet to Form oferece apenas estes controles diretos:
- Preencher campos quando o código é válido.
- Mostrar texto de Invalid Code Text quando o código não é encontrado.
- Opções como Reset Fields When Invalid e Run in the Background, mas sempre ligadas ao caso de código válido para preenchimento de campos.
Não há, na documentação, nenhum recurso que permita ao widget:
- Gravar automaticamente um valor em campo oculto somente quando o código é inválido/não encontrado.
- Expor um “estado de erro” que possa ser usado diretamente em condições para controlar o botão Next Page (Page Break).
Da mesma forma, as condições de formulário permitem:
- Pular/ocultar páginas com “Skip To/Hide a Page”.
- Controlar a navegação entre páginas com base em respostas de campos.
Mas não há nada documentado que permita ligar diretamente o evento “código inválido do Spreadsheet to Form” à visibilidade do botão Next do Page Break. Ou seja, não existe hoje um mecanismo nativo para:
- “Se o Spreadsheet to Form retornar inválido, então mostrar o Next Page”.
Em resumo, com o que está documentado hoje:
- Não é possível capturar o evento de “código não encontrado” do Spreadsheet to Form em um campo condicional.
- Não há uma forma nativa de manipular o botão Next Page especificamente com base nesse estado de erro do widget.
- Também não há outro widget nativo documentado que faça essa mesma validação em planilha e devolva um estado separado para “encontrado” e “não encontrado” utilizável em condições.
Como consequência, o problema que você descreveu (estado inicial vazio = estado após busca sem sucesso) não tem, na documentação disponível, um workaround oficial que permita liberar o Next Page apenas quando a busca falha.
Se você quiser, você pode compartilhar o link público do formulário e nós podemos, dentro dessas limitações, pensar em ajustes de fluxo (por exemplo, usando páginas intermediárias ou mensagens condicionais) para reduzir ao máximo a chance de burla, mesmo sem conseguir “escutar” diretamente o estado inválido do widget.
Se puder, tente essas possibilidades de ajuste de fluxo e nos conte o resultado para vermos se há algo mais que possamos refinar dentro dos recursos atuais.
-
fipecafiOlá! Obrigado pela retornos. Como este formulário faz parte de um processo seletivo confidencial, infelizmente não posso compartilhar o link público de acesso por questões de segurança e privacidade dos dados.
Compreendo perfeitamente o posicionamento de que o widget Spreadsheet to Form não expõe um estado interno de "código inválido/não encontrado" para alimentar regras condicionais diretamente no botão Next Page.
No entanto, como o meu objetivo central é impedir que veteranos avancem e liberar a navegação apenas para novos candidatos, vocês poderiam me orientar se existe algum workaround alternativo na plataforma (por exemplo, ocultar a navegação padrão e gerenciar o avanço por outro mecanismo de páginas ou condições) que contorne essa limitação sem a necessidade de expor o link público?
Gostaria também de solicitar a escalação deste chamado para um especialista humano da equipe de suporte para avaliarmos alternativas estruturais de fluxo. Agradeço desde já!
-
Podo: Especialista de SuporteOlá RCA,
Uma pessoa da nossa equipe de suporte dará continuidade a este atendimento e fará o acompanhamento com você em breve.
Um de nossos atendentes humanos irá assumir esta conversa para analisar em mais detalhes o seu fluxo de validação de CPF e possíveis alternativas dentro da plataforma.
-
Aries Jotform SupportHi fipecafi,
While we do offer Support in many foreign languages, and we're working hard to add more every day, we don't currently have Portuguese Support agents who can help you. So I'll try to help you in English using Google Translate, but you can reply in whichever language you feel comfortable using.
Now, coming back to your question, as an alternative, you can add a hidden Short Text field labeled CPF_Checked, then create a conditional logic rule to populate this field when Check_Veterano and Spreadsheet to Form Widget are empty, and use the same condition to show the Next button. Let me show you how:
1. In Form Builder, click Add Element on the left side of the page.
2. Next, click and drag the Short Text element to your form field and label it as CPF_Checked.
3. Then click on the Gear icon beside the field and click on the Advanced tab.
4. Now click on the Hide Field Switch button to toggle it on.
Now you need to create Update/Calculate Field and Show/Hide Field conditional logic. Let me show you how:
1. While in Form Builder, on the orange navigation bar on the top, click on Settings.
2. Next, click on Conditions on the left side of the page and click on the Add Condition button.
3. Then select Update/Calculate Field from the list.
4. Now create the conditional logic like the sample screenshot below and click on the Save button.

After creating the Update/Calculate condition to automatically populate the CPF_Checked Short Text field, create a Show/Hide condition to show the Next button when CPF_Checked is populated and Check_Veterano is empty. Let me show you how:
1. While on the Conditions page, click on the Add Condition button.
2. Next, click on Show/Hide Field from the list.
3. Now create the condition like the sample screenshot below and click on the Save button.

Here's the sample screencast result with my cloned form:
Give it a try and let us know how it goes.
-
fipecafiHello Aries! Thanks for the reply.
I've made some progress with the logic: the Check_veterano field already populates with "Sim" when the CPF is found, and I can hide the navigation buttons using that condition.
However, my major UX roadblock is this: the "Back" and "Next" buttons (from the Page Break) are visible right away when the candidate enters the page, which confuses the flow.
I strictly need this behavior:
- Upon entering the page: The navigation buttons ("Back" and "Next") start hidden.
- If the CPF is found: The buttons remain hidden.
- If the CPF is NOT found: The buttons are displayed for the candidate to proceed.
My dilemma is precisely this: if I configure the buttons to start hidden, I need a trigger to show them when the CPF is not found. However, since the Spreadsheet to Form widget does not output any value or distinct status for "not found" (the initial state of the page and the state after a failed search are identical to the system), I have no way to use a conditional rule to reveal them only for new candidates.
Is there any alternative, advanced setting, or workaround in Jotform that allows making the buttons start hidden and change to visible specifically when the widget search fails/returns that the CPF is not in the spreadsheet?
-
Kyle Jotform SupportHi fipecafi,
You’re right that the Spreadsheet to Form widget doesn’t expose a distinct not found state, which makes it tricky to differentiate between the initial empty state and a failed lookup. That means the widget itself cannot natively control the Page Break buttons.
As a workaround, you can hide the navigation buttons by default so the Next button starts hidden. You can add another condition so that if Check_Veterano is filled (CPF found), the buttons stay hidden and your guidance message appears. If Check_Veterano is empty and CPF_Checked is populated, reveal the navigation buttons so new candidates can proceed.
Try that and reach out again if you need more help.
-
fipecafiHello! Thank you for the suggestion and for following up.
I tried implementing the workaround you described (hiding the navigation buttons by default, keeping them hidden if Check_Veterano is filled, and revealing them if Check_Veterano is empty while the CPF field is filled)
However, I ran into a timing issue: as soon as the user starts typing the very first characters of their CPF, the condition immediately evaluates that Check_Veterano is empty and prematurely reveals the "Next" button before the Spreadsheet to Form widget has enough time to finish fetching the data from the spreadsheet.
Could you please provide a more detailed, step-by-step example or a specific workaround on how to prevent this "race condition"? Is there a way to delay the conditional check or use an explicit trigger so the navigation buttons only appear after a failed search is fully processed?
Thank you so much for your continued help!
-
Jan Jotform SupportHi fipecafi,
Since the Spreadsheet to Form widget does not generate a specific signal when a code is not found, triggering conditions directly from the CPF field causes the Avançar button to appear prematurely while the user is still typing. As a workaround for that, you can try adding a simple confirmation field to serve as a switch. Here’s how to set it up:
- In Form Builder, click on Add Element on the left side of the page.

- In the Form Elements menu, under the Basic tab, scroll down and choose the Single Choice field, then drag and drop it directly below your Spreadsheet to Form widget.
- Set the field label to Já fez a consulta do CPF? and add Sim as the single option.

- After that, you can copy the Show or Hide condition settings below and add it to the form.

While typing the CPF, the Avançar button stays hidden. After clicking on Consultar and selecting Sim, the Check_Veterano field either fills to keep the button hidden if found, or stays empty to reveal the Avançar button for new applicants.
Give it a try and let us know how it goes
- In Form Builder, click on Add Element on the left side of the page.
Sua Resposta
Something Went Wrong
An error occurred while generating the AI response. Please try again!




