excel-planner/docs/POWER_AUTOMATE_WEBHOOK.md
juan.pelaez 27d759ace8 Agregar integracion Excel-Planner con tablero RTC Sapian.
Puente Power Automate, servidor local del tablero HTML v7 y exportacion a Excel/TSV para monitoreo de proyectos en Microsoft Planner.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-10 13:44:38 -05:00

4 KiB

Power Automate — Webhook al cambiar tareas en Planner

Este flujo notifica al tablero cuando alguien crea o modifica una tarea en Planner. El tablero se actualiza solo entonces, sin consultar cada X segundos.

Planner (tarea creada/modificada)
        ↓
Power Automate (flujo automatico)
        ↓ POST
Python /api/webhook/planner-changed
        ↓
Servidor refresca datos + avisa a Chrome (SSE)

Requisitos

  1. python run_tablero.py corriendo en un PC de la red (siempre encendido en horario de uso).
  2. Ese PC accesible desde internet de Microsoft (red de oficina; PA no alcanza localhost).
  3. En .env:
DASHBOARD_USE_EVENTS=true
DASHBOARD_WEBHOOK_SECRET=tu_secreto_largo_aqui
DASHBOARD_WEBHOOK_DEBOUNCE_SECONDS=3
DASHBOARD_FALLBACK_POLL_SECONDS=0

Genera un secreto aleatorio (ej. Sapian-Tablero-2026-Xk9mP2).


Paso 1 — Obtener la URL del webhook

Al iniciar el servidor veras algo como:

Webhook PA: http://192.168.69.147:8765/api/webhook/planner-changed

URL completa con secreto (para Power Automate):

http://192.168.69.147:8765/api/webhook/planner-changed?secret=tu_secreto_largo_aqui

Reemplaza la IP por la de tu PC servidor (ipconfig).


Paso 2 — Crear el flujo en Power Automate

  1. make.powerautomate.comCrearFlujo automatizado en la nube.
  2. Nombre: Tablero RTC - Avisar cambios Planner.

Trigger

Busca y elige Planner:

Opcion Configuracion
Cuando se crea una tarea Grupo / Plan: tu equipo de proyectos
Cuando se modifica una tarea Mismo grupo / plan

Puedes usar dos triggers en el mismo flujo (ambos disparan la misma accion).

Si tienes varios planes, repite el trigger por plan o usa un flujo por plan.

Accion — HTTP POST al tablero

Campo Valor
Accion HTTP → POST
URI http://TU_IP:8765/api/webhook/planner-changed?secret=TU_SECRETO
Encabezados Content-Type = application/json
Cuerpo Ver JSON abajo

Cuerpo sugerido (JSON):

{
  "origen": "power_automate",
  "plan_id": "@{triggerOutputs()?['body/planId']}",
  "tarea_id": "@{triggerOutputs()?['body/id']}",
  "titulo": "@{triggerOutputs()?['body/title']}"
}

Los campos son opcionales; el servidor solo necesita recibir el POST.

  1. Guardar y Activar el flujo.

Paso 3 — Probar

  1. Inicia el tablero: python run_tablero.py
  2. Abre http://localhost:8765/ en Chrome.
  3. En Planner, edita una tarea (cambia titulo, % o estado).
  4. En la consola del servidor deberias ver:
[WEBHOOK] Cambio detectado en Planner (...)
[WEBHOOK] Datos actualizados. Clientes SSE notificados: 1
  1. El tablero se actualiza sin recargar F5.

Debounce (agrupar cambios)

Si editas varias tareas seguidas, el servidor espera 3 segundos (configurable) y hace una sola consulta a Planner. Evita saturar Power Automate.

DASHBOARD_WEBHOOK_DEBOUNCE_SECONDS=3

Respaldo opcional (polling)

Si el webhook falla temporalmente, puedes activar un respaldo lento:

DASHBOARD_FALLBACK_POLL_SECONDS=300

Eso consulta cada 5 minutos solo como red de seguridad. Con 0 (default) no hay polling.


Errores comunes

Problema Solucion
PA no llega al webhook Usa IP de red, no localhost. Abre puerto 8765 en firewall.
401 Unauthorized El secret en la URL debe coincidir con .env.
Tablero no cambia Verifica que el flujo PA este Activado y el historial muestre ejecuciones OK.
SSE desconectado Chrome reconecta solo; revisa que el servidor siga corriendo.

Flujos que necesitas en total

Flujo Funcion
Puente Planner a Python (ya existente) Responde con JSON cuando Python pide datos (POWER_AUTOMATE_URL)
Avisar cambios Planner (este) Avisa al tablero cuando hay cambios (/api/webhook/planner-changed)

Son dos flujos distintos en Power Automate.