Como podemos ajudar?

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.

Este artigo resolveu sua dúvida?
Últimos artigos visitados