Power Automate y Power Apps
El conector de AutomaDoc lleva sus plantillas a las herramientas de flujos de trabajo de Microsoft. Un flujo envía los valores de los marcadores de una plantilla (desde un elemento de una lista de SharePoint, una fila de Dataverse, una fila de Excel o una respuesta de formulario) y recibe el documento terminado, listo para guardarlo en una biblioteca de documentos, adjuntarlo a un correo o publicarlo en Teams.
Funciona en Power Automate, Power Apps (a través de un flujo), Azure Logic Apps y Copilot Studio. Está construido sobre la API de documentos, así que todo lo que la API hace con sus datos (nombres, bucles, imágenes, condiciones) funciona igual aquí.
Antes de empezar
Sección titulada «Antes de empezar»- Una plantilla. Créela en el Portal de empresa, en Plantillas, en el complemento de Excel o en la extensión de Lark Base, con marcadores como
{Customer},{Invoice_No}o un bucle{#Items}…{/Items}. El conector muestra una entrada por marcador, leída de la última subida de la plantilla. - Una clave de API de la empresa. Un administrador de su empresa la crea en el Portal de empresa, en Empresa → Claves de API. Empieza por
amk_y se muestra una sola vez: cópiela en un lugar seguro. (La clave propia de una plantilla no puede listar sus plantillas, por eso el conector necesita una clave de la empresa.)
Añadir el conector
Sección titulada «Añadir el conector»Mientras el conector de AutomaDoc no figure entre los conectores certificados, añádalo a su entorno como conector personalizado. Se hace una vez por entorno de Power Platform.
- Obtenga la definición del conector. Descárguela, Descargar la definición del conector, o use su dirección:
https://api.automadoc.cc/api/v1/power-platform.swagger.json - En Power Automate, abra Data → Custom connectors (o More → Discover all → Custom connectors), luego New custom connector y elija Import an OpenAPI file (el archivo descargado) o Import an OpenAPI from URL (pegue la dirección). Llámelo
AutomaDocy seleccione Continue. - La pestaña General se rellena con la definición (host, URL base y descripción): no hay nada que cambiar.
- En la pestaña Security, compruebe que la autenticación es API Key, con el nombre de parámetro
X-Webhook-API-Keyy la ubicación Header (vienen con la definición). Si la etiqueta del parámetro está vacía, escribaAPI Key. Seleccione Create connector. - En la pestaña Test, seleccione New connection, pegue la clave de API de su empresa y cree la conexión. Pruebe la operación ListTemplates: responde
200con sus plantillas.
En un flujo, agregue una acción y busque AutomaDoc: aparece con sus conectores personalizados. Cuando el conector certificado esté publicado, busque AutomaDoc al agregar una acción y pegue la clave cuando se pida una conexión.
Si las directivas de prevención de pérdida de datos (DLP) de su organización bloquean los conectores personalizados, su administrador de Power Platform puede permitir este por su host, api.automadoc.cc. La página Power Automate del Portal de la empresa tiene los mismos pasos y la descarga.
Paso a paso: un documento por cada nuevo elemento de SharePoint
Sección titulada «Paso a paso: un documento por cada nuevo elemento de SharePoint»Este flujo crea una factura cada vez que se añade un elemento a una lista de SharePoint y guarda el PDF en una biblioteca de documentos.
- Desencadenador. Cree un flujo de nube automatizado con SharePoint → When an item is created y elija su sitio y su lista (por ejemplo Invoices).
- Generar el documento. Añada AutomaDoc → Generate a document.
- Template: elija su plantilla de factura en la lista.
- Las entradas de la plantilla aparecen debajo. Asigne cada una desde el contenido dinámico del desencadenador:
Invoice_No← Title,Customer← Customer,Total← Amount, etc. - Output Format:
pdf. El paso espera hasta que el documento está listo y luego entrega a los pasos siguientes suDocument ID,File Name,StatusyDownload URL.
- Descargarlo. Añada AutomaDoc → Download document con Document ID ←
Document IDdel paso anterior. - Guardarlo. Añada SharePoint → Create file:
- Folder Path: su biblioteca, por ejemplo
/Shared Documents/Invoices. - File Name:
File Namede Generate a document. - File Content:
File Contentde Download document.
- Folder Path: su biblioteca, por ejemplo
- Guarde el flujo y añada un elemento a la lista. El PDF aparece en la biblioteca unos segundos después.
Para enviarlo por correo, use Office 365 Outlook → Send an email (V2) con un adjunto: nombre File Name, contenido File Content.
En Recetas de Power Automate encontrará más flujos listos para usar: para una aprobación, una respuesta de Microsoft Forms o para adjuntar el archivo al elemento.
Partidas: un bucle en la plantilla
Sección titulada «Partidas: un bucle en la plantilla»Una fila de tabla {#Items}…{/Items} en la plantilla aparece como una entrada de lista, Items, con un campo por columna. Para rellenarla desde otra lista (las líneas de la factura, por ejemplo), cambie la entrada al modo entire array y pase una matriz cuyos objetos usen los nombres de las columnas como claves; por ejemplo, construida con Data Operation → Select a partir de Get items:
| Select: clave | Valor |
|---|---|
Product |
Title |
Qty |
Quantity |
Price |
UnitPrice |
Desde Dataverse o Excel
Sección titulada «Desde Dataverse o Excel»Los pasos después del desencadenador son los mismos; solo cambian el desencadenador y el contenido dinámico:
- Dataverse: When a row is added, modified or deleted (tipo de cambio Added); después asigne las columnas de la fila a las entradas de la plantilla.
- Excel Online (Business): For a selected row (ejecutado desde Excel), o List rows present in a table seguido de un Apply to each: un Generate a document por fila crea un documento por fila.
Un documento a partir de muchas filas
Sección titulada «Un documento a partir de muchas filas»Una plantilla configurada para crear un documento a partir de muchos registros (una lista, una página por registro, etiquetas) recibe en cambio una lista: su entrada es Records, una entrada por fila, y el paso crea un solo documento con todas ellas. Pase las filas de List rows o Get items por un Select, como para las partidas. Hasta 500 filas por documento.
Power Apps
Sección titulada «Power Apps»Cree el documento en un flujo y llame al flujo desde la app:
- Cree un flujo de nube instantáneo con el desencadenador Power Apps (V2) y añada entradas de texto para los valores que envía la app.
- Añada Generate a document y asigne esas entradas; termine con Respond to a Power App or flow devolviendo
Download URL(o guarde el archivo como arriba y devuelva su enlace). - En la app, llámelo desde un botón:
Set(doc, GenerateInvoice.Run(txtCustomer.Text, txtTotal.Text)); Launch(doc.downloadurl).
El flujo espera al documento. Una app que llama directamente al conector no espera: recibe el documento mientras todavía está en processing, y tiene que llamar a Get document status hasta que se complete.
Logic Apps y Copilot Studio
Sección titulada «Logic Apps y Copilot Studio»El mismo conector funciona en Logic Apps (Standard y Consumption), con las mismas acciones. En Copilot Studio, añada Generate a document como herramienta de su agente: el agente rellena las entradas de la plantilla a partir de la conversación y puede dar al usuario la Download URL.
Cómo espera el paso de generación
Sección titulada «Cómo espera el paso de generación»Generate a document usa el patrón de sondeo que las herramientas de flujos de trabajo de Microsoft siguen por sí mismas: la solicitud se responde con 202 Accepted y un enlace que consultar, y la plataforma lo lee cada 5 segundos hasta que el documento se completa; después continúa con el documento terminado. Un documento que falla hace fallar el paso, con el motivo (un bucle que nunca se cierra, una imagen que no se pudo obtener) en la salida del paso. Un documento fallido nunca llega al paso siguiente como si fuera un archivo: Get document status y Download document también fallan con él (DOCUMENT_FAILED).
Si desactiva la opción Asynchronous pattern del paso, este responde de inmediato con el documento todavía en processing. Añada Get document status con el Document ID: espera al documento de la misma manera. Si también desactiva el patrón asíncrono de ese paso, responde de inmediato; espere usted mismo con un Do until hasta que Status no sea processing, que contenga un Delay (5 segundos) y Get document status. Un documento que falla hace que Get document status falle (422), así que el bucle se detiene con ese error y nunca lee failed: gestiónelo con Configure run after (has failed) en el paso siguiente, o ponga el bucle dentro de un Scope.
Límites
Sección titulada «Límites»- 60 solicitudes por minuto por plantilla y 600 documentos por minuto por empresa, compartidos con la API de documentos y el HTTP Trigger; 60 listados de plantillas por minuto por empresa; 60 lecturas de estado y 60 descargas por minuto por documento. Por encima de un límite, el paso responde
429y la política de reintentos de la plataforma vuelve a intentarlo. - Las entradas de imagen deben ser direcciones web públicas (
https://, ohttp://). Un enlace de SharePoint u OneDrive que requiere iniciar sesión no se puede obtener; comparta la imagen con un enlace público o alójela en otro lugar. - Los documentos se conservan mientras su empresa conserve los documentos generados (según su plan). Descargue el archivo en el mismo flujo en lugar de guardar el enlace.
- El envío de un documento para firmar y los adjuntos combinados en un PDF están disponibles a través de la API de documentos, no como entradas del conector.
Solución de problemas
Sección titulada «Solución de problemas»| Lo que ve | Por qué |
|---|---|
La lista de plantillas está vacía o la conexión falla con COMPANY_KEY_REQUIRED |
La conexión usa la clave propia de una plantilla; cree una con una clave de API de la empresa |
| Un marcador no tiene entrada | Las entradas provienen de la última subida de la plantilla; vuelva a subir la plantilla |
QUOTA_EXCEEDED |
No quedan documentos este mes; compre un paquete o un puesto |
El paso falla con DOCUMENT_FAILED |
No se pudo crear el documento; la salida del paso indica por qué |
Download document falla con DOCUMENT_NOT_READY |
El patrón asíncrono del paso de generación está desactivado, así que el documento todavía se estaba creando; añada Get document status antes de la descarga |
Todos los demás rechazos aparecen con su motivo en la referencia de la API de documentos.