08. Upload de arquivo
5 min
Criado por LA em 16/03/2023 17:05
Atualizado por Maria Malheiro em 17/06/2026 10:56

Visão geral

O componente file_upload permite que o usuário envie arquivos diretamente pelo Widget do NLU. Após o envio, o arquivo fica disponível no fluxo através do objeto input.file, contendo informações como nome, tamanho, tipo e URL de acesso.


Passo 1 – Exibir o componente de upload

Em uma etapa do fluxo, configure a resposta para retornar o componente file_upload.

Exemplo:

{
  "default": {
    "type": "file_upload",
    "payload": {
      "maxFileSize": "10M",
      "acceptFileTypes": "PDF|JPEG|PNG",
      "description": "Envie seu comprovante"
    }
  }
}

O que acontece?

Quando essa mensagem é enviada ao Widget, o usuário visualiza um campo para anexar arquivos.

Neste exemplo:

  • O tamanho máximo permitido é de 10 MB.
  • São aceitos apenas arquivos PDF, JPEG e PNG.
  • A descrição "Envie seu comprovante" é exibida.

Passo 2 – Realizar o upload

Após visualizar o componente:

  1. Clique na área de upload.
  2. Selecione um arquivo em seu dispositivo.
  3. O Widget envia automaticamente o arquivo para a plataforma.
  4. O upload é concluído sem necessidade de etapas adicionais no fluxo.

Exemplo

Selecione:

comprovante.pdf

ou

foto_documento.jpg

Passo 3 – Receber o arquivo no Builder

Após o upload, o Builder recebe automaticamente os dados do arquivo em input.file.

Exemplo:

{
  "input": {
    "file": {
      "contentType": "application/pdf",
      "name": "comprovante.pdf",
      "size": 245000,
      "source": "public",
      "type": "pdf",
      "url": "https://..."
    },
    "text": "https://..."
  }
}

Passo 4 – Utilizar os dados do arquivo

As propriedades do arquivo podem ser utilizadas em decisões, validações ou integrações.

Nome do arquivo

input.file.name

Resultado:

comprovante.pdf

Tipo do arquivo

input.file.type

Resultado:

pdf

Tamanho do arquivo

input.file.size

Resultado:

245000

URL do arquivo

input.file.url

Resultado:

https://...

Passo 5 – Validar o arquivo recebido

É possível verificar se o usuário enviou o tipo esperado.

Exemplo:

if (input.file.type === "pdf") {
   // continuar fluxo
} else {
   // solicitar novo arquivo
}

Também é possível validar tamanho, nome ou outros atributos recebidos.


Passo 6 – Processar ou encaminhar o arquivo

O arquivo enviado fica disponível por meio da URL presente em:

input.file.url

Essa URL pode ser utilizada para:

  • Enviar o arquivo para uma API externa.
  • Armazenar o arquivo em outro sistema.
  • Processar documentos.
  • Integrar com ERPs, CRMs ou sistemas internos.

Exemplo de payload enviado para um webhook:

{
  "arquivoUrl": "{{input.file.url}}",
  "nomeArquivo": "{{input.file.name}}",
  "tipoArquivo": "{{input.file.type}}"
}

Passo 7 – Tratar cancelamento do upload (opcional)

Caso a configuração utilize:

{
  "btnCancel": true,
  "btnCancelLabel": "Cancelar"
}

e clique em cancelar, o Builder recebe:

ALTU_FILE_UPLOAD_CANCEL

em:

input.text

Você pode utilizar esse valor para direcionar o fluxo para uma etapa específica.


Fluxo completo

Bot envia file_upload
        ↓
Usuário seleciona arquivo
        ↓
Widget realiza upload
        ↓
Builder recebe input.file
        ↓
Fluxo valida arquivo
        ↓
Fluxo utiliza input.file.url
        ↓
Arquivo processado ou enviado para integração externa

Ao final do processo, o arquivo enviado pelo usuário estará disponível no objeto input.file, podendo ser consultado, validado, armazenado ou encaminhado para outros sistemas através da URL disponibilizada pela plataforma.