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:
- Clique na área de upload.
- Selecione um arquivo em seu dispositivo.
- O Widget envia automaticamente o arquivo para a plataforma.
- O upload é concluído sem necessidade de etapas adicionais no fluxo.
Exemplo
Selecione:
comprovante.pdfou
foto_documento.jpgPasso 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.nameResultado:
comprovante.pdfTipo do arquivo
input.file.typeResultado:
pdfTamanho do arquivo
input.file.sizeResultado:
245000URL do arquivo
input.file.urlResultado:
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.urlEssa 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_CANCELem:
input.textVocê 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 externaAo 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.