Skip to main content
Question

Aspas Duplas em Requisição HTTP

  • September 15, 2026
  • 3 replies
  • 62 views

m-rosa1
Forum|alt.badge.img

Recentemente me deparei com uma situação no pipefy, mais especificamente na ação de requisição HTTP, na maioria das vezes ela funciona normalmente, mas me deparei com um problema, tenho um campo de “Descrição do fato” esse é um campo de texto longo aberto onde coletamos relatos grandes, o problema é que se o valor desse campo tiver o caractere de aspas duplas (“), a automação quebra, acredito que por conta da formatação, alguém já se deparou com um problema parecido lidando com essa ação no Pipefy? tentei buscar formas de formatar o texto ou de replace mas não encontrei nada disponibilizado pela Pipefy para realizar isso via automações do pipe, abaixo segue um print de como está formatado a ação de HTTP:

 

3 replies

Gustavo Ledoux

Olá @M-Rosa1,

 

Você diagnosticou certo: quando um valor dinâmico entra dentro de uma string JSON sem escape, o caractere " fecha a string antes da hora e o body deixa de ser JSON válido. Isso costuma aparecer em campos de texto longo com relatos, citações ou textos copiados de outros sistemas.

 

Por que acontece

 

O Pipefy monta o body por substituição de texto nos placeholders %{campo}. Para JSON, ele trata quebras de linha, mas não faz escape automático de aspas no valor do campo.

Exemplo do que acontece:

// Body configurado na automação
"ee6d8a67-6c6c-455c-9780-16fd1fd952d6": "O aluno disse "preciso de prazo""

// Resultado real quando o campo tem aspas — JSON inválido
"ee6d8a67-6c6c-455c-9780-16fd1fd952d6": "O aluno disse "preciso de prazo""
// ↑ fecha a string aqui

 

Solução recomendada: fórmula ESCAPE_JSON_STRING

 

O Pipefy tem a função ESCAPE_JSON_STRING() nas fórmulas automatizadas. Ela prepara o texto para uso seguro dentro de JSON (aspas, quebras de linha etc.).

 

Passo a passo

  1. Crie um campo auxiliar oculto (texto longo), ex.: Descrição do fato (JSON).
  2. Crie uma automação antes da HTTP request:
    • Evento: o mesmo gatilho da integração (ex.: card movido para fase X)
    • Ação: Aplique uma fórmula
    • Fórmula: 
      ESCAPE_JSON_STRING(%{id_do_campo_descricao_do_fato})
    • Campo destino: Descrição do fato (JSON)
  3. Na Requisição HTTP, use o campo auxiliar no body em vez do original:
{
"request_form_attribute": {
"ee6d8a67-6c6c-455c-9780-16fd1fd952d6": "%{id_campo_descricao_json}"
}
}

 

Campo no body Campo no body

Descrição do fato (original)

Texto sem caracteres especiais

Descrição do fato (JSON) (auxiliar)

Texto livre, relatos, citações — sempre na HTTP request

 

Ordem das automações

Se forem duas automações separadas com o mesmo gatilho, garanta que a fórmula rode antes da HTTP request:

  • Mesmo evento, ordem de execução — fórmula primeiro, HTTP depois
  • Encadeamento — HTTP dispara só após a fórmula (ex.: "campo atualizado" no auxiliar)

Como validar

  1. Crie um card de teste com aspas no texto: Ele disse "preciso revisar"
  2. Confira o log da automação (body enviado)
  3. O valor deve aparecer escapado: Ele disse \"preciso revisar\"

 

O que não existe hoje

 

Não há replace nativo nem botão de "escapar JSON" direto na tela da Requisição HTTP. O caminho suportado é a fórmula + campo auxiliar — funciona, mas exige esse passo extra.

Se quiser, compartilhe o gatilho exato (evento + ordem das automações) que reviso a configuração com você.

 


Gustavo Ledoux

Pipefy Support Team

 


m-rosa1
Forum|alt.badge.img
  • Author
  • Explorer
  • September 21, 2026

Olá Gustavo,

Encontrei alguns problemas para replicar a solução indicada, o primeiro deles é que se utilizar a ação de aplique uma formula não aparece nativamente a formula indicada por você (ESCAPE_JSON_STRING) e os campos dinâmicos que aparecem são somente campos numéricos, copiei o id dos campos de descrição longo para conseguir adicionar e adicionei de forma escrita o ESCAPE_JSON_STRING, porem o Pipefy da erro na hora da inclusão informando formula invalida, essa formula não aparece como as outras disponíveis na imagem 

 


Gustavo Ledoux

Olá ​@m-rosa1,

Obrigado pelo retorno — você está certa, e peço desculpas pela orientação anterior.

Revisei o comportamento com mais cuidado e confirmo três pontos:

 

O que você observou está correto

  1. ESCAPE_JSON_STRING não aparece no seletor — a UI só lista funções como SUM, AVERAGE, MIN, MAX etc. Essa função existe no motor de fórmulas, mas não está exposta na interface.
  2. Campos de texto longo não aparecem no picker de fórmulas — só numéricos e datas. Inserir o ID manualmente é possível, mas não é o fluxo previsto.
  3. Para o seu caso (texto longo com relatos grandes), a solução via fórmula não é viável — o campo destino disponível na UI é texto curto (limite de 255 caracteres), insuficiente para “Descrição do fato”.

 

Por que a automação quebra

Quando o body JSON recebe um valor com " sem escape, o JSON fica inválido. O Pipefy escapa quebras de linha (\n), mas não escapa aspas automaticamente no body da Requisição HTTP.

 

Alternativas reais hoje

Opção A — Middleware externo (mais confiável para textos longos)
 Enviar o payload bruto para Make, n8n ou função serverless que monta/escapa o JSON antes de repassar à API de destino.

Opção B — Ajuste no sistema de destino
 Se a API aceitar, receber o texto em endpoint/campo separado ou em formato que não exija string JSON inline (ex.: multipart/form-data).

Opção C — Mitigação parcial (só textos curtos)
 Para relatos com menos de 255 caracteres e sem muitos caracteres especiais, dá para testar ESCAPE_JSON_STRING(%{id}) digitado manualmente com destino em texto curto — mas não recomendo para o seu cenário de relatos grandes.

 

Encaminhamento

Registrei isso como limitação do produto: falta escape automático de JSON na Requisição HTTP nativa. Para textos longos com aspas, hoje não há solução 100% nativa no Pipefy.

 

Se puder compartilhar o tamanho médio dos relatos e se há flexibilidade no sistema de destino, consigo indicar a alternativa menos invasiva.