Convertir respuestas de Microsoft Forms a PDF y enviarlas por correo con Power Automate y plantilla Word

Aprende a automatizar el envío de un PDF con cada respuesta de Microsoft Forms usando Power Automate y una plantilla de Word elegante. Incluye pasos detallados, expresiones listas para copiar, variantes con conectores de terceros, checklist, solución de errores frecuentes y recomendaciones de gobierno y cumplimiento.

Índice

Qué vas a construir

Diseñarás un flujo que, tras cada envío de un formulario, toma las respuestas, las vuelca en una plantilla de Word con tu marca, convierte el resultado a PDF y lo envía por correo al destinatario que el propio respondiente indique o que definas de forma dinámica. La ruta recomendada se basa exclusivamente en conectores nativos para maximizar estabilidad y reducir costes y mantenimiento.

Resumen de la solución

La estrategia más fiable es mapear las respuestas de Forms a una plantilla de Word con controles de contenido. Power Automate completará esos controles, generará un documento con formato profesional, lo convertirá a PDF y lo adjuntará en un correo. Este enfoque asegura un diseño consistente, encabezados y pies de página corporativos y un control total sobre el resultado final.

Preparación de la plantilla de Word

La plantilla es el corazón de la solución. Aquí es donde defines el diseño del PDF final: logotipo, encabezados, tablas, estilos y cualquier pie legal. Para que Power Automate pueda “llenarla”, debes añadir controles de contenido con nombres fáciles de reconocer.

  • Activa la pestaña Programador en Word: Opciones de Word → Personalizar cinta → Marca Programador.
  • Inserta controles de contenido de texto enriquecido o texto sin formato donde quieras colocar datos del formulario.
  • Asigna un Título claro a cada control. Ese título es el que verá Power Automate al crear el mapeo.
  • Para listas repetitivas, usa controles de sección repetitiva dentro de tablas: Power Automate soporta su población con arreglos de datos.
  • Guarda la plantilla .docx en una biblioteca de SharePoint o en OneDrive para tu área de trabajo de automatización.
Campo en el formularioTipo de preguntaControl en WordTítulo del controlNotas
Nombre completoTextoTexto sin formatoNombreUsa estilos para formato uniforme
Correo de destinoTextoTexto sin formatoCorreoDestinoSe usa también para el envío
Pregunta unoOpción múltipleTexto enriquecidoQ1Puedes poner viñetas en el Word
ComentariosParrafo largoTexto enriquecidoComentariosPermite saltos de línea

Configuración paso a paso en Power Automate

A continuación se detalla el flujo basado únicamente en conectores nativos. Los nombres de acciones pueden variar levemente según el idioma del entorno.

Disparador del formulario

Añade el disparador de Forms When a new response is submitted y selecciona el formulario. Esta acción te entregará un response Id único para recuperar el resto de datos.

Obtención de detalles

Agrega la acción Get response details apuntando al mismo formulario. Esta devuelve cada respuesta con sus etiquetas legibles, incluidas las de selección múltiple y cualquier valor de identidad si restringes el formulario a usuarios de tu organización.

Población de la plantilla

Inserta Populate a Microsoft Word template del conector Word Online. Selecciona tu plantilla .docx. La acción mostrará todos los controles de contenido por su título. Mapea cada control con el contenido dinámico de Get response details.

Consejos:

  • Si un campo es de selección múltiple y ves valores separados por punto y coma, puedes formatearlos con una expresión y volcarlos a un control de texto enriquecido en Word.
  • Para listas, planetas o filas repetidas, encapsula la sección de la tabla en un control de sección repetitiva y envía un arreglo desde Compose o desde una matriz derivada del detalle de respuesta.

Conversión a PDF

La conversión puede hacerse de dos maneras, ambas nativas:

  • Convert Word Document to PDF del conector Word Online: usa el Id de documento de la salida de Populate.
  • Convert file de OneDrive: si prefieres trabajar con contenido binario sin guardar el intermedio, primero crea un archivo .docx con Create file y luego conviértelo.

El resultado es un contenido binario que podrás adjuntar en el correo o archivar.

Envío del correo

Usa la acción Send an email del conector de Outlook para enviar el PDF. Construye el destinatario de forma dinámica.

  • Para: usa el campo “Correo de destino” del formulario o, si tu formulario recoge identidad, el correo del respondiente.
  • Asunto: personaliza con valores clave como nombre, fecha y el Id de la respuesta.
  • Adjunto: nombra el archivo y coloca el contenido de la conversión a PDF.
Nombre de archivo adjunto:
concat('Formulario_', triggerOutputs()?['body/responseId'], '.pdf')

Contenido del adjunto:
<Salida del paso Convertir a PDF>

Limpieza opcional

Si generas archivos intermedios, añade Delete file para no llenar la biblioteca con versiones temporales. Otra táctica es guardar el Word generado en una carpeta de trabajo con retención corta y registrar únicamente el PDF final en la biblioteca de negocio.

Gestión del correo de destino

Hay varias formas de determinar a quién se envía el PDF:

  • Pregunta dedicada en el formulario: “¿A qué correo envío el PDF?”.
  • Identidad del respondiente: habilita la recopilación de nombre y correo en el formulario interno.
  • Reglas de negocio: calcula la dirección a partir de la respuesta (p. ej., una selección determina el buzón).

Ejemplo de cálculo con tabla de correspondencia definida en un Compose:

// Objeto clave valor
{
  "Ventas": "ventas@contoso.com",
  "Soporte": "soporte@contoso.com",
  "Compras": "compras@contoso.com"
}

// Expresión para resolver destino, con respaldo
coalesce(
json(outputs('Compose\routing'))\[items('Apply\to\_each')?\['Departamento']],
'[contacto@contoso.com](mailto:contacto@contoso.com)'
) 

Formateo de respuestas de selección múltiple

Forms suele devolver múltiples selecciones como una lista o como un texto con separador. Para que el PDF quede pulcro, normaliza esos valores:

// Si llega como "A;B;C"
replace(outputs('Getresponsedetails')?['body/YourQuestion'], ';', ', ')

// Si gestionas un arreglo
join(body('Get\response\details')?\['rutas']?\['value'], ', ') 

En la plantilla de Word, asigna el resultado a un control de texto enriquecido para respetar el estilo.

Manejo de nombres de archivo y rutas

Evita caracteres prohibidos y añade metadatos temporales para trazabilidad:

// Nombre limpio con fecha
concat(
  'Respuesta_',
  formatDateTime(utcNow(), 'yyyyMMdd_HHmmss'),
  '_',
  replace(replace(outputs('Getresponsedetails')?['body/Nombre'], '/', '-'), '\', '-'),
  '.pdf'
)

Archivo y trazabilidad

Además de enviar el PDF por correo, es buena práctica almacenarlo y registrar metadatos:

  • Guarda el PDF en una biblioteca de SharePoint con columnas: Estado de envío, Correo destino, Id de respuesta, Fecha.
  • Escribe un registro en una lista de auditoría cuando el correo se envía correctamente.
  • Configura retención para la carpeta de trabajo o versión cero en archivos temporales.

Variante con conectores de terceros

Cuando necesitas maquetación muy avanzada o CSS, puedes construir un HTML con Compose o Create HTML table y convertirlo a PDF con un conector premium como Encodian, Plumsail, Adobe PDF Services o Muhimbi. El resto del flujo no cambia. Considera licencias y límites de uso del conector que elijas.

Alternativa manual

Si la automatización no es posible, en la pantalla de respuesta de Forms siempre puedes imprimir y guardar como PDF. No es escalable ni auditable, pero puede sacarte de un apuro como último recurso.

Patrón robusto con control de errores

Para producción, encapsula el flujo en ámbitos y maneja errores:

  1. Crea ámbitos Intento, Error y Finalización.
  2. En Intento coloca las acciones principales: obtener detalles, poblar Word, convertir, enviar.
  3. En Error agrega una acción de notificación a un buzón técnico con el detalle de la falla.
  4. En Finalización inserta la limpieza de archivos temporales y el registro de resultado.

Configura la ejecución de Error y Finalización con la condición de ejecución has failed y is skipped donde aplique.

Expresiones útiles listas para copiar

ExpresiónQué hace
formatDateTime(utcNow(),'yyyy-MM-dd HH:mm')Fecha y hora legibles para asunto o pie
coalesce(outputs('Q_Destino'), variables('DefaultMail'))Usa un valor de respaldo si falta el correo
toLower(trim(outputs('Q_Correo')))Normaliza un correo a minúsculas
replace(replace(replace(variables('Nombre'), '/', '-'), '\', '-'), ':', '-')Sanea caracteres prohibidos en nombre de archivo
if(equals(outputs('Q_SiNo'),'Sí'),'Aprobado','Pendiente')Ramifica el contenido del PDF según una respuesta
join(outputs('Q_Multi'), ', ')Une elecciones múltiples con comas
concat('Formulario_', triggerOutputs()?['body/responseId'], '.pdf')Genera nombre único por respuesta

Asuntos, cuerpo y diseño del correo

Un buen correo aumenta la tasa de apertura y minimiza reenvíos innecesarios. Ejemplos:

Asunto:
concat('Confirmación de respuesta - ', outputs('Getresponsedetails')?['body/Nombre'])

Cuerpo en HTML:
\Hola \@{outputs('Get\response\details')?\['body/Nombre']}\,\
\Adjuntamos el PDF con tu respuesta enviada el @{formatDateTime(utcNow(),'dd/MM/yyyy HH\:mm')}.\
\Gracias por tu tiempo.\ 

Si necesitas enviar a varios destinatarios, separa por punto y coma. Para copia y copia oculta utiliza los campos Cc y Bcc con la misma lógica.

Gobierno, cumplimiento y límites

  • Políticas de datos: valida si tu inquilino permite enviar a destinatarios externos y si el contenido del PDF contiene datos sensibles sujetos a DLP.
  • Límites de adjuntos: el conector de Outlook impone un tamaño máximo aproximado por adjunto. Optimiza la plantilla para que el PDF sea ligero.
  • Retención: define períodos de retención para PDFs con datos personales y documenta la base legal si aplica normativa de protección de datos.
  • Correo remitente: usa un buzón de aplicación o compartido autorizado para automatizaciones a gran escala.

Guía de solución de problemas

  • PDF vacío o con campos sin datos: verifica que los Títulos de los controles de Word coincidan con los campos expuestos por la acción de población. Un desajuste deja el control sin contenido.
  • Fallo al enviar a externos: revisa políticas de envío a dominios externos, reglas de transporte y listas de permitidos. Si no es posible, usa un buzón de salida autorizado o enruta a través de un flujo de aprobación interno.
  • Caracteres extraños en respuestas múltiples: normaliza con replace(...,';',', ') o construye el texto con join(...).
  • Adjunto supera el límite: reduce imágenes en la plantilla, usa fuentes estándar y evita incrustar gráficos pesados. Alternativa: guarda el PDF y comparte un vínculo de acceso en lugar de adjuntarlo.
  • Acceso denegado a la plantilla: concede permisos de lectura al propietario del flujo o mueve la plantilla a una biblioteca compartida de automatización.
  • Duplicados de envío: controla ejecución concurrente y registra el response Id procesado. Antes de procesar, consulta si ese Id ya existe en la lista de auditoría.

Preguntas frecuentes

Se puede enviar el PDF al propio respondiente sin preguntar su correo
Sí, si el formulario requiere inicio de sesión y almacena el correo de la persona que responde. Usa el valor Respondent’s email de Get response details.

Se pueden añadir los archivos subidos en el formulario
Las preguntas de tipo “carga de archivos” guardan ficheros en una carpeta de SharePoint o OneDrive. Puedes adjuntarlos al correo o incluir vínculos en el PDF junto a las respuestas.

Se puede enviar el PDF con firma digital
De forma nativa, el PDF no se firma. Podrías integrar un conector de firma electrónica o un paso adicional en un sistema de gestión documental con firmas.

Se puede personalizar el tema del correo
Sí, el cuerpo admite HTML. Prepara una plantilla HTML básica con tu marca y usa Compose para inyectar valores dinámicos.

Cambia algo si el formulario es anónimo
No podrás recuperar identidad del respondiente. En ese caso, añade explícitamente un campo para el correo de destino.

Se puede enviar a varios destinatarios
Sí, separa las direcciones por punto y coma en los campos Para, Cc o Bcc. Puedes construirlos con join() a partir de una matriz.

Es posible generar más de un PDF
Crea varias secciones de la plantilla o varias plantillas y repite el patrón de conversión. Envía el conjunto en un único correo o en correos independientes según tu caso.

Cómo asegurar que el PDF conserva el diseño
Evita fuentes no estándar, usa tablas para cuadrículas, fija márgenes y tamaños de imagen, y prueba en equipos diferentes para validar consistencia.

Ejemplo completo de flujo

Este es un esquema de alto nivel que puedes replicar:

Disparador: When a new response is submitted (Forms)
Acción: Get response details (Forms)
Acción: Compose CorreoDestino (coalesce(campo del form, Respondent's email, 'contacto@contoso.com'))
Acción: Populate a Microsoft Word template (Word Online) // mapear controles
Acción: Convert Word Document to PDF (Word Online) // usar Id del documento generado
Acción: Send an email // Para: salida de Compose CorreoDestino, adjuntar PDF
Acción opcional: Create file // archivar PDF en SharePoint
Acción opcional: Delete file // limpiar temporales

Recomendaciones de diseño del documento

  • Define estilos tipográficos y utilízalos en la plantilla para lograr PDFs uniformes.
  • Usa una tabla de dos columnas para pares etiqueta–valor, con la primera columna fija y la segunda flexible.
  • Coloca un pie con fecha y un identificador único para auditoría.
  • Añade un bloque de notas legales o política de privacidad cuando el contenido lo requiera.

Ampliaciones habituales

  • Ruta condicional: si la respuesta contiene un valor concreto, envía a otro buzón o añade a Cc a un supervisor.
  • Registro en base de datos: escribe los campos críticos en Dataverse o SharePoint para reportes.
  • Reintentos controlados: aplica políticas de reintento en la acción de envío y en la conversión a PDF.
  • Portal de consulta: expón un visor de PDFs con permisos por grupo, alimentado por la biblioteca donde archivaste los documentos.

Checklist de validación

  • [ ] El formulario recoge el correo de destino o usas el correo del respondiente.
  • [ ] La plantilla .docx incluye controles de contenido con títulos que coinciden con tus campos.
  • [ ] El flujo adjunta el PDF correcto y lo envía al destinatario esperado.
  • [ ] Se eliminan archivos temporales cuando corresponde.
  • [ ] Las reglas de gobierno permiten correo a externos si aplica.

Errores comunes y cómo evitarlos

  • Controles mal nombrados: si el título del control en Word no coincide, la acción no sabrá dónde colocar el texto y dejará un hueco vacío.
  • Separadores no deseados: normaliza elecciones múltiples con replace o join para evitar cadenas con punto y coma pegadas.
  • Bloqueo por políticas: algunos inquilinos bloquean adjuntos a externos. Consulta con el equipo de seguridad y usa un buzón técnico si es necesario.
  • Archivo no encontrado: si mueves la plantilla, actualiza la referencia en el flujo. Evita rutas personales; prefiere una biblioteca compartida.
  • Correo rebotado: valida el formato del correo de destino con una expresión simple antes de enviar o establece reglas de validación en el propio formulario.

Plantilla de mapeo de campos

Control en WordContenido dinámicoTransformación opcionalEjemplo
NombreRespuesta “Nombre completo”trim()“Ana Pérez”
Q1Respuesta de selecciónreplace(...,';',', ')“Opción A, Opción C”
ComentariosRespuesta largaSin cambios“Gracias por la atención…”
FechautcNow()formatDateTime()“2025-08-13 10:42”

Buenas prácticas de mantenimiento

  • Versiona la plantilla de Word para poder revertir cambios rápidamente.
  • Documenta el flujo con descripciones en cada acción y comentarios en Composes.
  • Implementa telemetría básica: cuenta de correos enviados, errores, tiempo medio de ejecución.
  • Revisa periódicamente el tamaño medio de los PDFs y optimiza imágenes o estilos si crecen más de lo esperado.

Conclusión

Con un flujo simple y una plantilla bien diseñada, puedes convertir cada envío de Microsoft Forms en un PDF con aspecto profesional y entregarlo automáticamente por correo, todo con conectores nativos. Cuando necesites maquetación extrema, apóyate en una conversión desde HTML usando conectores especializados. El enfoque recomendado —Forms, Power Automate, plantilla de Word, conversión a PDF y correo— combina fiabilidad, coste contenido y control visual total del documento final.

En síntesis: crea tu plantilla, mapea los campos, convierte a PDF y envía. Mantén una biblioteca de archivos ordenada, aplica políticas de gobierno y añade monitoreo y control de errores para operar con confianza en escenarios reales.

Índice