Cómo procesar automáticamente con Power Automate los PDF de pedidos y facturas recibidos por correo — diseño de guardado, clasificación, notificación y lectura
· Actualizado el: · Go Komura · Power Automate, Flujo en la nube, Outlook, SharePoint, AI Builder, Automatización de procesos empresariales, Correo electrónico, Office, Consultoría técnica
«Guardar cada mañana en una carpeta compartida el PDF del pedido adjunto al correo de recepción de pedidos y, después, transcribirlo al libro de pedidos de Excel». No es raro encontrar empresas donde un responsable dedica 30 minutos diarios a esta tarea manual. De hecho, entre las consultas sobre Power Automate, «queremos automatizar el procesamiento de formularios que llegan por correo» es uno de los temas más frecuentes.
A primera vista parece una automatización sencilla, pero al construirla de verdad resulta ser un terreno lleno de trampas menores. Se terminan guardando incluso las imágenes de la firma, y la carpeta queda llena de basura. El flujo se ejecuta con correos que no debería procesar y guarda cosas por error. Por algún motivo, solo los correos con adjuntos grandes no se procesan. En este artículo repasamos, en orden, el flujo básico desde el trigger de recepción hasta el guardado, la clasificación y la notificación; las trampas habituales en la práctica; la decisión de si conviene llegar hasta la lectura con AI Builder (automatizar la transcripción); y, por último, los límites de la propia forma de recibir los datos mediante adjuntos de correo.
1. Conclusión por adelantado
- El trigger «Cuando llega un nuevo correo (V3)» del conector de Office 365 Outlook incluye condiciones de filtrado como carpeta, remitente, filtro de asunto o «solo con archivos adjuntos». En la medida de lo posible, estas condiciones deben especificarse en el propio trigger y no en una acción de condición posterior.12
- El punto de recepción debe ser un buzón compartido (por ejemplo, order@el-dominio-de-su-empresa) y no la bandeja de entrada personal de un responsable. Existe un trigger dedicado, «Cuando llega un nuevo correo a un buzón compartido (V2)», que se puede usar siempre que la cuenta de conexión tenga permiso de acceso a ese buzón compartido.3
- Con la condición «con archivos adjuntos» por sí sola, también se capturan como adjuntos las imágenes en línea, como firmas o logotipos. La medida básica es filtrar usando la propiedad
Is Inlinedel metadato del archivo adjunto junto con la extensión del nombre de archivo.4 - Resulta manejable usar como destino de guardado una biblioteca de documentos de SharePoint, escribir con la acción «Crear archivo» y notificar el guardado completado por Teams o correo electrónico.5
- Si se quiere llegar hasta la lectura (automatizar la transcripción), se utiliza el procesamiento de documentos de AI Builder, pero requiere créditos de consumo (capacidad) adicionales, y es imprescindible diseñar una verificación humana de los resultados extraídos. Como el esquema de licencias viene cambiando desde 2025, antes de implementarlo hay que confirmar la información más reciente.67
- Para los adjuntos que llegan en un ZIP protegido con contraseña (PPAP), la medida esencial no es intentar descomprimirlos dentro del flujo, sino cambiar la propia forma de recibirlos.
2. Delimitación del alcance ── ¿hasta dónde automatizar los «formularios que llegan como adjuntos de correo»?
Antes de nada, conviene aclarar la forma de trabajo a la que se dirige este artículo.
- Un cliente o proveedor envía por correo, como adjunto, un PDF de pedido, factura, albarán u otro documento.
- El responsable lo abre y lo guarda en un lugar fijo dentro de una carpeta compartida.
- Transcribe el contenido (nombre del cliente, importe, artículos, etc.) a Excel o a un sistema de gestión.
- Avisa al responsable o a las personas implicadas de que «ha llegado un pedido».
Existen distintos niveles en la forma de recibir pedidos: fax, adjunto de correo, formulario web, EDI. El adjunto de correo es más fácil de convertir en datos que el fax, pero se queda en una posición intermedia, por debajo de una integración de datos estructurada como el EDI o la factura digital. Este panorama general se explica en el artículo «¿Qué es el EDI? Cómo facilita los pedidos entre empresas ── del fax, el correo y la entrada manual a la integración de datos».
Dicho esto, si se divide el alcance que puede lograrse mediante automatización manteniendo la operativa de adjuntos de correo, se obtienen las siguientes tres etapas.
| Etapa | Qué se hace | Efecto | Dificultad y coste |
|---|---|---|---|
| (1) Guardado, clasificación y notificación | Guardar automáticamente el PDF adjunto en una carpeta determinada de SharePoint y notificar por Teams/correo | Desaparece la tarea diaria de «abrir, guardar y avisar». Se eliminan los olvidos de guardado y los destinos equivocados | Baja. Se puede construir combinando conectores estándar |
| (2) Lectura (automatizar la transcripción) | Extraer con AI Builder el nombre del cliente, el importe, los artículos, etc. del PDF y escribirlos en una lista o un sistema | Se reduce el trabajo de transcripción. Sin embargo, la precisión de extracción no es del 100 % y se necesita un mecanismo de verificación humana | Media. Requiere capacidad de AI Builder (créditos) y diseñar el manejo de excepciones |
| (3) Cambiar la propia forma de recibir los datos | Migrar a un formulario web de pedidos, EDI o factura digital, para recibir datos estructurados desde el principio | El propio proceso de lectura deja de ser necesario | Alta. Requiere coordinación con los clientes y proveedores, y lleva tiempo |
El terreno principal de este artículo son (1) y (2). Recomendamos avanzar de forma que, primero, (1) por sí solo ya aporte un efecto diario suficiente, y que (2) se decida evaluando su relación coste-beneficio. (3) se trata en el capítulo 7.
3. Flujo básico ── del trigger de recepción al guardado y la notificación
La forma básica es «trigger de recepción → filtrado → bucle por cada adjunto → guardado en SharePoint → notificación».
flowchart TD
Start([Cuando llega un nuevo correo a un<br/>buzón compartido V2<br/>order@dominio-de-la-empresa]) --> Filter[Filtrado por condiciones del trigger<br/>remitente, filtro de asunto, solo con adjuntos]
Filter --> Each[Apply to each<br/>bucle por cada archivo adjunto]
Each --> Check{Is Inline = false<br/>y extensión .pdf ?}
Check -- No --> Skip[No procesar<br/>excluir imágenes de firma, etc.]
Check -- Sí --> Save[SharePoint: Crear archivo<br/>en la carpeta cliente/año-mes<br/>con nombre que incluye fecha y hora de recepción]
Save --> Notify[Publicar en canal de Teams o notificar por correo<br/>incluir enlace de guardado, remitente y asunto]
Notify --> End([Completado])
Save -. si falla .-> Err[Notificación de error<br/>avisar al administrador del fallo]
Las principales acciones y puntos de diseño son los siguientes.
| Paso | Trigger/acción utilizada | Punto de diseño |
|---|---|---|
| Detección de recepción | Cuando llega un nuevo correo (V3) / Cuando llega un nuevo correo a un buzón compartido (V2) | Active a la vez «Solo con archivos adjuntos (Only with Attachments)» e «Incluir archivos adjuntos (Include Attachments)». La primera omite los correos sin adjuntos; la segunda incluye el contenido de los adjuntos en la salida del trigger: son funciones distintas (para una configuración alternativa cuando hay muchos adjuntos grandes, véase el final del apartado 4.1)1 |
| Filtrado | From / Filtro de asunto (Subject Filter) del trigger | Especifique en el propio trigger la dirección del remitente o una cadena fija del asunto (como «pedido»). Si se deja pasar todo por el trigger y se descarta después en una condición, se consume el número de ejecuciones incluso con correos que no interesan2 |
| Selección de adjuntos | Apply to each + condición (Is Inline / extensión) | Para cada archivo adjunto, procese solo aquellos en los que Is Inline sea false y el nombre del archivo termine en .pdf (los detalles se explican en el siguiente capítulo)4 |
| Guardado | SharePoint «Crear archivo (Create file)» | Especifique una biblioteca de documentos existente y suba el archivo. Decida la carpeta con una regla como «cliente/año-mes» e incluya la fecha y hora de recepción en el nombre del archivo para que sea único5 |
| Notificación | Teams «Publicar un mensaje en el chat o canal» / Outlook «Enviar un correo electrónico (V2)» | Incluya el enlace al destino de guardado, el remitente y el asunto. El objetivo de la notificación es «poder enterarse sin tener que ir a mirar», por lo que conviene concentrarla en el canal del equipo responsable8 |
3.1 Valores concretos que introducir en el trigger
Las condiciones de filtrado del trigger no se muestran de forma predeterminada. Al abrir «Mostrar opciones avanzadas (Show advanced options)» en la tarjeta del trigger, aparecen los elementos siguientes. Los presentamos junto con los valores reales que hay que introducir.12
| Elemento (nombre en inglés) | Ejemplo de valor a introducir | Nota |
|---|---|---|
| Dirección del buzón original | order@dominio-de-la-empresa |
Solo cuando se usa «Cuando llega un nuevo correo a un buzón compartido (V2)». La cuenta de conexión necesita permiso de acceso a ese buzón compartido3 |
| Carpeta (Folder) | Inbox |
La bandeja de entrada. Si las reglas de organización de Outlook mueven los correos a una subcarpeta, indique esa carpeta |
| Remitente (From) | La dirección del cliente o proveedor. Con varias, separadas por punto y coma | Si el remitente es siempre el mismo cliente o proveedor, este es el filtro más eficaz |
| Filtro de asunto (Subject Filter) | pedido |
Una cadena fija que siempre aparece en el asunto. Si varía según el cliente o proveedor, conviene dividir el flujo o no especificarlo |
| Solo con archivos adjuntos (Only with Attachments) | Sí | El flujo no se ejecuta con correos sin adjuntos |
| Incluir archivos adjuntos (Include Attachments) | Sí | Incluye el contenido de los adjuntos en la salida del trigger. En entornos con muchos adjuntos grandes también se puede poner en «No» y obtenerlos individualmente más adelante (véase el final del apartado 4.1) |
«Solo con archivos adjuntos» e «Incluir archivos adjuntos» tienen nombres parecidos pero funciones distintas, y si no activa ambas, el flujo básico no funciona. Con solo la primera, no se obtiene el contenido de los adjuntos; con solo la segunda, el flujo se inicia incluso con correos sin adjuntos.
Cuando la carpeta de destino se determina de forma dinámica, como «cliente/año-mes», no olvide tampoco garantizar desde el propio flujo que esa carpeta exista. En el primer correo de un cliente nuevo o en el primero de cada mes, la carpeta de destino todavía no existe. El conector de SharePoint tiene la acción «Crear nueva carpeta (Create new folder)», que puede crear de una vez toda la ruta de carpetas5, así que, si se incorpora un paso que prepare la carpeta antes de «Crear archivo», se evita que el guardado se atasque en este punto.
Elegir SharePoint como destino de guardado, en lugar de un servidor de archivos tradicional, se debe a que se puede escribir directamente desde el flujo de nube, se puede notificar con un enlace y resulta más fácil combinarlo después con AI Builder o con la búsqueda. Si existen circunstancias que obligan a usar únicamente un servidor de archivos local, existe la opción de pasar por una puerta de enlace de datos local, pero la configuración se vuelve más pesada, así que, de ser posible, recomendamos trasladar también el destino de guardado a SharePoint.
El enfoque para el manejo de errores de todo el flujo (notificación al fallar, revisión del historial de ejecuciones) se explica en detalle en el artículo «Automatizar procesos empresariales con Power Automate ── cuándo usar flujos de nube o de escritorio y diseño del manejo de errores».
4. Trampas habituales y cómo evitarlas
El primer flujo funcional se puede crear en medio día. El problema empieza a partir de ahí: que resista el uso real depende de si se han neutralizado las siguientes trampas.
4.1 Las imágenes de firma o logotipo se guardan como «archivo adjunto»
Es la consulta más habitual. Las imágenes de firma o el logotipo de la empresa incrustados en el cuerpo del correo se tratan, a nivel de datos, como adjuntos en línea, así que si se guarda solo con la condición «con archivos adjuntos», se terminan guardando en masa archivos como image001.png junto con el PDF que realmente interesa.
En el conector de Office 365 Outlook, los metadatos de los archivos adjuntos que devuelven el trigger y las acciones incluyen Id, Name, Content Type, Size e Is Inline, y estos siempre se pueden obtener, independientemente de la configuración de «Incluir archivos adjuntos». Los adjuntos con Is Inline en true son los adjuntos en línea.4
La medida se plantea en dos pasos.
- Dentro de Apply to each, dejar pasar solo los que tengan
Is Inlineen false mediante una acción de condición. - Además, comprobar que el nombre del archivo termine en
.pdf(salvo en los casos en que el cliente o proveedor pegue el formulario como imagen en el cuerpo, esto acota el objetivo con casi total seguridad).
La acción de condición se configura con «Cumplir todas (And)» y dos líneas.
| Lado izquierdo | Operador | Lado derecho |
|---|---|---|
Contenido dinámico Is Inline |
Es igual a | false |
Expresión: endsWith(toLower(items('Apply_to_each')?['name']), '.pdf') |
Es igual a | true |
items('Apply_to_each') es la expresión que apunta al elemento actual del Apply to each. Si ha cambiado el nombre del bucle, use ese nombre sustituyendo los espacios por guiones bajos. Como la extensión a veces llega en mayúsculas, es más seguro aplicar toLower antes de comparar.
Si habitualmente se reciben adjuntos de gran tamaño o en gran número, también se puede optar por desactivar «Incluir archivos adjuntos» en el trigger, seleccionar el objetivo mediante los metadatos y, después, obtener individualmente solo los adjuntos necesarios con la acción «Obtener archivo adjunto (V2)».1 Los metadatos del adjunto (Is Inline, nombre) se pueden obtener con independencia de la configuración de «Incluir archivos adjuntos», así que la lógica de selección es la misma en ambas configuraciones.4 Como esto permite mantener pequeños los datos que transporta el trigger, considere cambiar a esta forma cuando el flujo crezca y el manejo de adjuntos se vuelva pesado.
4.2 Filtrado de los correos objetivo ── dirección dedicada + buzón compartido
A una bandeja de entrada personal llegan también, en gran cantidad, correos que no son pedidos. Por mucho que se afine el filtrado por remitente o asunto, si el cliente o proveedor cambia la forma de redactar el correo, algo se escapará. La medida de fondo consiste en preparar una dirección dedicada a la recepción de pedidos y pedir a los clientes y proveedores que envíen ahí.
En este caso, el punto de recepción debe ser un buzón compartido, por dos motivos.
- Se puede separar la puerta de entrada de la recepción del buzón personal del responsable. Esto evita el problema de que, al cambiar de puesto o dejar la empresa el responsable, desaparezca el punto de recepción de correo entero, o que la persona que lo sustituya no pueda ver los correos anteriores.
- El propio buzón compartido no necesita una licencia individual; basta con que el usuario que accede a él tenga licencia.9
Como trigger se usa «Cuando llega un nuevo correo a un buzón compartido (V2)». Como requisito previo, la cuenta usada en la conexión del flujo debe tener permiso de acceso a ese buzón compartido. Tenga en cuenta que, desde que se concede el permiso hasta que se refleja en la plataforma, pueden pasar unas 2 horas, y que una dirección de un grupo de Microsoft 365 no se puede designar como buzón compartido.3
Sin embargo, tenga presente que usar un buzón compartido no elimina la dependencia de una persona concreta en el flujo. La conexión del flujo (la autenticación con Outlook) sigue vinculada a la cuenta del usuario que la creó; una conexión compartida solo se puede usar dentro de ese flujo, y ningún otro propietario puede cambiar las credenciales de la conexión creada por otro propietario.10 Es decir, si la cuenta usada en la conexión queda deshabilitada al causar baja su titular, el flujo dejará de funcionar aunque el punto de recepción sea un buzón compartido. Cree la conexión, en la medida de lo posible, con una cuenta operativa que se pueda mantener al margen de las bajas previstas, y configure además coautores, de modo que, llegado el caso, otro propietario pueda sustituir la conexión por la suya propia y mantener el flujo en funcionamiento.
4.3 Sobrescritura y duplicación de archivos con el mismo nombre
Un adjunto llamado «注文書.pdf» (pedido.pdf) llega repetidas veces desde varios clientes o proveedores distintos. Si se guarda con el nombre tal como se recibió, se producirán inevitablemente colisiones de nombres. El nombre de archivo al guardar debe construirse de forma mecánica a partir de la información del correo recibido, para que sea único. En la práctica, un nombre como «fecha y hora de recepción (hasta los segundos) + dominio del remitente + nombre de archivo original» evita casi por completo las colisiones y, además, facilita más adelante el cruce con el correo original.
En el campo de nombre de archivo de «Crear archivo» de SharePoint, introduzca la siguiente expresión.
concat(
convertFromUtc(triggerOutputs()?['body/receivedDateTime'], 'Tokyo Standard Time', 'yyyyMMdd-HHmmss'),
'_',
last(split(triggerOutputs()?['body/from'], '@')),
'_',
items('Apply_to_each')?['name']
)
El significado de las tres partes es el siguiente.
- Fecha y hora de recepción: como
receivedDateTimese devuelve en UTC, si solo se formatea conformatDateTimese produce un desfase de 9 horas respecto a la hora de Japón, y los correos de la tarde-noche que cruzan la fecha terminan con el nombre de archivo del día anterior. Lo seguro es pasar el ID de zona horaria de WindowsTokyo Standard Timecomo segundo argumento deconvertFromUtcy especificar el formato en el tercer argumento. La propia fecha y hora de recepción también se puede seleccionar desde el contenido dinámico. - Dominio del remitente: se divide antes y después de
@consplit, y se toma el lado posterior (el dominio) conlast. Se usa el dominio en lugar del nombre para mostrar del remitente porque este último puede contener espacios o símbolos que dificultan su manejo. - Nombre de archivo original: es el nombre del archivo adjunto actual dentro de Apply to each. Como ya incluye la extensión, no hace falta añadir
.pdf.
Tenga en cuenta que en los nombres de archivo de SharePoint no se pueden usar los caracteres \ / : * ? " < > |. Si se mezcla en el nombre de archivo el asunto o el nombre para mostrar del remitente, el guardado falla en cuanto aparece alguno de estos caracteres. Como en el ejemplo anterior, es más seguro construirlo solo con valores cuyo formato quede determinado de forma mecánica.
También hay situaciones en las que se procesa el mismo correo dos veces, por ejemplo al volver a ejecutar manualmente el flujo como prueba tras una modificación. Con un nombrado basado en la fecha y hora de recepción, en ese caso el destino de escritura es solo el archivo con el mismo nombre procedente del mismo correo, así que no se corre el riesgo de arrastrar y borrar el archivo de otro cliente o proveedor. Sin embargo, la segunda escritura con el mismo nombre sí genera una colisión en sí misma (tanto si se convierte en sobrescritura como si falla, el contenido es el mismo), así que, si se desea detectar la propia duplicación del procesamiento, incluir el ID de mensaje que viene en la salida del trigger, ya sea como columna de la lista de destino o dentro del nombre de archivo, permite cotejar de forma mecánica si ya se procesó o no.1
4.4 Detección de correos perdidos ── ¿se puede notar cuando el trigger no se activó?
Es algo que suele pasarse por alto, pero el trigger de recepción no es infalible. Entre las limitaciones que la documentación indica explícitamente están los siguientes casos.
- El trigger omite los correos cuyo tamaño total supera el límite que sea menor entre el configurado por el administrador de Exchange y 50 MB. También puede omitir correos protegidos (cifrados) o correos cuyo cuerpo o adjuntos estén dañados.1
- Cuando llegan muchos correos a la vez, en raras ocasiones el trigger puede perder algún correo debido a limitaciones del propio sistema.11
Es decir, puede darse el caso de correos que no «fallaron en el flujo», sino que directamente «nunca llegaron a ejecutarse». Aunque solo se vigilen las notificaciones de error, no se puede detectar este tipo de pérdida. Como medida, lo realista es mantener, además de las notificaciones de éxito y fallo del flujo, una operativa en la que una persona revise periódicamente la bandeja de entrada (haciendo que el flujo mueva a otra carpeta los correos ya procesados, de modo que quede claro que lo que permanece en la bandeja de entrada está sin procesar).
Para este movimiento de carpeta se usa la acción «Mover correo electrónico (Move email (V2))» del conector de Office 365 Outlook.12 Se coloca justo después de la notificación, moviendo el correo a una carpeta «Procesados» dentro del buzón compartido. También se podría indicar que un correo está procesado con «Marcar correo electrónico como leído o no leído (Mark as read or unread (V3))», pero un correo marcado como leído sigue permaneciendo en la bandeja de entrada. Si se quiere crear un estado que se distinga de un vistazo —«lo que queda en la bandeja de entrada está sin procesar»—, mover el correo es más fiable. El destino del movimiento debe ser una carpeta distinta de la que vigila el trigger (normalmente la bandeja de entrada). Si se mueve a la carpeta vigilada, el propio movimiento puede tratarse como correo nuevo y dejar margen para una reejecución. El límite de tamaño del propio correo lo determina la configuración de Exchange Online: de forma predeterminada, 36 MB para recepción, y el administrador puede cambiarlo en un rango de 1 a 150 MB. Para los clientes o proveedores con los que se intercambian adjuntos de gran tamaño, considere otra forma de entrega, como los enlaces de archivos compartidos que se mencionan más adelante.13
5. ¿Llegar hasta la lectura (automatizar la transcripción)? ── El procesamiento de documentos de AI Builder
Una vez que el guardado y la notificación empiezan a funcionar, lo siguiente que se suele querer es «automatizar también la lectura del contenido del PDF y su escritura en el libro de registro». Para esto se usa el procesamiento de documentos de AI Builder.
5.1 Modelo preconstruido y modelo personalizado
AI Builder dispone de un modelo de procesamiento de facturas preconstruido para facturas. Permite extraer directamente, sin entrenar el modelo, campos comunes como el número de factura, la fecha de factura, la fecha de vencimiento del pago, el nombre del cliente o proveedor, el importe total o las líneas de detalle, y entre los idiomas admitidos se incluye el japonés. La entrada es en JPEG/PNG/PDF, con un límite de tamaño de archivo de 20 MB.14
Por otro lado, para formularios cuyo diseño varía según la empresa, como los pedidos, o cuando en una factura se quieren extraer campos que van más allá de los estándar (por ejemplo, un número de gestión interno), se crea un modelo personalizado de procesamiento de documentos. Se elige entre tres tipos —«documento de plantilla fija», «documento general» y «factura (extensión del modelo preconstruido)»—, se agrupan como colección los formularios con el mismo diseño, se sube un mínimo de 5 documentos de muestra por colección y se entrena etiquetando los campos y las tablas que se desean extraer.15
La incorporación al flujo es sencilla en ambos casos: basta con pasar el contenido del archivo PDF guardado en SharePoint a la acción «Extraer información de la factura», si es el modelo de procesamiento de facturas, o a la acción «Procesar documento», si es el modelo personalizado.168
5.2 Precisión y manejo de excepciones ── derivar a verificación humana según la puntuación de confianza
Lo más importante en la automatización de la lectura es diseñar partiendo de la base de que «la extracción puede equivocarse». A cada campo de los resultados de extracción de AI Builder se le asigna una puntuación de confianza entre 0 y 1. En la práctica, esta puntuación se usa para ramificar el flujo.16
- Puntuación alta (por ejemplo, 0,9 o más) → se escribe directamente en el libro de registro, y la notificación indica «procesado automáticamente».
- Puntuación baja → se escribe en el libro de registro como «pendiente de revisión» y se notifica al responsable que «revise este campo».
El 0,9 anterior es solo un ejemplo de redacción y no es un valor válido para cualquier formulario. El umbral debe determinarse con los propios formularios de la empresa, siguiendo estos pasos.
- Ejecutarlo una vez sin umbral. Prepare de 20 a 50 formularios con el mismo cliente o proveedor y el mismo diseño que en producción, y haga que se lean todos sin introducir ninguna ramificación. Exporte tal cual los valores extraídos y las puntuaciones de confianza a una lista de SharePoint o a Excel.
- Cotejarlo con la respuesta correcta. Marque a simple vista si cada resultado es correcto o incorrecto, uno por uno, y observe, para cada campo, «la puntuación máxima entre las extracciones incorrectas». El límite inferior del umbral debe quedar un poco por encima de ese valor.
- Variarlo según el campo. Para campos como el importe total o el número de factura, cuyo error repercute aguas abajo, fije un umbral más alto; para campos como las observaciones, que se pueden corregir después, fíjelo más bajo. Si se intenta juzgar todos los campos con un único umbral, siempre habrá algún punto incómodo.
- Revisarlo tras entrar en operación. Registre el «número de casos derivados a revisión» y el «número de casos que realmente necesitaron corrección», y revíselos una vez por trimestre. El ajuste consiste en añadir muestras de entrenamiento si casi todo se deriva a revisión, o en subir el umbral si apenas hay casos derivados a revisión pero se cuelan errores.
La propia documentación de Microsoft presenta un ejemplo de configuración que combina el modelo preconstruido y el modelo personalizado, haciendo que, cuando la puntuación de confianza es baja, se recurra al otro modelo como alternativa (fallback).14 Con un diseño del tipo «si se lee todo de forma automática, mejor que mejor; una persona solo revisa lo que no se pudo leer», no hace falta perseguir el 100 % de precisión y el listón para implementarlo baja considerablemente.
5.3 Licencias y créditos ── un punto que hay que confirmar de antemano sin falta
Las acciones de AI Builder consumen capacidad de tipo consumible cada vez que se ejecutan. Tradicionalmente esta capacidad se ha llamado créditos de AI Builder, y se obtenía tanto mediante el complemento de capacidad de AI Builder (1 millón de créditos al mes por complemento) como en pequeñas cantidades incluidas en licencias Premium como Power Automate Premium (5000 créditos con Power Automate Premium). Los créditos se agrupan por inquilino (tenant) y se asignan a los entornos para su uso. Si el entorno no tiene capacidad, el flujo se detiene con errores como NoCapacity.6
Sin embargo, en el momento de escribir este artículo (julio de 2026) este esquema está en transición. En octubre de 2025 se anunció el fin gradual de los créditos de AI Builder: los créditos semilla incluidos en las licencias Premium terminan el 1 de noviembre de 2026, y los clientes nuevos ya no pueden comprar el complemento de capacidad de AI Builder, sino que compran créditos de Copilot. Las funciones de AI Builder en sí se pueden seguir usando con créditos de Copilot, pero en los flujos de nube el orden de prioridad es consumir primero los créditos de AI Builder y, cuando se agotan, consumir créditos de Copilot.717
En resumen: «si se quiere llegar hasta la lectura, hay un coste adicional, y ese esquema está cambiando justo en julio de 2026». Si está leyendo esto después de la fecha de terminación de los créditos semilla (1 de noviembre de 2026), es muy probable que las condiciones hayan cambiado, así que confirme siempre el esquema vigente en la fuente original. A continuación, una tabla con criterios orientativos para decidir la implementación.
| Situación | Decisión |
|---|---|
| El número mensual de formularios es bajo y la transcripción se termina en minutos | Deje de lado la lectura; basta con llegar hasta el guardado y la notificación (capítulo 3) |
| Predominan las facturas, con un volumen alto y una carga de transcripción elevada | Empiece a probar con el modelo de procesamiento de facturas preconstruido. No requiere entrenamiento y permite verificar la precisión de inmediato14 |
| Predominan formularios con diseño propio, como los pedidos | Use el modelo personalizado de procesamiento de documentos. Tenga en cuenta que, cuantos más tipos de diseño haya, mayor será el esfuerzo de entrenamiento y mantenimiento15 |
| Se quiere enviar el resultado de la extracción directamente al sistema central sin supervisión | No se recomienda. Incluya siempre una ramificación de verificación humana basada en la puntuación de confianza |
| Hay muchos clientes o proveedores y el número de diseños de formulario sigue creciendo | Antes de desgastarse con el mantenimiento de la lectura, considere cambiar la propia forma de recibir los datos (capítulo 7) |
6. Cuando llegan ZIP protegidos con contraseña (PPAP) ── no es algo que deba resolver el flujo
«El adjunto llega en un ZIP con contraseña, ¿se puede descomprimir con el flujo?» es también una pregunta clásica. La conclusión, de entrada, es que no lo intente resolver dentro del flujo.
La operativa de un ZIP con contraseña se basa en que la contraseña llega en otro correo y una persona la lee y la escribe manualmente para abrirlo. Tanto el momento del aviso como el formato de la contraseña quedan a criterio de la otra parte, y no es un mecanismo pensado para el procesamiento automático. Si se intenta forzar la automatización de este punto, se termina cargando con mecanismos arriesgados que en realidad no habría que asumir, como analizar el correo de la contraseña o almacenar la propia contraseña.
En primer lugar, el PPAP tiene poco valor como medida de seguridad desde el momento en que envía la llave y el paquete por el mismo canal, y es una práctica cuyo mayor perjuicio es dejar pasar sin control el análisis antivirus del lado receptor. Este problema y las alternativas (como los enlaces de archivos compartidos) se explican en detalle en el artículo «¿Por qué el PPAP es una mala práctica en la seguridad del correo electrónico? ¿Cuál es la forma correcta?». En el contexto de la automatización, los formularios que llegan mediante PPAP encabezan la «lista de objetivos con los que hay que negociar un cambio en la forma de recibirlos». Incluso una solicitud a un cliente o proveedor del tipo «por motivos del procesamiento automático, preferimos recibir un PDF en texto claro adjunto o un enlace de archivo compartido en lugar de un ZIP con contraseña» resulta hoy más fácil de aceptar que antes, gracias también a la tendencia a abandonar el PPAP.
7. Más allá ── los límites de la operativa por adjuntos de correo y la migración por etapas
Una vez resueltos el guardado, la notificación y la lectura, lo que queda son los límites de la propia práctica de intercambiar formularios como adjuntos de correo.
- Hay tantos diseños de formulario como clientes y proveedores, y el mantenimiento del modelo de lectura se vuelve más pesado cuantos más clientes y proveedores haya.
- Como la precisión de lectura nunca llega al 100 %, el proceso de verificación humana permanece indefinidamente.
- Los correos a veces no llegan (por exceso de tamaño o por ser marcados como spam), así que la vigilancia de correos perdidos también sigue siendo necesaria.
Nada de esto desaparece por mucho que se pula el diseño en Power Automate. Mientras el punto de partida del proceso siga siendo «enviar datos no estructurados (un PDF) dirigidos a una persona», la lectura y la verificación seguirán siendo un gasto necesario. Precisamente por eso, a medio plazo merece la pena plantearse una migración por etapas hacia recibir datos estructurados desde el principio: un formulario web de pedidos, EDI o, en el caso de las facturas, la factura digital (Peppol / JP PINT).
La migración no tiene por qué ser un cambio en bloque. Es realista una operativa doble: ir migrando a la nueva forma de recepción a los clientes y proveedores que estén dispuestos, en orden, mientras el resto se sigue recibiendo por adjunto de correo con procesamiento automático. El diseño de esta migración por etapas se explica en «Cómo migrar los pedidos por fax a la web ── diseño del período de operativa doble y la práctica de la migración por etapas», y el mecanismo de la factura digital se explica en «¿Qué es la factura digital? ── en qué se diferencia de «enviar el PDF de la factura por correo»». Consideramos que el flujo de este artículo debe entenderse como el mecanismo que sostiene, durante ese período de transición, la parte que se sigue recibiendo por adjunto de correo.
8. Resumen
El procesamiento de los PDF de pedidos y facturas que llegan por correo es, dentro de los temas de automatización de Power Automate, de los más introductorios, pero está claro qué puntos hay que cubrir para que resista el uso real.
Primero, el punto de recepción debe ser una dirección dedicada en un buzón compartido, y las condiciones de filtrado deben concentrarse en el trigger. La selección de adjuntos se hace en dos pasos, con Is Inline y la extensión, para excluir las imágenes de firma. El nombre de archivo se hace único basándose en la fecha y hora de recepción, y, partiendo de que existen casos que el trigger omite (más de 50 MB, correos cifrados, recepción masiva simultánea), se mantiene una operativa que permita notar los correos perdidos. Hasta aquí, la primera etapa.
Si se quiere llegar hasta la lectura, use el modelo preconstruido o el modelo personalizado de AI Builder junto con una ramificación por puntuación de confianza, y confirme de antemano el coste de los créditos de consumo y el esquema de licencias, que está en transición. Y no intente resolver los ZIP con contraseña dentro del flujo: conviértalos en objeto de negociación para cambiar la forma de recibirlos. Cuando empiecen a verse los límites del propio formato de adjunto de correo, considere una migración por etapas hacia formularios web, EDI o factura digital. Siguiendo este orden, es un terreno que se puede ir desarrollando sin grandes retrocesos.
Artículos relacionados
- Automatizar procesos empresariales con Power Automate ── cuándo usar flujos de nube o de escritorio y diseño del manejo de errores
- ¿Por qué el PPAP es una mala práctica en la seguridad del correo electrónico? ¿Cuál es la forma correcta?
- ¿Qué es el EDI? Cómo facilita los pedidos entre empresas ── del fax, el correo y la entrada manual a la integración de datos
- Cómo migrar los pedidos por fax a la web ── diseño del período de operativa doble y la práctica de la migración por etapas
- ¿Qué es la factura digital? ── en qué se diferencia de «enviar el PDF de la factura por correo»
Áreas de consultoría relacionadas
En KomuraSoft LLC atendemos consultas sobre el diseño de automatización del procesamiento de correo y formularios con Power Automate, así como sobre la migración por etapas hacia la digitalización de los procesos de pedidos.
Referencias
-
Microsoft Learn, Office 365 Outlook - Connectors. Sobre los parámetros del trigger «Cuando llega un nuevo correo (V3)» (Folder / From / Only with Attachments / Include Attachments / Subject Filter, entre otros) y sobre que el trigger omite los correos que superan el límite configurado por el administrador de Exchange o 50 MB (el que sea menor), así como los correos protegidos. ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
Microsoft Learn, Trigger a cloud flow based on email properties. Sobre las propiedades de filtrado disponibles en el trigger «Cuando llega un nuevo correo (V3)» y sobre que, si las propiedades no se comprueban en el propio trigger sino en una rama condicional posterior, se consume el número de ejecuciones incluso con correos que no interesan. ↩ ↩2 ↩3
-
Microsoft Learn, Office 365 Outlook - Connectors (Working with attachments). Sobre que los metadatos del archivo adjunto (Id / Name / Content Type / Size / Is Inline) siempre se devuelven con independencia de la configuración de «Incluir archivos adjuntos», y sobre que la propiedad
Is Inlinepermite distinguir los adjuntos en línea. ↩ ↩2 ↩3 ↩4 -
Microsoft Learn, Microsoft SharePoint Connector in Power Automate. Sobre que la acción «Crear archivo (Create file)» del conector de SharePoint sube un archivo a una biblioteca de documentos existente, y que la acción «Crear nueva carpeta (Create new folder)» crea una carpeta o una ruta de carpetas. ↩ ↩2 ↩3
-
Microsoft Learn, Licensing and AI Builder credits. Sobre las vías de obtención de créditos de AI Builder (1 millón de créditos con el complemento de capacidad, 5000 créditos incluidos con Power Automate Premium), el agrupamiento por inquilino y la asignación a entornos, los errores como
NoCapacitycuando falta capacidad, y sobre que los créditos semilla terminan el 1 de noviembre de 2026. ↩ ↩2 -
Microsoft Learn, End of AI Builder credits. Sobre el fin gradual de los créditos de AI Builder anunciado en octubre de 2025, y sobre que las funciones de AI Builder en sí se pueden seguir usando con créditos de Copilot. ↩ ↩2
-
Microsoft Learn, Use a document processing model in Power Automate. Sobre el uso de la acción «Procesar documento» en un flujo de nube y sobre un ejemplo de configuración que notifica los resultados de la extracción con la acción «Publicar un mensaje en el chat o canal» de Teams. ↩ ↩2
-
Microsoft Learn, Share a cloud flow. Sobre que la conexión de un flujo queda vinculada al usuario que la creó, que una conexión compartida solo se puede usar dentro de ese flujo, que un coautor no puede cambiar las credenciales de una conexión creada por otro propietario, y sobre cómo añadir coautores. ↩
-
Microsoft Learn, Office 365 Outlook - Connectors (Known issues and limitations with triggers). Sobre que, cuando llegan muchos correos a la vez, el trigger de correo puede, en raras ocasiones, perder algún correo debido a limitaciones del propio sistema. ↩
-
Microsoft Learn, Office 365 Outlook - Connectors (Actions). Sobre que los nombres actuales de las acciones son «Move email (V2)» y «Mark as read or unread (V3)» (y que las versiones anteriores se distinguen como obsoletas). ↩
-
Microsoft Learn, Exchange Online limits. Sobre el tamaño máximo de mensaje predeterminado de un buzón (35 MB de envío / 36 MB de recepción) y sobre que el administrador puede establecer un límite personalizado en un rango de 1 a 150 MB. ↩
-
Microsoft Learn, Invoice processing prebuilt AI model. Sobre los campos de extracción del modelo de procesamiento de facturas preconstruido, los idiomas admitidos (incluido el japonés), los formatos de entrada (JPEG/PNG/PDF, hasta 20 MB), y un ejemplo de configuración que recurre a un modelo personalizado cuando la puntuación de confianza de un campo es baja. ↩ ↩2 ↩3
-
Microsoft Learn, Create a document processing custom model. Sobre los tipos de documento del modelo personalizado de procesamiento de documentos (documento de plantilla fija / documento general / factura), sobre la necesidad de un mínimo de 5 documentos de muestra por colección, y sobre la definición de los campos y tablas a extraer. ↩ ↩2
-
Microsoft Learn, Use the invoice processing prebuilt model in Power Automate. Sobre el uso de la acción «Extraer información de la factura» en un flujo de nube y sobre que cada campo devuelve una puntuación de confianza entre 0 y 1. ↩ ↩2
-
Microsoft Learn, Power Platform licensing FAQs. Sobre que las funciones de AI Builder en los flujos de nube consumen primero los créditos de AI Builder y, cuando no hay o se agotan, consumen créditos de Copilot. ↩
Artículos relacionados
Artículos recientes con las mismas etiquetas para profundizar en temas cercanos.
Diseñar flujos programados en Power Automate — procesamiento de fin de mes, determinación de días hábiles y recordatorios
Guía práctica para automatizar procesos periódicos en Power Automate: la trampa de la zona horaria UTC, el cálculo de fechas, los días há...
Automatizar procesos empresariales con Power Automate — Cuándo usar el flujo en la nube o el de escritorio, y cómo diseñar el manejo de errores
Diferencias entre el flujo en la nube y el de escritorio de Power Automate, cuándo usar PowerShell o VBA, licencias, manejo de errores, e...
Power Automate y PowerShell + Programador de tareas: cuándo usar cada uno ── conectar las herramientas de automatización sin mezclarlas, cada una en su lugar
Para TI de pymes con PowerShell y Power Automate a la vez: diferencias, tabla de decisión, integración vía SharePoint y aspectos de licen...
Leer con AI Builder los pedidos que llegan por FAX — un diseño realista para reducir la transcripción manual, y sus límites
Explica cómo reducir con AI Builder la transcripción manual de pedidos por FAX: PDF desde el multifuncional, modelo personalizado, revisi...
Crear un flujo de aprobación con Power Automate — Digitalizar solicitudes y autorizaciones en papel y correo
Guía práctica para digitalizar con Power Automate las solicitudes y aprobaciones en papel o Excel adjunto a correo: tipos de acción de ap...
Temas relacionados
Estas páginas sitúan el tema en un contexto más amplio de servicios y decisiones.
Temas técnicos de Windows
Portal sobre desarrollo de Windows, investigación de fallos y aprovechamiento de activos existentes.
Servicios relacionados con este tema
El artículo está directamente relacionado con los siguientes servicios.
Reutilización y migración de activos existentes
Reutilización y migración de activos COM / ActiveX / OCX y dependencias de 32 o 64 bits.
Preguntas frecuentes
Preguntas habituales en las consultas sobre el tema del artículo.
- ¿Se puede iniciar un flujo de Power Automate a partir de un correo que llega a un buzón compartido?
- Sí, es posible. El conector de Office 365 Outlook incluye un trigger dedicado llamado «Cuando llega un nuevo correo a un buzón compartido (V2)», con el que se puede activar un flujo a partir de los correos que llegan a la dirección compartida usada para recibir pedidos. Como requisito, la cuenta utilizada en la conexión debe tener permiso de acceso a ese buzón compartido. Tenga en cuenta que, justo después de conceder el permiso, puede tardar unas 2 horas en aplicarse, y que una dirección de un grupo de Microsoft 365 no se puede designar como buzón compartido. Recibir los correos en un buzón compartido, en lugar de en la bandeja de entrada personal de un responsable, facilita el traspaso del punto de recepción, pero la conexión del flujo en sí queda vinculada a la cuenta del usuario que lo creó, por lo que también hay que decidir de antemano cómo gestionar esa cuenta de conexión y configurar coautores.
- ¿Por qué las imágenes de la firma del correo terminan guardadas como archivos adjuntos?
- Es porque las imágenes de firma o el logotipo incrustados en el cuerpo del correo se tratan, a nivel de datos, como un tipo de archivo adjunto (adjunto en línea, inline attachment). Si se procesa únicamente con la condición «con archivos adjuntos», se terminan guardando también los PNG o GIF de la firma junto con el PDF que realmente interesa. Como medida, se utiliza en la rama condicional el metadato Is Inline que el conector de Office 365 Outlook devuelve para cada archivo adjunto, procesando solo aquellos en los que Is Inline es false. Si además se comprueba que la extensión del nombre de archivo es .pdf, se puede acotar el objetivo con mayor fiabilidad.
- ¿Qué se necesita para automatizar también la lectura del PDF con AI Builder?
- AI Builder cuenta con un modelo de procesamiento de facturas preconstruido que extrae de las facturas el número de factura, la fecha, el importe total y otros datos, y que también admite facturas en japonés. Para formularios con un diseño propio, como los pedidos, se utiliza un modelo personalizado de procesamiento de documentos, que se entrena con documentos de muestra (un mínimo de 5 por cada diseño). Para ejecutarlo se necesita una capacidad de consumo, como los créditos de AI Builder, y si el entorno no tiene capacidad asignada, el flujo se detiene con un error. Además, en octubre de 2025 se anunció el fin gradual de los créditos de AI Builder, que en adelante migrarán a los créditos de Copilot, así que en una implementación nueva conviene comprobar el esquema de licencias más reciente.
- ¿Se puede procesar con el flujo un adjunto que llega en un ZIP con contraseña (PPAP)?
- Un ZIP protegido con contraseña es fundamentalmente incompatible con el procesamiento automático, y no conviene diseñar el flujo bajo el supuesto de descomprimirlo dentro de él. Esto se debe a que el propio funcionamiento —la contraseña llega en otro correo y solo se puede abrir después de que una persona la lea— no está pensado para el procesamiento automático. Es posible guardar el ZIP tal cual en un lugar donde una persona pueda abrirlo, pero eso no conduce a automatizar la transcripción ni la lectura. En la práctica, la medida sustancial es negociar con la contraparte para que deje de usar PPAP, es decir, cambiar la propia forma de recibir los archivos. Dado que PPAP también presenta numerosos problemas de seguridad, puede resultar útil como argumento de negociación el artículo que resume sus inconvenientes.
Perfil del autor
Página de presentación del autor del artículo.
Go Komura
Representante de KomuraSoft LLC
Especializado en desarrollo de software para Windows, consultoría técnica e investigación de fallos, sobre todo en proyectos con sistemas existentes y errores difíciles de reproducir.