dynamic_forms.edit. Sem ela, a resposta é 403 com message: "permission_required".
Este endpoint não grava respostas. Responder um formulário é outro endereço, e depende de saber onde o formulário está anexado — ver Formulários dinâmicos e o pivot.
O corpo da requisição
O campo
Cada item deedges é um campo do formulário.
custom_validation é o padrão sem delimitadores — escreva ^[0-9]{5}-[0-9]{3}$, não /^[0-9]{5}-[0-9]{3}$/. Uma expressão inválida devolve 422.Campo novo ou campo existente
É oid que decide, e ele tem três formas:
O texto é descartado depois de salvar — ele só existe durante a requisição, para ligar uma condicional a um campo que ainda não tem número.
Os tipos de campo
São 21. O nome na tabela é o valor literal detype.
Texto e números
Texto e números
Escolha entre opções
Escolha entre opções
Os três primeiros exigem
options. matrix exige options em outro formato.Datas e horas
Datas e horas
Contato e identificação
Contato e identificação
Registros da plataforma
Registros da plataforma
Estes quatro, mais
counter, não funcionam em publicação de formulário — quem responde de fora não tem acesso aos registros da conta.Arquivos
Arquivos
O arquivo em si sobe por outro endpoint, antes da resposta. Ver Anexos em resposta de formulário.
As opções
options muda de formato conforme o tipo.
- select, radio e checkbox
- matrix
- Os demais tipos
Uma lista simples de textos:
Campo matriz
O tipomatrix monta uma grade: cada linha é uma pergunta, cada coluna é um dado a preencher. É o formato de escala Likert e de avaliações item a item.
Colunas também aceitam
required, description e help_text.
A resposta de uma matriz é um objeto aninhado por chave:
{"atend": {"nota": "Bom", "obs": "..."}}.Condicionais
A condicional fica no campo afetado — o que aparece ou some —, e não no campo que decide.
Cada regra tem três partes:
Os operadores disponíveis:
As condicionais são substituídas inteiras a cada salvamento, campo a campo. Omitir
conditionals em um campo que tinha regras remove todas elas.Obrigatoriedade e regex não são verificadas no servidor em campos que têm condicional — a checagem fica só na interface. Ver Criar um formulário.
O que o salvamento apaga
Este é o ponto que separa uma integração segura de uma que destrói dados. O fluxo correto para qualquer edição pela API é sempre o mesmo:1
Leia o formulário atual
{ "form_id": 19 }. A resposta traz o formulário com todos os campos, inclusive os arquivados, e as condicionais de cada um.2
Altere o que precisa
Mexa na cópia que você recebeu. Campos novos entram com
id em texto; campos existentes mantêm o id numérico.3
Reenvie tudo
title incluído, index em cada campo, e os campos que você não quis mexer exatamente como vieram.Arquivar em vez de apagar
Quando um campo sai do formulário mas as respostas antigas precisam continuar existindo, useaction:
Em um campo com
action, os outros atributos são ignorados: arquivar e restaurar não alteram rótulo, tipo nem opções.Exemplos
- Payload mínimo
- Com condicional
- Resposta
Um formulário novo, com um campo só:
Erros comuns
validation_errors — title ausente na edição
validation_errors — title ausente na edição
title é obrigatório em toda chamada, inclusive quando você só quer mexer nos campos. Reenvie o título atual.form_edge_not_found_in_conditionals
form_edge_not_found_in_conditionals
O
target_id de uma condicional não bate com nada: nem com um campo existente do formulário, nem com o texto de referência de um campo novo da mesma requisição.Confira se o texto está idêntico nos dois lugares — ele diferencia maiúsculas e minúsculas.form_edge_conditional_target
form_edge_conditional_target
Uma condicional aponta para um campo
matrix. Escolha outro campo como critério.form_edge_conditional_value
form_edge_conditional_value
value veio com um tipo que não dá para comparar. Aceita texto, número, null ou uma lista de textos e números.permission_required
permission_required
O token não tem
dynamic_forms.edit. Anexar formulário a um objeto é outra permissão: frame_settings.edit.model_forms.Os campos aparecem fora de ordem
Os campos aparecem fora de ordem
Faltou
index. Sem ele todos os campos ficam na posição 0. Reenvie o formulário com a ordem explícita.Próximos passos
Anexos em resposta de formulário
O upload que precede a resposta de um campo
attachment.Formulários dinâmicos e o pivot
Onde o formulário está anexado — e como gravar as respostas.
Criar um formulário
Os mesmos campos pela interface, com o que cada configuração faz.
Formulários dinâmicos
O conceito: um formulário sem dono, anexado a vários lugares.