Olá, pessoal, boa tarde.
Fiz alguns testes com API para fazer upload de arquivos em campo de anexos e aconteceu o seguinte:
Arquivo sobe corretamente via createPresignedUrl, o downloadUrl gerado pelo Pipefy funciona, updateFieldsValues + ADD grava o anexo, mas a interface do campo de anexo às vezes falha no download e, depois de alguns anexos falhos, o próprio campo passa a retornar INVALID_INPUT até limpar os anexos.
Alguém tem alguma ideia de correção permanente para isso ou alguma ideia do que fazer? Exemplo de query:
{"query": "\n mutation {\n updateFieldsValues(\n input: {\n nodeId: \"cardAqui\"\n values: [\n {\n fieldId: \"idDoCampoAqui\"\n value: [\"orgs/.../uploads/.../nomeDoArquivo.extensao\"]\n operation: ADD\n }\n ]\n }\n ) {\n success\n }\n }\n ", "variables": null}
Problemas com campos de anexo
Best answer by joao-quint
Olá,
Analisando o que você descreveu, o problema provavelmente tem mais de uma causa acontecendo em conjunto. Vou detalhar cada uma e as soluções.
1. Verifique se está passando o path correto
O updateFieldsValues espera o path relativo retornado pelo createPresignedUrl, não uma URL completa. O formato correto é:
orgs/uuid-da-org/uploads/uuid-do-arquivo/nomeDoArquivo.extensao
Se estiver passando a URL completa com https://..., isso pode causar falha de validação intermitente, porque o Pipefy tenta confirmar que o arquivo existe no storage usando esse path, e uma URL completa não passa nessa verificação.
2. Use user_errors na sua mutation para capturar o erro exato
Adicione o bloco de erros para ver qual arquivo específico está falhando:
mutation {
updateFieldsValues(
input: {
nodeId: "cardAqui"
values: [
{
fieldId: "idDoCampoAqui"
value: ["orgs/uuid-da-org/uploads/uuid-do-arquivo/arquivo.ext"]
operation: ADD
}
]
}
) {
success
user_errors {
field
message
}
}
}
O retorno de INVALID_INPUT sem detalhe é o sintoma, o user_errors vai te dizer a causa real.
3. Tente a mutation específica para anexos
Em vez do updateFieldsValues genérico, existe uma mutation dedicada para campos de anexo que tem tratamento mais robusto para esse caso:
mutation {
updateCardAttachmentFieldValue(
input: {
cardId: "cardId"
fieldId: "fieldId"
attachmentsData: [
{
filePath: "orgs/uuid/uploads/uuid/arquivo.ext"
originalFilename: "nome-original.ext"
}
]
}
) {
success
attachmentsCount
}
}
Vale testar essa mutation com um único arquivo primeiro para isolar se o problema é na operação ADD do updateFieldsValues ou no arquivo em si.
4. URLs de download expiram após 7 dias
O downloadUrl retornado pelo createPresignedUrl tem validade. Se a interface estiver tentando usar uma URL gerada há mais de 7 dias, o download falha. Isso não impede o upload, mas pode ser o que está causando as falhas intermitentes na interface.
5. Verifique extensões permitidas no campo
Se o campo de anexo tiver restrições de tipo de arquivo configuradas (ex: apenas .pdf e .docx), qualquer arquivo fora dessas extensões vai gerar INVALID_INPUT. Confira as configurações do campo no editor do pipe.
Checklist de diagnóstico rápido
- Confirme que o arquivo foi de fato enviado para a
uploadUrlantes de chamar oupdateFieldsValues - Confirme que está usando o path relativo, não a URL completa
- Teste com um único arquivo para isolar o problema
- Adicione
user_errorsna mutation para ler o erro detalhado - Tente a mutation
updateCardAttachmentFieldValuecomo alternativa
Se mesmo assim o problema persistir, recomendo abrir um ticket com o suporte do Pipefy informando o path exato que está usando, o ID do card e do campo, e o retorno completo da mutation.
Join us in the Pipefy Community! 🚀
No account yet? Create an account
Login with your Pipefy credentials
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.


