Como tratar imagens de listas do SharePoint no Power Automate
A coluna do tipo Imagem não devolve um arquivo, e sim um JSON. Como ler esse JSON, buscar o binário e anexar a imagem em um e-mail ou PDF sem o fluxo quebrar.
O problema
Você criou uma lista do SharePoint com uma coluna de Imagem, montou o fluxo no Power Automate e tentou anexar a foto num e-mail. O anexo chega corrompido, vazio, ou o fluxo estoura antes disso. O motivo é simples e quase nunca está documentado onde você procurou: a coluna de Imagem não guarda o arquivo, guarda um texto JSON apontando para ele.
Quando você adiciona uma coluna do tipo Imagem numa lista do SharePoint, o que fica gravado na coluna é um texto JSON. O arquivo em si vai para uma pasta de anexos oculta da lista.
Se você jogar o conteúdo dinâmico dessa coluna direto no campo de anexo de um e-mail, o Power Automate vai anexar o JSON, não a foto.
O que a coluna realmente contém
{
"fileName": "vistoria-frente.jpg",
"serverRelativeUrl": "/sites/Obras/Lists/Vistorias/Attachments/42/vistoria-frente.jpg",
"id": "9f4c0f1e-...",
"serverUrl": "https://suaempresa.sharepoint.com",
"type": "thumbnail",
"fieldName": "Foto"
}Os dois campos que interessam são serverUrl e serverRelativeUrl. Juntos, eles formam o endereço absoluto do arquivo.
Passo 1: transformar o texto em objeto
O conteúdo dinâmico chega como *string*. Antes de acessar qualquer propriedade, converta com json(). Numa ação Compor:
json(triggerOutputs()?['body/Foto'])?['serverRelativeUrl']if(
empty(coalesce(triggerOutputs()?['body/Foto'], '')),
'',
json(triggerOutputs()?['body/Foto'])?['serverRelativeUrl']
)Passo 2: buscar o binário
Com o caminho em mãos, use Obter conteúdo do arquivo usando o caminho (conector SharePoint). O endereço do site vai no campo *Endereço do Site*; o caminho relativo vai no segundo campo.
Passo 3: anexar
A saída dessa ação já é o binário. No Enviar um email (V2), em Anexos:
- Nome:
json(triggerOutputs()?['body/Foto'])?['fileName'] - Conteúdo: a saída de *Obter conteúdo do arquivo*
Quando há várias imagens
Uma coluna de Imagem guarda uma foto só. Para várias, o caminho é usar anexos do item e percorrer com *Obter anexos* + *Obter conteúdo do anexo*, montando um array de anexos com Selecionar em vez de um laço Aplicar a cada. Assim fica mais rápido e não estoura o limite de ações do fluxo.
{
"Name": "@item()?['DisplayName']",
"ContentBytes": "@body('Obter_conteúdo_do_anexo')"
}O que levar disso
O erro não estava no Power Automate. Estava em assumir que uma coluna chamada *Imagem* guarda uma imagem. Antes de automatizar, vale sempre olhar o que o sistema de origem grava de verdade. Quase todo fluxo que quebra em produção quebra por causa de um formato de dado que ninguém conferiu.
Tecnologias e temas
Materiais
- TemplateFluxo de exemplo (.zip para importar)Solução exportada do Power Automate, pronta para importar no seu ambienteem breve
- DocumentoReferência oficial: colunas de imagem em listas
Conteúdos relacionados
Estruturando dados antes de criar um agente de IA
Agente bom com dado bagunçado continua errando, só que com mais confiança. O checklist que aplicamos antes de escrever a primeira linha de um agente.
Power Apps × Power Automate × Copilot Studio: qual usar em cada caso
As três ferramentas resolvem problemas diferentes e são vendidas como se fossem intercambiáveis. Um critério de decisão em uma pergunta, e o que acontece quando você escolhe errado.