How to create Excel and PDF documents from Cognito Forms in Power Automate (Microsoft Flow) and Azure Logic Apps

This article shows how to create PDF documents from an XLSX template on a Cognito Form submission with the help of Processes in Power Automate (MS Flow). It may help you to automate the generation of different documents like applications, requests, orders, etc., in your company.

Processes are a Plumsail Documents feature with an intuitive interface for creating documents from templates.

Cognito Forms are an online form builder that allows you to create powerful forms for your website.

In this example, we will collect data from a Cognito Form, apply the data to our Excel template, and generate a new PDF document with the help of Processes in Power Automate (Microsoft Flow).

Create a Form

We have already prepared a Cognito form for ordering stationery and office supplies. We will use data from its submission to apply to our template. If you haven't created any Cognito Forms before, you can learn how to do it here.

Below is a screenshot of our form:

Cognito Form image

We used the Repeating Section layout to allow users to add more products. You may also use the Basic Sales Form template to add this functionality:

Cognito Form repeating section

Configure the Process

To create a process, which will generate PDF documents from an XLSX template, go to the Processes section in your Plumsail account.

Create a new process

Click on the Add process button.

add process button

Set the Process name.

generate PDF from Cognito Form

Upload the template you're gonna use. In this example, we'll create a request for stationery and office supplies. And below is our template for it. You can download it by this link.

Template

When creating your own templates, mind the templating language. Plumsail Excel XLSX templates use a different approach than most other templating solutions. It uses a minimal amount of syntax to make your work done.

In short, the templating engine thinks that everything between curly {{ }} brackets is variables where it will apply your specified data. Read this article to get familiar with the templating engine.

Configure a template

Once you're done with the first step Create Process, press the Submit button, and you’ll proceed to the next – Configure Template:

  • Fill in the name of the result file
  • Select PDF format for the output file
  • Protect the result PDF if you wish
Configure template

You can test a template as well, to see how it will look at the end. After clicking on the Test template button, you’ll need to ‘feed’ a template with your data in JSON format. To understand what JSON to feed, you need to look at tokens in your template. In our template we have {{name}}{{department}}, etc, that's how the sample JSON for testing might look in our case:

{
  "name": "John Doe",
  "department": "IT",
  "email": "j.doe@contoso.com",
  "items": {
      "Product": "Pen",
      "Quantity": 10
      },
  "instructions": "Delivery before Thursday",
  "phone": "(206)-564-96-97",
  "date": "25/02/2020"
}
test template

It’s testing. We’re going to apply the data from the Cognito stationery request form to our template.

Delivery

The next step is delivery. For demonstrating purpose, we’ll store the result file in OneDrive. But there are other options.

Select the folder where the ready document will be saved. Fill in the file's name. You don't need to put .extension, it'll be done automatically based on the output file type you set on the Configure template step.

create pdf from template on form submission

You can configure as many deliveries as you need.

Start the Process

We will start our Process from Microsoft Flow.

Create a Flow

This is how our Flow looks:

xlsx to pdf from Cognito flow

Check out the Flow steps described below.

Form is submitted

We need to start the Flow everytime somebody submits our stationery request form. For that, search for Cognito Forms in Power Automate and add Cognito Forms - When a new entry is created as a trigger.

If this is your first Flow with Cognito Forms, on this step, sign in to your Cognito Account from MS Flow to use your forms inside Flows.

Then, you'll need to pick the form you want to track in the dropdown.

Cognito Form trigger

Initialize variable

We need to build an array with the data from the Repeating Form's Section to use it in the JSON Template data in Start document generation process action. So, we create an array of variable items.

Initialize variable

Start document generation process

This is the action from Plumsail Documents connector. This action is suitable for starting the Process of generating documents from a template. You can find more information about this action by visiting this page.

Using the action for the first time, you’ll be asked for ''Connection Name'' and ''Access Key''.

create flow connection

You can type any name for the connection. For example, ''Plumsail Documents''.

Then create an API key in your Plumsail Account page, copy and paste it to ''Access Key'' field.

The action has two parameters:

start generation documents action
  • Process name. Select the process you need from available ones.
  • Template data. Specify source data in JSON format:
dynamic content of Cognito form is submitted

This object contains information from our form. We selected the dynamic content from the output of Cognito Forms - When a new entry is created action and from the Initialize variable step:

dynamic content of Cognito Form is submitted

We also added the current date using a standard MS Flow expression:

formatDateTime(utcNow(),'yyyy-MM-dd')

Use the ready document in Flow

You can stop on the step Start document generation process.

Steps described above are enough for generating PDFs from an XSLX template based on the Cognito Form submission. Your result file will be saved to OneDrive in this case. See how it will look:

Final document

But if you need an advanced logic, it's possible to work with the result file right in the Flow.

Here is an example of how you can send the ready document for approval.

Add an action Create an approval from the Approvals connector. Select an output of the previous step for an attachment.

send pdf for approval

Sign up for Plumsail Documents

As you can see, it's simple to automize the generation of documents on Cognito Forms submission. If you're new to Plumsail Documents, register an account and follow the steps described in the article to set the process for automatic creation of PDFs from Cognito Forms.

Hint

You can generate PDFs from Web Forms even without Power Automate (Microsoft Flow). Check the article How to generate PDF documents from a DOCX template on Plumsail Forms submission.