Envía notificaciones de FyneDesk a Microsoft Teams

Recibe un mensaje en tu canal de Teams cada vez que se crea un ticket, se comenta o cambia de estado. FyneDesk envía el evento a un webhook, y un breve flujo de Power Automate lo convierte en un mensaje de Teams. Sigue los pasos a continuación en orden: toma unos diez minutos.

¿Lo probaste y viste "enviado correctamente" pero nada en Teams? Eso es lo esperado, y casi terminaste. El "éxito" solo significa que Microsoft recibió los datos; no publica nada por sí solo. Agrega la única acción de publicación en la Parte 3 a continuación y los mensajes empezarán a aparecer.

Cómo funciona

FyneDesk envía cada evento (ticket nuevo, comentario nuevo, etc.) como un pequeño paquete de datos JSON a la URL que proporciones. Microsoft Teams no muestra ese paquete por sí solo: tu flujo de Power Automate tiene que tomar los datos y publicarlos como un mensaje.

Por eso una prueba puede decir "enviado correctamente" mientras nada aparece en Teams: Power Automate responde 202 Accepted en el instante en que recibe una solicitud, así que "éxito" solo significa que Microsoft recibió los datos. No dice nada sobre si se publicó un mensaje. Una vez que agregues el paso de publicación en la Parte 3, los mensajes aparecerán.

Antes de empezar

  • Un equipo y canal de Microsoft Teams donde quieras las notificaciones, y una cuenta de Power Automate con una licencia que pueda publicar en Teams.
  • Acceso de administrador a los webhooks de FyneDesk, en Configuración de administrador → Avanzado → Webhooks (también accesible desde Configuración → Conexiones → Webhooks).
  • Unos diez minutos. Crearás un flujo a partir de una plantilla lista para usar, pegarás su URL en FyneDesk y luego agregarás un paso que publica el mensaje.
¿Ya pegaste una URL de Power Automate en FyneDesk? Entonces ya hiciste la parte difícil. Salta a la Parte 3: solo necesitas agregar el paso de publicación.

Cómo configurarlo

Esta es la ruta exacta que usa nuestro equipo, de principio a fin. Produce un mensaje de texto simple y legible. (¿Quieres que el mensaje nombre cada tipo de evento, o prefieres una tarjeta con formato? Consulta las opciones avanzadas a continuación.)

Parte 1 — Crea el flujo a partir de una plantilla

Ve a make.powerautomate.com e inicia sesión. En el menú de la izquierda elige Plantillas, escribe webhook en el cuadro de búsqueda y abre Enviar alertas de webhook a un canal — la versión simple, no las versiones "(TEST)". Haz clic en Continuar (vuelve a iniciar sesión si te lo pide).

La pantalla de Plantillas de Power Automate con webhook escrito en el cuadro de búsqueda. Se muestran cuatro plantillas; la primera, Enviar alertas de webhook a un canal, es la que hay que abrir.

La plantilla muestra que conectará Teams → Microsoft Teams y generará una URL de webhook. Antes de hacer clic en Crear, define el Equipo y el Canal donde quieres que se publiquen las notificaciones — esto es fácil de pasar por alto, y es importante.

La pantalla de la plantilla Enviar alertas de webhook a un canal, que muestra que conectará Teams con Microsoft Teams, con la cuenta de Microsoft Teams conectada y un botón Continuar. La configuración de la plantilla con un menú desplegable de Equipo de Microsoft Teams establecido en un equipo, y un menú desplegable de Canal de Microsoft Teams, sobre un botón Crear. El valor del canal está oculto.

Elige tu Equipo y canal, luego haz clic en Crear. Cuando se abra el flujo, haz clic en Editar para empezar a editarlo.

Parte 2 — Dale la URL a FyneDesk

En el flujo, haz clic en el primer cuadro, "Cuando se recibe una solicitud de webhook de Teams," y copia la URL HTTP que muestra.

El disparador Cuando se recibe una solicitud de webhook de Teams expandido, mostrando un menú desplegable de Quién puede activar el flujo establecido en Cualquiera y un campo de URL HTTP con un botón de copiar. El valor de la URL está oculto.

Luego, en FyneDesk, ve a Configuración de administrador → Avanzado → Webhooks y haz clic en Agregar webhook:

  • Ponle un nombre que reconozcas más adelante, por ejemplo Microsoft Teams.
  • Pega la URL de Power Automate en URL del endpoint (debe ser un enlace HTTPS).
  • Deja marcado ticket.created — eso es todo lo que necesitas para empezar. (Puedes agregar más eventos después.)
  • Haz clic en Guardar.
La pantalla Agregar webhook de FyneDesk con un campo Nombre establecido en Microsoft Teams, un campo URL del endpoint para el enlace de Power Automate, una lista de eventos a enviar con ticket.created marcado, y un botón Guardar.

Parte 3 — Dile al flujo qué publicar

Este es el paso que es fácil de pasar por alto — y es exactamente por eso que una prueba puede decir "enviado" mientras nada aparece en Teams.

1. Elimina los dos pasos predefinidos. La plantilla agrega una acción Inicializar variable (a veces dos) y una condición Attachments is null. Elimina ambos — haz clic en los de cada paso, luego en Eliminar. Dejarlos es lo que provoca el error de "AdaptiveCard".

El editor de flujo mostrando el disparador Cuando se recibe una solicitud de webhook de Teams seguido de dos pasos Inicializar variable y una condición Attachments is null — los pasos que deben eliminarse.

2. Agrega la acción de publicación. Haz clic en el + debajo del disparador y elige Publicar mensaje en un chat o canal (el conector de Microsoft Teams). Configura los menús desplegables:

CampoEstablece en
Publicar comoBot de flujo
Publicar enCanal
EquipoTu equipo
CanalEl canal donde quieres las notificaciones

3. Construye el mensaje. Haz clic dentro del cuadro Mensaje, haz clic en el botón azul fx (Insertar expresión), pega la expresión de abajo exactamente, luego haz clic en Agregar.

concat('New ticket ', triggerBody()?['data']?['ticket_number'], ' - ', triggerBody()?['data']?['title'], ' | Status: ', triggerBody()?['data']?['status'], ' | Priority: ', triggerBody()?['data']?['priority'], ' | https://fynedesk.ai/tickets/', string(triggerBody()?['data']?['id']))
La acción Publicar mensaje en un chat o canal con Publicar como establecido en Bot de flujo, Publicar en establecido en Canal, un Equipo y Canal seleccionados, y el cuadro Mensaje con una sola expresión concat insertada mediante el editor de expresiones fx que se muestra a la derecha.

4. Guarda. Haz clic en Guardar (arriba a la derecha). Deberías ver "Tu flujo está listo."

Dos trampas que hacen perder horas
  • Inserta siempre la expresión con el botón fx — nunca la escribas como texto plano, y nunca la envuelvas en @{ }.
  • Si en algún momento usaste un cuadro de Copilot, borra el campo Comentario de ese paso antes de guardar. Una nota larga allí (de más de 256 caracteres) bloquea el guardado silenciosamente.

Parte 4 — Prueba

Crea o actualiza un ticket real en FyneDesk. Un mensaje aparece en tu canal de Teams en unos segundos.

Sobre el botón Enviar prueba El botón Enviar prueba de FyneDesk envía un pequeño paquete ping sin número de ticket ni título, así que el mensaje de prueba se ve escaso (en su mayoría campos en blanco). Eso es lo esperado. La verdadera comprobación es crear o comentar un ticket real y observar el canal.

Opcional: etiqueta cada evento, o publica una tarjeta

La expresión anterior siempre empieza con "New ticket". Si prefieres que el mensaje nombre el evento (nuevo comentario, cambio de estado, etc.) o prefieres una tarjeta con formato, usa una de las opciones de abajo. La configuración es idéntica — solo cambia la expresión del Mensaje.

Lo que envía FyneDesk

Tu webhook puede suscribirse a cuatro eventos. Esta es la forma de cada paquete (los valores son ejemplos).

ticket.created

{
  "event": "ticket.created",
  "timestamp": "2026-05-30T22:19:59",
  "organization": { "id": 173, "name": "SafePACS" },
  "data": {
    "id": 6381,
    "ticket_number": "INC004736",
    "title": "Printer not working",
    "description": "The 3rd floor printer is offline",
    "status": "New",
    "priority": "Medium",
    "ticket_type": "Incident",
    "source": "Email",
    "created_at": "2026-05-30T22:19:59"
  }
}

ticket.updated y ticket.status_changed usan la misma forma que la anterior, más updated_at, assigned_to y assigned_team_id.

ticket.commented — ten en cuenta que aquí los nombres de los campos son ligeramente diferentes:

{
  "event": "ticket.commented",
  "timestamp": "2026-05-30T22:19:59",
  "organization": { "id": 173, "name": "SafePACS" },
  "data": {
    "ticket_id": 6381,
    "ticket_number": "INC004736",
    "ticket_title": "Printer not working",
    "ticket_status": "New",
    "content": "Any update on this?",
    "comment_id": 8809,
    "is_internal": false
  }
}
Un solo flujo maneja los cuatro Las expresiones de abajo usan coalesce(...) para recurrir a alternativas entre los distintos nombres de campos, de modo que un solo flujo cubre cada tipo de evento. Para usarlas, marca los eventos adicionales en tu webhook de FyneDesk (Parte 2).

Opción A — Un mensaje de texto más completo

En lugar de la expresión única, escribe el diseño de abajo en el cuadro Mensaje. Todo lo que no sea un 〈marcador〉 es texto plano que escribes. Para cada 〈marcador〉, haz clic en el botón fx, pega la expresión correspondiente de la tabla, luego haz clic en Agregar.

〈eventLabel〉  〈ticketNumber〉
〈title〉

Status: 〈status〉   •   Priority: 〈priority〉

〈message〉

Open in FyneDesk: 〈link〉
MarcadorPega esto en el cuadro de expresión fx
〈eventLabel〉if(equals(triggerBody()?['event'],'ticket.created'),'🎫 New ticket',if(equals(triggerBody()?['event'],'ticket.commented'),'💬 New comment',if(equals(triggerBody()?['event'],'ticket.status_changed'),'🔄 Status changed','✏️ Ticket updated')))
〈ticketNumber〉triggerBody()?['data']?['ticket_number']
〈title〉coalesce(triggerBody()?['data']?['title'],triggerBody()?['data']?['ticket_title'],'(no title)')
〈status〉coalesce(triggerBody()?['data']?['status'],triggerBody()?['data']?['ticket_status'],'-')
〈priority〉coalesce(triggerBody()?['data']?['priority'],'-')
〈message〉coalesce(triggerBody()?['data']?['content'],triggerBody()?['data']?['description'],'')
〈link〉concat('https://fynedesk.ai/',if(equals(triggerBody()?['data']?['ticket_type'],'Service Request'),'requests/','tickets/'),string(coalesce(triggerBody()?['data']?['id'],triggerBody()?['data']?['ticket_id'])))

Opción B — Una tarjeta con formato

¿Prefieres una tarjeta? Usa la acción Publicar tarjeta en un chat o canal y pega lo siguiente en el campo Tarjeta adaptable. Usa las mismas expresiones, así que son los mismos datos en un diseño más ordenado.

{
  "type": "AdaptiveCard",
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "version": "1.2",
  "body": [
    {
      "type": "TextBlock",
      "size": "Medium",
      "weight": "Bolder",
      "text": "@{if(equals(triggerBody()?['event'],'ticket.created'),'🎫 New ticket',if(equals(triggerBody()?['event'],'ticket.commented'),'💬 New comment',if(equals(triggerBody()?['event'],'ticket.status_changed'),'🔄 Status changed','✏️ Ticket updated')))} @{triggerBody()?['data']?['ticket_number']}"
    },
    {
      "type": "TextBlock",
      "text": "@{coalesce(triggerBody()?['data']?['title'],triggerBody()?['data']?['ticket_title'],'(no title)')}",
      "wrap": true
    },
    {
      "type": "FactSet",
      "facts": [
        { "title": "Status", "value": "@{coalesce(triggerBody()?['data']?['status'],triggerBody()?['data']?['ticket_status'],'-')}" },
        { "title": "Priority", "value": "@{coalesce(triggerBody()?['data']?['priority'],'-')}" }
      ]
    },
    {
      "type": "TextBlock",
      "text": "@{coalesce(triggerBody()?['data']?['content'],triggerBody()?['data']?['description'],'')}",
      "wrap": true
    }
  ],
  "actions": [
    {
      "type": "Action.OpenUrl",
      "title": "Open in FyneDesk",
      "url": "@{concat('https://fynedesk.ai/',if(equals(triggerBody()?['data']?['ticket_type'],'Service Request'),'requests/','tickets/'),string(coalesce(triggerBody()?['data']?['id'],triggerBody()?['data']?['ticket_id'])))}"
    }
  ]
}

Solución de problemas

Los mensajes siguen sin aparecer — soluciones comunes

Recibes un error de "AdaptiveCard", o el flujo se ejecuta pero nunca publica. Los pasos predefinidos de la plantilla Inicializar variable y Attachments is null causan esto. Elimina ambos (Parte 3, paso 1) y publica tu mensaje con una sola acción Publicar mensaje en un chat o canal en su lugar.

El flujo no se guarda. Si probaste Copilot en algún momento, borra el campo Comentario de ese paso — una nota de más de 256 caracteres bloquea el guardado silenciosamente.

Nada en Teams después de una acción de ticket real. En Power Automate, abre tu flujo y revisa el Historial de ejecuciones (el registro de 28 días). Cada evento de FyneDesk debería mostrar una ejecución. Ninguna ejecución significa que el webhook de FyneDesk no apunta a la URL de este flujo, o no está suscrito a ese evento — vuelve a revisarlo en FyneDesk. Las ejecuciones muestran "Error" significa que un paso falló; haz clic en una para ver cuál. Normalmente es que el Equipo o el Canal no están seleccionados, o que el propietario del flujo carece de una licencia de Power Automate.

Se publica un mensaje, pero algunos campos están en blanco. Distintos eventos llevan distintos campos (un comentario no tiene priority, por ejemplo). Las expresiones coalesce(...) de las opciones avanzadas recurren a alternativas con elegancia, así que un campo en blanco solo significa que ese evento no incluía ese campo.

Una expresión muestra un error en rojo. Algunos tipos de disparador exponen el cuerpo como triggerOutputs()?['body'] en lugar de triggerBody(). Si triggerBody() da error, cámbialo — por ejemplo, triggerOutputs()?['body']?['data']?['ticket_number'].

Una nota sobre seguridad

Tu URL de Power Automate contiene una firma secreta (la parte sig=...) — trata toda la URL como una contraseña y no la compartas. FyneDesk también firma cada solicitud con un encabezado X-FyneDesk-Signature (HMAC-SHA256) por si alguna vez quieres verificar la autenticidad dentro del flujo, aunque eso es opcional y no se requiere para que los mensajes empiecen a fluir.

¿Prefieres cero configuración? Ahora hay una app nativa de Teams FyneDesk ahora publica las notificaciones de tickets en Teams de forma nativa — tarjetas con formato y localizadas, sin ningún flujo que construir, en los planes Pro y Business. Consulta Notificaciones de Microsoft Teams. Sigue usando esta guía cuando quieras control total sobre el formato del mensaje o lógica de enrutamiento personalizada en Power Automate.

Preguntas frecuentes

FyneDesk dice "enviado correctamente" pero nada aparece en Teams. ¿Por qué?

"Enviado correctamente" solo significa que Microsoft recibió los datos — Power Automate responde 202 Accepted en el momento en que recibe una solicitud. No significa que se haya publicado un mensaje. Teams no mostrará el JSON crudo por sí solo; tu flujo necesita una acción Publicar mensaje en un chat o canal para darle formato y publicarlo.

¿Qué plantilla de Power Automate debo usar?

Abre Plantillas, busca webhook y elige Enviar alertas de webhook a un canal — la versión simple, no las versiones "(TEST)". Genera la URL de webhook que pegas en FyneDesk y te deja elegir el Equipo y el canal donde publicar.

¿Por qué recibo un error de "AdaptiveCard", o por qué el flujo nunca publica?

La plantilla incluye dos pasos predefinidos — una acción Inicializar variable y una condición Attachments is null — y eso es lo que causa el error de AdaptiveCard. Elimina ambos, luego agrega una sola acción Publicar mensaje en un chat o canal con tu propia expresión de mensaje.

¿Puede FyneDesk publicar en Teams sin Power Automate?

Sí — FyneDesk ahora tiene una app nativa de Microsoft Teams que publica tarjetas de notificación de tickets directamente en tus canales, en los planes Pro y Business, sin ningún flujo que construir. La ruta de webhook + Power Automate de esta página sigue funcionando y resulta útil cuando quieres control total sobre el formato y el enrutamiento.

¿Qué eventos de tickets puedo enviar a Teams?

Un webhook de FyneDesk puede enviar ticket.created, ticket.updated, ticket.status_changed y ticket.commented. La configuración recomendada usa ticket.created; las expresiones avanzadas manejan los cuatro automáticamente, de modo que un solo flujo puede cubrir cada evento.