Pular para o conteúdo principal
Atualizado em Oct 25, 2026

Download para Armazenamento

Use esta ação quando quiser baixar um arquivo de uma URL externa e transmiti-lo diretamente para o storage da sua empresa.

Melhor para​

  • Arquivos grandes demais para o limite de 5 MB de resposta da ação Requisição HTTP — esta ação transmite até 500 MB sem manter o arquivo inteiro em memória
  • Salvar um arquivo remoto uma única vez e reutilizar sua referência armazenada ou URL assinada em passos posteriores
  • Importar mídias (imagens, vídeos, áudios, documentos) de sistemas externos

Campos principais​

CampoO que faz
URL HTTPExpressão CEL que resolve para a URL de download. Apenas requisições GET são feitas, e apenas URLs HTTP(S) públicas são permitidas
PropósitoOpcional. Apenas certos valores são mantidos como propósito do arquivo; veja a nota abaixo
Cabeçalhos HTTPCabeçalhos de requisição opcionais, por exemplo para autenticação. Chaves e valores são expressões CEL — combine com Resolver Variáveis para carregar segredos
File NameExpressão CEL opcional para o nome do arquivo armazenado. Se omitido, usa o cabeçalho Content-Disposition da resposta, depois o caminho da URL e por fim um nome gerado
Tipo de conteúdoExpressão CEL opcional para o tipo MIME. Detectado automaticamente a partir do cabeçalho Content-Type da resposta ou da extensão do arquivo quando omitido
CategoriaArmazena o arquivo como images, videos, audios ou documents. Detectada automaticamente a partir do tipo de conteúdo quando omitida
PublicControla se o arquivo armazenado deve ser abertamente acessível (desligado por padrão)

Sobre Propósito: os valores mantidos são workflow_storage_upload (o padrão), action_response_media, dynadata, storage_manual_upload, whatsapp_catalog_product_image, template_message_media, chat_media_upload e scheduled_message_media. Qualquer outro valor é armazenado como workflow_storage_upload, mas continua aparecendo no log do passo. Propósitos de avatar e ícone (contact_avatar, company_logo, user_avatar, autochat_integration_avatar, autochat_widget_icon) não são respeitados, então um workflow não consegue preencher esses campos. Use dynadata para um arquivo que você vai anexar ao campo de arquivo de um registro.

O que passos posteriores podem usar​

  • workflow.step(N).status
  • workflow.step(N).file
  • workflow.step(N).signedUrl
  • workflow.step(N).contentType
  • workflow.step(N).size

workflow.step(N).file contém o objeto armazenado (bucket, fullPath, name, metadata), e workflow.step(N).signedUrl é uma URL de download temporária válida por cerca de 15 minutos.

Dicas​

  • Downloads são limitados a 500 MB — transferências maiores são abortadas com download_size_limit_exceeded.
  • Os bytes baixados contam para a cota de storage da sua empresa, e o passo falha com storage_quota_exceeded quando o download não couber nela.
  • Uma resposta não-2xx faz o passo falhar (http_client_error ou http_server_error), e o download inteiro deve terminar em até 5 minutos.
  • Nada fica para trás em caso de falha: um arquivo parcialmente armazenado é limpo automaticamente.
  • Use Criar URL Assinada de Armazenamento (actions/media/storage/signed-url) mais tarde quando precisar de um novo link de download depois que o inicial expirar.
  • O tipo de conteúdo é normalizado quando o arquivo é armazenado, e a saída contentType do passo mostra o valor armazenado. Tipos renderizáveis ou inseguros (HTML, SVG, XML e tipos +xml, multipart, listas separadas por vírgula, valores malformados) são armazenados como application/octet-stream. Documentos são armazenados sem parâmetros e precisam ser um tipo de documento suportado (PDF, texto simples, CSV, JSON, ZIP, Word, Excel, PowerPoint ou RTF); caso contrário, application/octet-stream. Imagens são armazenadas sem parâmetros. Áudio e vídeo mantêm apenas o parâmetro codecs, então audio/ogg; codecs=opus continua servindo para mensagens de voz. Passar contentType=maps.get(workflow.step(0),'headers.content-type') continua funcionando; o valor apenas é normalizado.