Data itself does not mean much if you cannot gain actionable insights from it. If you or your employees spend a lot of time with spreadsheets, trying to make sense of raw data and generate reports based on it, you likely need to automate the whole process. Natural Language Generation allows you to create reports and other documents from raw data, hence saving you a lot of time.

In this tutorial we'll show you how to create a simple template for generating product descriptions based on products' features. You will be able to easily modify it to your case and data and boost your SEO.

Step 1: Upload your Data in Templates

The first step after you open is to go right to Templates on the left panel.

Make sure you have your spreadsheet data ready. That can be an Excel spreadsheet, a .csv file or any other popular spreadsheet format (let us know if you want to integrate an external database - we're happy to help).

In our example we will use a simple spreadsheet with three rows of data and 3 columns: Assets, 2019, 2020. It is a .csv file which looks like this:


You can either copy that, create a similar one for this tutorial or simply use your spreadsheet right away.

Now click on Import Data button on the right. You will be able to upload your spreadsheet and choose any additional information like a delimiter (the standard ones are: , : ; ).


After you click on Import button, your data will be loaded. In our case we will see the following:


Step 2: Write a Simple Template for Financial Reporting

Now having uploaded the data, we're ready to write a simple template.

First of all, don't worry about the Formatting - it's made for publishing articles directly to Wordpress or Twitter. As we want to download our descriptions later on to your local drive we stay with General.

We want to refer to particular positions in rows and columns. In Contentyze you can invoke particular columns by their name or '[[row_n]]' command. For example in our case I can refer to the first column by either '[[Brand]]' or '[[row_1]]'.

Let's see an example to make that clear. We're going to write

The company had $[[row_2]] of [[Assets]] in 2019 and $[[row_3]] of [[Assets]] in 2020. This shows a growth trend from year to year.

in the text field below


Now if you click on Preview below, each of variables in double square brackets "[[...]]" will be replaced by respective values in one random row from our data.

In our case we get "[[row_2]]" replaced by "3,442", "[[Assets]]" by "Inventory", "[[row_3]]" by "5,231" as you can see here:


You might get a different result due to randomness. The important thing is that the variables are always taken from one single row.

That's it!

You have a simple template.

You can now click on Download below Preview button to generate all texts at once. You would see the following screen after generation (that can take from a couple of seconds to multiple hours depending on how much data you have):


If you click on Download on this screen, you will download a .zip file with all your descriptions.

It's that easy!

You can use these descriptions right away, but we will go one step further.

Step 3: Add AI Models to Financial Reporting Template

We now want to introduce even more variance. You might want to have longer texts with more varied descriptions. For this scenario you can improve upon our template by adding a machine learning model.

By using Models you give away some control over the text (more randomness), but you gain more variance and SEO keywords - this is useful if you prepare a text for your website.

We will use Summary model to generate an abstract summary of our description from template.

You can choose a model from the list:


Now we're going to modify "Text..." and put there what we have written above like this:


So what will happen after we click on Preview is:

  • all the variables will be initiated as before to a random row.
  • model will be initiated on a given text. This text will be generated by AI from the prompt (headline) we have given. In our case we have choose a Summary model to do summarisation of the whole description.

Let's click on Preview to see what happens. In our case we got:


This time the variables were initiated to the "Cash" row. The last line was written entirely by AI from what we have given and it's correctly a sentence about reserves in cash. There's much more randomness to the whole process so feel free to experiment (and verify the correctness!).

For example you could use Summary->Extract for just take the most important sentences from what you have written (our text is too short to do that).

Also you could use General model to generate a short text from a headline you provide. The options here are endless.

In the end you still can download all the results by clicking on Download button.

Let us know about your results!


Not yet signed on Contentyze? Sign up for free at!