Este guia explica como criar um fluxo no Power Automate que recebe eventos de webhook do Fluid, filtra-os com base no status da tarefa e envia uma notificação formatada para um canal do Microsoft Teams.
Nota: O Power Automate usa autenticação SAS. Portanto, para integração via webhook, escolha "Shared Secret Signature Validation" e insira um valor para o segredo. O Power Automate irá então substituir e usar sua própria autenticação SAS internamente.
Visão Geral
Esta configuração permite que você:
Receba eventos de webhook do Fluid
Analise o payload JSON recebido
Aplique lógica condicional (ex.: enviar atualizações somente quando o status = "Concluído")
Envie uma notificação rica com Adaptive Card para o Microsoft Teams
Pré-requisitos
Acesso ao Microsoft Power Automate
Permissão para criar fluxos
Acesso ao canal do Microsoft Teams de destino
Uma integração de webhook configurada no Fluid para enviar dados ao Power Automate - Como Configurar a Integração de Webhooks com os Quadros do Fluid
Etapa 1: Criar o Fluxo
Clique em Criar
Selecione Fluxo de nuvem instantâneo
Insira um nome (ex.: Teams Webhook Filter)
Escolha o gatilho:
Quando uma solicitação de webhook do Teams for recebida

Clique em Criar
Certifique-se de que o gatilho esteja definido como Qualquer pessoa pode acionar
Etapa 2: Analisar o JSON Recebido
Clique em + Nova etapa
Pesquise e selecione Analisar JSON
Em Conteúdo, selecione Corpo em Inserir conteúdo dinâmico
Clique em Usar payload de exemplo para gerar esquema
Cole o payload JSON de exemplo fornecido
{
"fields": {
"assignee": null,
"attachmentCount": 0,
"boardCategory": 0,
"boardId": 0,
"boardGuid": "2c8f0918-4f6b-4f5e-9dee-f12e582bbdef",
"boardTitle": "webhook",
"businessValue": 0,
"contentType": "Process",
"createDate": "2026-03-30T17:30:48.0000000Z",
"description": "This is a test payload generated by Fluid to verify the webhook endpoint is reachable and authentication is configured correctly.",
"descriptionHtml": "This is a test payload generated by Fluid to verify the webhook endpoint is reachable and authentication is configured correctly.",
"dueDate": "2026-04-06T17:30:48.0000000Z",
"endDate": "2026-04-06T17:30:48.0000000Z",
"impediment": 0,
"isClosed": false,
"modifiedDate": "2026-03-30T17:30:48.0000000Z",
"points": 1,
"parentGuid": "672aea66-22a5-40d6-b658-f2f6b20d12e6",
"priority": "Medium",
"principalGuid": "2c8f0918-4f6b-4f5e-9dee-f12e582bbdef",
"ragStatus": "Green",
"shortCode": "TEST-1",
"startDate": "2026-03-30T17:30:48.0000000Z",
"status": "Not Started",
"statusCode": 1,
"taskType": "Task",
"title": "[Test] Webhook connectivity test",
"titleRichText": "[Test] Webhook connectivity test",
"titleHtml": "<p>[Test] Webhook connectivity test</p>"
},
"id": 99999,
"methods": [
{
"type": "PermaLink",
"httpMethod": "GET",
"url": "https://localhost:62199/Action/EditFull/21ed8132-f904-48f2-a682-eaf615d6d273"
},
{
"type": "Update",
"httpMethod": "PUT",
"url": "https://localhost:62199/rest/api/action/99999",
"description": "Update Action",
"payload": {
"fields": {
"description": "<Description>",
"title": "<Title>"
},
"attachments": null,
"customProperties": [],
"checkList": null
}
},
{
"type": "Delete",
"httpMethod": "DELETE",
"url": "https://localhost:62199/rest/api/action/99999"
}
],
"related": {},
"guid": "21ed8132-f904-48f2-a682-eaf615d6d273",
"url": "https://localhost:62199/rest/api/action/99999"
}Clique em Concluído
Etapa 3: Adicionar uma Condição (Lógica de Filtro)
Clique em + Nova etapa
Selecione Condição
Configure:
Valor à esquerda: fields → Inserir Conteúdo Dinâmico → Status do Corpo
Operador: é igual a
Valor à direita: ex. Concluído
💡 Você pode modificar esta condição para filtrar por qualquer campo (ex.: prioridade, quadro, tipo de tarefa) disponível no esquema.
Etapa 4: Enviar Notificação para o Microsoft Teams
Dentro do ramo Se sim:
Clique em Adicionar uma ação
Pesquise por Microsoft Teams
Selecione Postar cartão em um chat ou canal
Configure:
Equipe → Selecione sua Equipe
Canal → Selecione seu Canal
Adaptive Card → Cole o JSON do seu Adaptive Card
Exemplo
{
"type": "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.4",
"body": [
{
"type": "ColumnSet",
"columns": [
{
"type": "Column",
"width": "auto",
"items": [
{
"type": "TextBlock",
"text": "🔔",
"size": "Large"
}
],
"verticalContentAlignment": "Center"
},
{
"type": "Column",
"width": "stretch",
"items": [
{
"type": "TextBlock",
"text": "New Task",
"weight": "Bolder",
"size": "Medium",
"wrap": true
},
{
"type": "TextBlock",
"text": "@{triggerBody()?['fields']?['title']}",
"wrap": true,
"size": "Default",
"weight": "Bolder",
"color": "Accent"
}
],
"verticalContentAlignment": "Center"
}
]
},
{
"type": "ColumnSet",
"separator": true,
"spacing": "Medium",
"columns": [
{
"type": "Column",
"width": "stretch",
"items": [
{
"type": "FactSet",
"facts": [
{
"title": "📋 Board",
"value": "@{triggerBody()?['fields']?['boardTitle']}"
},
{
"title": "🏷️ Type",
"value": "@{triggerBody()?['fields']?['taskType']}"
},
{
"title": "📌 Status",
"value": "@{triggerBody()?['fields']?['status']}"
},
{
"title": "🎯 Priority",
"value": "@{triggerBody()?['fields']?['priority']}"
},
{
"title": "🚦 RAG",
"value": "@{triggerBody()?['fields']?['ragStatus']}"
},
{
"title": "🆔 Code",
"value": "@{triggerBody()?['fields']?['shortCode']}"
}
]
}
]
}
]
},
{
"type": "TextBlock",
"text": "📝 Description",
"weight": "Bolder",
"spacing": "Medium",
"separator": true
},
{
"type": "TextBlock",
"text": "@{triggerBody()?['fields']?['description']}",
"wrap": true,
"spacing": "Small"
}
],
"actions": [
{
"type": "Action.OpenUrl",
"title": "🔗 View in Fluid",
"url": "@{triggerBody()?['methods']?[0]?['url'] }",
"style": "positive"
}
]
}Este cartão pode incluir valores dinâmicos como:
Título da tarefa
"@{triggerBody()?['fields']?['title']}"Status
"@{triggerBody()?['fields']?['status']}"Prioridade
"@{triggerBody()?['fields']?['priority']}"Datas
@{formatDateTime(triggerBody()?['fields']?['startDate'], 'dd MMM yyyy')}Link direto para o Fluid
triggerBody()?['methods']?[0]?['url']Tipo de evento
triggerOutputs()?['headers']?['X-Fluid-Event']
Saiba mais sobre adaptive cards:
Etapa 5: Deixe o campo "Se não" Vazio
Nenhuma ação é necessária no ramo Se não.
Se a condição não for atendida, nenhuma notificação será enviada.
Etapa 6: Salvar e Testar
Clique em Salvar
Acione um evento de teste no Fluid
Confirme que:
O fluxo é executado com sucesso
Uma notificação do Teams é enviada somente quando a condição é atendida