(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Como exportar emails com anexos para SharePoint em Power Automate

João Barros 17 de August de 2026 5 min de leitura

Este tutorial mostra como criar um fluxo em Power Automate para exportar automaticamente emails com anexos para uma biblioteca SharePoint, útil para organizar e partilhar ficheiros sem intervenção manual. A solução filtra emails por assunto, guarda o anexo e regista metadados básicos para pesquisa posterior. A ideia é reduzir trabalho repetitivo, melhorar a auditoria dos ficheiros e facilitar o acesso por colegas da equipa ou stakeholders.

Pré-requisitos

  • Conta Microsoft com acesso a Power Automate. Para cenários empresariais, verifique a licença (per-user ou per-flow) se espera processar muitos emails por dia.
  • Site e biblioteca em SharePoint Online com permissões de escrita para a conta do fluxo. Configure colunas na biblioteca como Title (Single line of text), Sender (Single line of text), Subject (Single line of text) e ReceivedTime (Date and Time).
  • Caixa de correio no Exchange Online ou Outlook.com acessível pela mesma conta usada no Power Automate. Tenha em conta limites: Outlook.com costuma aceitar anexos até 25 MB; Exchange Online pode permitir valores maiores conforme configuração do tenant (ex.: 100–150 MB).
  • Conhecimentos básicos de criação de fluxos em Power Automate (interface e triggers). É útil saber usar expressões como formatDateTime() e concat() para manipular nomes de ficheiro.

Passo 1: Criar o fluxo com o trigger "When a new email arrives (V3)"

Abra o Power Automate, escolha "Automated cloud flow" e selecione o trigger "When a new email arrives (V3)" do conector Office 365 Outlook. Configure a pasta (Inbox) e, opcionalmente, filtre por From, Subject Filter ou Importance para reduzir disparos desnecessários. Por exemplo, se só precisa de relatórios mensais, use Subject Filter: "Relatório Mensal" — isso pode reduzir o número de execuções de centenas para poucas por mês.

// Exemplos de campos do trigger
Folder: Inbox
Include Attachments: Yes
Only with Attachments: Yes
Subject Filter: Relatório Mensal

Explicação: o filtro no trigger evita custos e throttling. Se o seu fluxo for executado 1000 vezes por dia sem necessidade, rapidamente atingirá limites de utilização. Comece com filtros simples e teste durante uma semana para ajustar.

Passo 2: Verificar se o email tem anexos e iterar

Adicione uma condição simples para garantir que o email tem anexos. Normalmente o trigger fornece a propriedade Has Attachments; se não, use a ação "Get attachments" e verifique se a lista não está vazia. Em seguida, use "Apply to each" para processar cada anexo. Recomenda-se definir Concurrency Control no "Apply to each" para 1 se for importante preservar ordem ou evitar colisões na criação de ficheiros.

// Condição exemplo
Condition: @equals(triggerOutputs()?['body/HasAttachments'], true)

// Apply to each
Select: List of Attachments (do Get attachments ou body('When_a_new_email_arrives')?['Attachments'])

Exemplo prático: se receber em média 20 emails com anexos por dia e cada anexo tiver 2 MB, isso perfaz cerca de 40 MB/dia → ~1.2 GB/mês. Planeie quota e limpeza automática se for esperado volume maior (ex.: >1000 anexos/mês).

Passo 3: Guardar cada anexo em SharePoint com metadados

Dentro do "Apply to each", adicione a ação "Create file" do conector SharePoint para criar o ficheiro na biblioteca. Use dynamic content para Nome do ficheiro e ContentBytes. Depois, adicione a ação "Update file properties" para preencher colunas como "Sender", "Subject" e "ReceivedTime". Crie colunas adequadas na biblioteca antes de executar o fluxo para evitar erros.

// Create file
Site Address: https://contoso.sharepoint.com/sites/Projeto
Folder Path: /Shared Documents/AnexosEmails
File Name: @{items('Apply_to_each')?['Name']}
File Content: @{items('Apply_to_each')?['ContentBytes']}

// Update file properties
ID: ID (da Create file)
Title: @{items('Apply_to_each')?['Name']}
Sender: @{triggerOutputs()?['body/From']}
Subject: @{triggerOutputs()?['body/Subject']}
ReceivedTime: @{triggerOutputs()?['body/DateTimeReceived']}

Sugestão prática: mapear Sender para o endereço de email (ex.: joao.silva@contoso.com) num campo de texto, e adicionar uma coluna "ProcessedBy" (Choice ou Person) se várias equipas forem responsáveis pelos ficheiros.

Passo 4: Tratar nomes duplicados e erros comuns

Para evitar sobrescrever ficheiros com nomes iguais, pode prefixar o nome com a data/hora ou usar um GUID. Também pode criar uma pasta por remetente. Se encontrar erros de permissões ou limites de tamanho, capture-os com um bloco "Configure run after" e envie uma notificação por email ao administrador. Considere também registos numa lista SharePoint para auditoria de cada execução.

// Prefixo com timestamp
File Name: @{formatDateTime(utcNow(),'yyyyMMdd-HHmmss')}_@{items('Apply_to_each')?['Name']}

// Exemplo de ação após erro
Configure run after: has failed
Ação: Send an email (V2) -> Aviso de erro com corpo: @{outputs('Create_file')?['body']}

Notas sobre limites: o SharePoint Online suporta ficheiros grandes (até 250 GB por ficheiro, conforme políticas actuais), mas o Power Automate pode falhar se o anexo for demasiado grande para ser lido pelo conector. Para volumes elevados, avalie soluções ETL ou OneDrive for Business como repositório intermédio.

Verificar o resultado

Envie um email de teste com anexo e o assunto que corresponde ao filtro. Verifique a biblioteca SharePoint: o ficheiro deve existir com o nome correcto e as colunas de metadados preenchidas. Consulte o historial de execução do fluxo no Power Automate para ver detalhes e mensagens de erro se algo falhar. Um fluxo bem configurado mostra o tempo de execução (por ex.: 3–7 segundos por anexo) e o payload enviado.

Se algo não aparecer, verifique permissões da conta do conector, o caminho do Folder Path e se as colunas foram correctamente preenchidas (tipos incompatíveis causam falhas na ação "Update file properties").

Conclusão

Esta automação reduz trabalho manual e centraliza anexos importantes em SharePoint com facilidade de pesquisa. Próximos passos recomendados: adicionar tags automáticas com lógica condicional, guardar anexos em pastas por remetente, ou integrar com Power BI para dashboards que mostrem volume e origem dos anexos. Dica prática: comece com filtros simples e monitorize 7–14 dias para ajustar thresholds e evitar ruído e erros.