Plantilla de carta de reclamación en Power Automate: Genera una carta en PDF para cada asunto listo en SharePoint con PDF4me

PDF4me Generate Document Single es una acción de Power Automate que combina datos JSON en una plantilla Word y devuelve un documento finalizado. Al conectarse a una lista de SharePoint de asuntos legales, convierte una plantilla de carta de reclamación en una carta en formato PDF para cada asunto marcado como listo, archiva cada carta en la carpeta correspondiente y actualiza el estado del asunto.
Si buscas una plantilla de carta de reclamación, la primera página pertenece a centros de autoayuda judicial, sitios web de asistencia jurídica y bibliotecas de formularios. California Courts, WashingtonLawHelp y LawDepot explican cómo redactar una carta, y lo hacen bien. Ninguno de ellos aborda el caso de un bufete que envía treinta cartas a la semana, donde la carta es la parte fácil, pero la gestión administrativa es complicada: copiar al cliente, a la parte contraria y el importe del expediente, guardar el PDF en la carpeta correspondiente y recordar marcar el caso como resuelto. Este flujo de trabajo se encarga de esa gestión administrativa y deja la redacción donde corresponde: en un documento Word que los abogados controlan.
Marca un asunto como Ready for Demand Letter en SharePoint y ejecuta el flujo. Cada asunto marcado como Listo genera una carta de reclamación en formato PDF en su propia carpeta y con un nuevo estado. El equipo recibe un correo electrónico indicando cuántas cartas se enviaron. La carta es un documento Word con seis marcadores de posición, que PDF4me rellena a partir del registro del asunto. Son once acciones y se tarda aproximadamente ocho segundos en procesar un lote de dos asuntos.
Preguntas y respuestas basadas en el porqué
¿Por qué crear la carta a partir de una plantilla Word? Porque quienes redactan el texto ya trabajan con Word. Un abogado puede modificar un párrafo, actualizar el membrete o añadir una cláusula sin alterar el flujo del documento, y los marcadores de posición permanecen intactos. PDF4me lee el archivo .docx directamente, por lo que no es necesario reconstruir nada en HTML previamente.
¿Por qué filtrar por una columna de estado en lugar de activar la consulta para cada nuevo caso? Porque un caso no está listo para recibir una carta de reclamación en el momento de su creación. La columna de estado permite al asistente legal determinar cuándo se han completado los datos, y la consulta selecciona precisamente esas filas. Cambiar el estado inmediatamente después de la presentación evita que el mismo caso reciba una segunda carta en la siguiente ejecución.
¿Por qué asignar una carpeta a cada asunto? Porque así es como se organizan los archivos de asuntos. La ruta de la carpeta utiliza el ID del asunto, por lo que MAT-1001.pdf se ubica en DemandLetters/MAT-1001 junto con el resto de los archivos del caso, y cualquier persona que abra el asunto encontrará la carta sin necesidad de buscarla.
¿Por qué contar las letras en una variable? Porque el correo electrónico de resumen debe informar sobre el resultado de esta ejecución. DocIndex aumenta en uno al final de cada pasada, después de que se archiva la carta y se cambia su estado, por lo que el número en el asunto indica la cantidad de cartas que se procesaron correctamente.
Lo que obtendrás
Entrada: una lista de SharePoint con los asuntos, cada uno con un ID de asunto, cliente, fecha del incidente, parte contraria, importe de los daños, abogado y estado. Salida: una carta de reclamación en formato PDF por cada asunto marcado como listo, en /Shared Documents/DemandLetters/<matter ID>, el estado del asunto se cambia a Demand Letter Generated y se envía un correo electrónico de resumen para el lote.

MAT-1001.pdf en su propia carpeta de asunto, escrita por la cuenta de flujo.

Resumen de un lote de un solo asunto. El recuento proviene de la variable DocIndex.
Lo que necesitas
- Power Automate. Power Automate abierto. Un flujo en la nube con conectores estándar. SharePoint, Office 365 Outlook y PDF4me no requieren un plan premium.
- Clave API de PDF4me. Obtenga su clave API. Este flujo utiliza una conexión de PDF4me, PDF4me PDF.
- Una lista de asuntos de SharePoint. La lista capturada se llama Matters. Su columna Title contiene el ID del asunto y se renombra como MatterID en la vista de lista, y hay columnas para ClientName, IncidentDate, OpposingParty, DamagesAmount y Attorney, además de una columna de selección Status con valores como Borrador, Ready for Demand Letter y Demand Letter Generated.
- Una biblioteca de documentos para la plantilla y las cartas. La plantilla se encuentra en Shared Documents y las cartas en Shared Documents/DemandLetters.
- Plantilla de carta de reclamación. demand-letter-template.docx. Seis marcadores de posición en la sintaxis de la plantilla PDF4me. El texto es un ejemplo, no asesoramiento legal, por lo que le recomendamos que consulte con un abogado antes de enviarlo a cualquier persona.
- La carta terminada. mat-1001-demand-letter.pdf. Exactamente lo que el flujo produjo para el asunto MAT-1001.
Primero, obtén las muestras. Sube la plantilla a Shared Documents como DemandLetterTemplate.docx, agrega un asunto con el estado Ready for Demand Letter y ejecuta el flujo. Luego, coloca tu carta junto a la finalizada. Si los nombres, el monto y el ID del asunto coinciden, la asignación es correcta.
El flujo de un vistazo
- Manually trigger a flow se inicia un lote.
- Get items lee la lista
Matterscon el estado Filter QueryStatus eq 'Ready for Demand Letter'. - Select cada mapa para asignarlo a los seis campos de la plantilla.
- Get file content lee
/Shared Documents/DemandLetterTemplate.docx. - Initialize variable crea
DocIndexcomo un entero establecido en0. - Apply to each bucle sobre los asuntos de Get items.
- PDF - Generate Document (Single) (PDF4me PDF) rellena la plantilla con Output Type
PDF. - Create file (SharePoint) guarda la carta en
/Shared Documents/DemandLetters/<matter ID>. - Update item (SharePoint) establece Status en
Demand Letter Generated. - Increment variable suma
1aDocIndex. - Send an email (V2) (Office 365 Outlook) envía el resumen del lote.
Descripción general del flujo completo

Un lote de dos asuntos. El bucle tardó siete segundos en ambas pasadas, y la escritura en SharePoint es el paso más lento dentro del mismo, con dos segundos por letra.
Paso 1: ¿Cómo se inicia un lote de cartas de reclamación bajo demanda?
Flujo hasta ahora: nada todavía, este es el detonante.
Un sistema de activación manual se ajusta a la forma en que se envían las cartas en la práctica: alguien revisa los asuntos marcados como listos y luego presiona el botón.
- Crea un Instant cloud flow y selecciona Manually trigger a flow.
- Déjelo sin introducir datos. La lista misma decide qué asuntos se incluyen en el lote.
Configuración del disparador manual

No se requiere ninguna entrada. La selección se realiza en el siguiente paso, en la columna Status.
Consejo: El resto del flujo no depende de quién lo inició. Cambia el activador por Recurrence y el mismo flujo se convertirá en un lote nocturno que procesará todo lo que se marcó como listo durante el día.
Paso 2: ¿Cómo seleccionar únicamente los asuntos que están listos para una carta de reclamación?
Flujo hasta ahora: Manually trigger a flow.
Get items realiza la selección, por lo que el flujo nunca tiene que comprobar el estado por sí mismo.
- Agregar SharePoint > Get items.
- Configurar:
- Site Address:
PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints - List Name:
Matters
- Site Address:
- Abra Advanced parameters y configure lo siguiente:
- Filter Query:
Status eq 'Ready for Demand Letter' - Order By:
Title asc
- Filter Query:
Get items: configuración

El valor del filtro coincide exactamente, incluyendo las mayúsculas. Al ordenar por Title las letras aparecen en orden de identificación del asunto.
Consejo: Get items un máximo de 100 filas de resultados, a menos que aumente Top Count o active la paginación en la configuración de la acción. Esto es suficiente para un procesamiento diario, pero conviene saberlo antes de la primera ejecución de fin de mes.
Paso 3: ¿Qué representa la acción Select?
Flujo hasta ahora: Manually trigger a flow más Get items.
Select convierte cada fila del asunto en exactamente los seis campos que reconoce la plantilla, lo que facilita la lectura del contrato entre la lista y la plantilla.
- Agregar Data Operation > Select.
- Desde: el token
body/valuede Get items. - Mapa: una fila por campo de plantilla, como se muestra en la tabla a continuación.
Select: configuración

Cinco campos conservan los nombres de sus columnas. El sexto, MatterID, proviene de la columna Title de la lista.
Cómo cada marcador de posición obtiene su valor
| Marcador de posición en la plantilla | Clave JSON | Columna de SharePoint | En la carta MAT-1001 |
|---|---|---|---|
<<[ClientName]>> | ClientName | ClientName | Sarah Chen |
<<[IncidentDate]>> | IncidentDate | IncidentDate | 06/14/2026 00:00:00 |
<<[OpposingParty]>> | OpposingParty | OpposingParty | Meridian Logistics Inc. |
<<[DamagesAmount]>> | DamagesAmount | DamagesAmount | 18500 |
<<[Attorney]>> | Attorney | Attorney | David Park |
<<[MatterID]>> | MatterID | Title | MAT-1001 |
Es importante saberlo antes de copiar este paso. En el flujo capturado, el bucle lee directamente Get items y la carta toma sus valores del bucle, por lo que ninguna operación posterior utiliza la salida Select. Esto es intencional en un aspecto: Update item necesita ID de cada asunto, y Select lo omite. Para controlar el bucle desde Select, agregue ID al mapa y dirija Apply to each a la salida Select.
Paso 4: ¿De dónde lee el flujo la plantilla Word?
Flujo hasta ahora: Manually trigger a flow más Get items más Select.
La plantilla es un archivo Word común y corriente en la biblioteca de documentos. Al leerlo aquí, antes del bucle, se recupera una vez por lote en lugar de una vez por asunto.
- Agregar SharePoint > Get file content.
- Configurar:
- Site Address:
PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints - File Identifier:
/Shared Documents/DemandLetterTemplate.docx - Infer content type (avanzado):
Yes
- Site Address:
Get file content: configuración

Edita la plantilla en SharePoint y el siguiente lote utilizará la nueva redacción, sin que se produzca ningún cambio en el flujo.
La plantilla contiene seis marcadores de posición con la sintaxis de PDF4me: <<[Attorney]>>, <<[IncidentDate]>>, <<[OpposingParty]>>, <<[MatterID]>>, <<[ClientName]>> y <<[DamagesAmount]>>. El membrete, la línea de referencia y el texto que los rodea son contenido Word sin formato. La descripción general de la sintaxis de la plantilla Word explica todas las demás funciones de un marcador de posición.
Paso 5: ¿Por qué el flujo necesita una variable de contador?
Flujo hasta ahora: todo a través de Get file content.
El correo electrónico de resumen necesita un número, y una variable es la forma más sencilla de obtenerlo fuera del bucle.
- Agregar Variables > Initialize variable.
- Configurar:
- Nombre:
DocIndex - Tipo:
Integer - Valor:
0
- Nombre:
Initialize variable: configuración

Initialize variable debe ubicarse en el nivel superior del flujo. Power Automate no lo permite dentro de un bucle.
Paso 6: ¿Cómo se genera una carta de reclamación por cada asunto?
Flujo hasta ahora: todo a través de Initialize variable.
Este es el bucle que realiza el trabajo real. En cada pasada se construye una carta, se archiva, se actualiza el asunto y se cuenta.
- Agregar Control > Apply to each.
- Select an output from previous steps: el token
body/valuede Get items.
Apply to each: configuración

Cuatro acciones dentro del bucle, y eso sigue siendo cierto tanto para un asunto como para cincuenta.
Ahora, la primera acción dentro del bucle.
- Agregar PDF - Generate Document (Single) desde la conexión PDF4me PDF.
- Configurar:
- Template File Type:
Docx (PDF4me Template Syntax) - Template File Name:
DemandLetterTemplate.docx - Template File Data: una expresión
base64()sobre la salida Get file content, por ejemplobase64(body('Get_file_content')) - Document Data Type:
Json - Document Data File: dejar vacío
- Document Data Text: el JSON que aparece a continuación, generado a partir del asunto actual
- Output Type:
PDF - Keep Pdf template Editable:
No
- Template File Type:
Los tokens en Document Data Text se resuelven en estas expresiones:
{
"ClientName": "@{items('Apply_to_each')?['ClientName']}",
"IncidentDate": "@{items('Apply_to_each')?['IncidentDate']}",
"OpposingParty": "@{items('Apply_to_each')?['OpposingParty']}",
"DamagesAmount": "@{items('Apply_to_each')?['DamagesAmount']}",
"Attorney": "@{items('Apply_to_each')?['Attorney']}",
"MatterID": "@{items('Apply_to_each')?['Title']}"
}
Generate Document (Single): configuración

Las claves JSON deben coincidir exactamente con los nombres de los marcadores de posición. MatterID es la única cuyo valor proviene de una columna con un nombre diferente.
Corrija la fecha y el importe antes de la primera carta real. La carta capturada imprime la fecha del incidente como 14/06/2026 00:00:00 y los daños como 18.500 $, porque ninguno de los valores tiene formato. Nadie envía una carta de reclamación con una marca de tiempo, así que añada un formato al marcador de posición de fecha en la plantilla y formatee el importe en el flujo, como se muestra a continuación.
Para la fecha, asigne al marcador de posición una cadena de formato en la plantilla Word, como se describe en el formato de las plantillas Word:
<<[IncidentDate]:"MMMM dd, yyyy">>imprime 14 de junio de 2026.
Para el importe, formatéelo en Document Data Text antes de que llegue a la plantilla. Esto supone que DamagesAmount es una columna de tipo Número o Moneda:
formatNumber(items('Apply_to_each')?['DamagesAmount'], 'N0', 'en-US')produce 18.500.
formatNumber y las demás funciones utilizadas en esta publicación están documentadas en la referencia de funciones de expresiones de flujo de trabajo.
Paso 7: ¿Dónde se archiva cada carta?
Flujo hasta ahora: el bucle, pasando por Generate Document (Single).
El ID del asunto cumple una doble función en este caso, ya que nombra tanto la carpeta como el archivo.
- Agregar SharePoint > Create file dentro del bucle.
- Configurar:
- Site Address:
PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints - Folder Path:
/Shared Documents/DemandLetters/seguida del token Title - File Name: el token Title seguido de
.pdf - File Content: el token Body del PDF - Generate Document (Single)
- Site Address:
Create file: configuración

Para el asunto MAT-1001, escriba /Shared Documents/DemandLetters/MAT-1001/MAT-1001.pdf.
Consejo: Un ID como MAT-1001 es un buen nombre para carpetas y archivos, ya que no contiene caracteres que SharePoint rechace. Si los ID de sus asuntos son texto libre, elimine primero las barras diagonales, los dos puntos y los signos de interrogación, o Create file fallará en el primer asunto que los contenga.
Paso 8: ¿Cómo se evita que un asunto reciba una segunda carta?
Flujo hasta ahora: el bucle, pasando por Create file.
El filtro del paso 2 solo funciona si el estado cambia una vez que existe una letra. Esa es la función principal de esta acción.
- Agregue SharePoint > Update item dentro del bucle.
- Configurar:
- Site Address:
PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints - List Name:
Matters - Id: el token ID del asunto actual
- Status Value (avanzado):
Demand Letter Generated
- Site Address:
Update item: configuración

Update item solo se ejecuta después de que Create file se haya completado con éxito, por lo que un asunto cuya carta haya fallado permanece listo para el siguiente lote.
Paso 9: ¿Cómo sabe el equipo que el lote está terminado?
Flujo hasta ahora: el bucle, a través Update item.
Dos acciones completan el proceso: una cuenta dentro del bucle y la otra informa después.
- Agregar Variables > Increment variable como última acción dentro del bucle.
- Nombre:
DocIndex - Valor:
1
- Nombre:
- Agregue Office 365 Outlook > Send an email (V2) después del bucle.
- Para: la dirección de su equipo
- Asunto:
Demand Letters Generated -seguido del token DocIndex yin this batch - Body:
Hi team,luego DocIndex, luegodemand letters were generated in this batch and saved to the matter folders in SharePoint. Matter statuses have been updated to "Demand Letter Generated". - Importance (avanzada):
Normal
Increment variable y Send an email (V2): configuración

Es la última dentro del bucle, por lo que solo cuenta las cartas que fueron archivadas y registradas.

Un correo electrónico por lote, no uno por carta.
Consejo. El correo electrónico capturado dice 1 carta de reclamación. Reemplace la palabra fija con if(equals(variables('DocIndex'), 1), 'letter', 'letters') y el asunto y el cuerpo se leerán correctamente para un lote de uno.
Ejecuta el flujo y verifica
- Save el flujo y selecciona Test, luego Manually.
- Antes de ejecutarlo, marque al menos un asunto como Ready for Demand Letter.
- Abra el historial de ejecución. Apply to each debería mostrar una iteración por asunto marcado como listo, y cada acción debería estar en verde.
- Abra
/Shared Documents/DemandLettersy compruebe que haya una carpeta por asunto, cada una con un archivo PDF cuyo nombre coincida con el ID del asunto. - Abra la lista Matters y confirme que ahora esos asuntos muestren Demand Letter Generated.
La lista Matters después de las carreras

Ahora se muestra Demand Letter Generated en tres asuntos. MAT-1003 sigue en estado de borrador, por lo que el filtro lo omitió y no se generó ninguna carta.
La ejecución capturada procesó dos asuntos en aproximadamente ocho segundos. La carta para MAT-1001 tiene 21.121 bytes en una sola página, de PDF4me Legal Associates, firmada por David Park en nombre de Sarah Chen y dirigida a Meridian Logistics Inc. Sus metadatos XMP declaran pdfaid:part como 1 y pdfaid:conformance como B, que es PDF/A-1b. El correo electrónico de resumen que se mostró anteriormente proviene de un lote independiente de un solo asunto.
¿Qué creaste exactamente? Un pequeño sistema automatizado para documentos legales. El texto aprobado se guarda en una plantilla Word, los datos se encuentran en la lista de asuntos y la columna de estado decide qué documentos se envían y registra su envío. Nadie copia el nombre del cliente en una carta, ni nadie tiene que recordar qué asuntos aún la necesitan.
Variaciones comunes que puedes agregar sin reconstruir
¿Cómo se compara esto con otras formas de producir cartas de reclamación?
Cada fila describe la alternativa. La última fila muestra este flujo.
| Comparación | Plantilla | Conector o licencia | Producción | Actualiza el registro del asunto |
|---|---|---|---|---|
| Plantilla rellenada a mano frente a este flujo | Word, reescrita para cada letra | Ninguno | Lo que sea que la persona ahorre | A mano, si alguien se acuerda |
| Microsoft Populate a Microsoft Word template vs este flujo | Word con controles de contenido | Conector Premium Word Online (Business) | Los archivos .docx y PDF requieren una segunda acción de conversión | Solo si lo añades |
| Software de automatización de documentos legales dedicado frente a este flujo | Normalmente, el editor de plantillas del propio proveedor | Suscripción por separado | Word o PDF | Dentro de ese producto |
| Este flujo | Word con marcadores de posición en la sintaxis de plantilla de PDF4me | Conectores estándar | PDF, archivado por asunto | Sí, Status se ha actualizado |
La distinción importante: esta es la única fila donde la plantilla sigue siendo un archivo Word normal y el registro del asunto cambia como parte de la misma ejecución.
Preguntas frecuentes
¿Cómo redactar una plantilla de carta de reclamación?
Partiendo de la carta que su firma ya envía, marque cada valor que varíe entre los distintos casos. Una carta de reclamación típica incluye membrete, fecha, destinatario, una línea de referencia con el ID del caso, una breve exposición de los hechos, el importe reclamado con fecha límite, las consecuencias de no cumplirse el plazo y la firma. Excepto los valores que varían, el texto es fijo.
Para la automatización, cada valor que cambia se convierte en un marcador de posición. La plantilla de ejemplo utiliza seis: cliente, fecha del incidente, contraparte, importe, abogado e ID del caso. Su redacción es meramente ilustrativa, por lo que se recomienda que un abogado apruebe el texto de cualquier plantilla que se envíe.
¿Cómo rellenar una plantilla Word usando Power Automate?
Existen dos métodos comunes. La acción Populate a Microsoft Word template de Microsoft utiliza los controles de contenido del documento y se encuentra en el conector premium Word Online (Business). Devuelve un archivo .docx, por lo que un PDF requiere un segundo paso de conversión.
Este flujo utiliza PDF4me Generate Document (Single). La plantilla es un archivo .docx común con marcadores de posición como <<[ClientName]>>, los datos se ingresan como JSON y la acción devuelve un PDF directamente en un conector estándar. Lea la plantilla con Get file content, pásela a través de base64() y construya Document Data Text a partir del elemento de la lista.
¿Cómo automatizar el envío de cartas en Word?
Dentro de Word, la solución clásica es la combinación de correspondencia: un documento con campos de combinación y un origen de datos, como una hoja de Excel. Funciona, pero alguien tiene que ejecutarla en un ordenador de sobremesa para cada lote y archivar los resultados posteriormente.
Automatizarlo correctamente implica usar el documento Word como plantilla y permitir que un flujo lo complete a partir de tus registros. En este caso, los registros son una lista de SharePoint, el desencadenador decide cuándo se ejecuta un lote, y las actualizaciones de estado y de archivo se realizan en la misma ejecución, por lo que no queda ningún paso de combinación que deba realizar nadie.
¿Qué es la automatización de documentos legales?
La automatización de documentos legales consiste en generar documentos legales como cartas de reclamación, cartas de compromiso y notificaciones a partir de plantillas aprobadas y datos del caso, en lugar de redactarlos manualmente. La plantilla contiene el texto aprobado por el bufete, los datos provienen del expediente del caso y el software realiza la integración.
Este flujo es un ejemplo pequeño y concreto: una plantilla Word, una lista de asuntos y una acción de PDF4me que realiza la combinación, con el estado del asunto registrando que la carta existe.
Solución de problemas
Busque comillas dobles en los datos del asunto, a menudo en el nombre de la empresa. Document Data Text es JSON generado a partir de texto, por lo que una comilla suelta interrumpe un valor prematuramente y el JSON se vuelve inválido. Escapar las comillas en los valores o crear primero el objeto en una acción Compose y pasar su resultado.
El marcador de posición no tiene formato, por lo que la fecha se imprime con su hora. Agregue una cadena de formato al marcador de posición IncidentDate en la plantilla, como se muestra en el paso 6, y vuelva a cargar la plantilla.
Get items que no devuelven resultados. La Filter Query compara el texto exactamente, así que revise la ortografía y las mayúsculas con las opciones Status y asegúrese de que la consulta utilice el nombre interno de la columna. Ejecute el flujo con un solo asunto configurado como Ready for Demand Letter para confirmar.
El estado no cambió. Verifique que Update item utilice el ID del asunto actual y que su Status Value coincida con una opción que no cumpla con el filtro. Si el estado permanece Ready for Demand Letter, cada ejecución retomará el asunto.
Próximos pasos
Generate Document Single en Power Automate
sintaxis de plantilla Word
Formato en plantillas Word
Obtén tu clave API
El mismo patrón de once pasos (filtrar la lista por estado, rellenar una plantilla Word por fila, archivar el PDF, cambiar el estado, informar del recuento) se aplica a cualquier documento que pueda generar una fila de la lista: cartas de compromiso, avisos, recordatorios de renovación y ofertas de liquidación.