In this post, I will look at the input and output parameter types for child flows. Recently I hit a couple of small issues with the various data types that are worth sharing.
Various Input and Output Parameter Types
Table of Contents
For both the Manually trigger a flow trigger and its input parameters, and the Respond to a Power App or flow action and its output parameters, we will find that we have 6 different input and output parameter types.
- Text
- Yes/No
- File Content
- Number
- Date

This now means that we can call this child flow with the parameters configured in our child flow. Below is an example.

You will notice that there is now option to push an object or an array into the child flow. But this limitation is easily resolved by using either the File Content or Text input type.
This can help a lot if you want to query data from your parent flow inside your child flow. Using json queries is a lot easier than passing in lots of parameters. Alternatively you can also get your child flow to re-query your datasources.
Did you know that if you pass the output from a SharePoint Get Items into a Text or File Content parameter, that the object remains an object inside the child flow?

However the output parameters of the Respond to Power App or flow action are less user friendly. As shown in the below screenshot, the text output parameter has turned into text.

And once we take the data from the text output parameter in our parent from, we will still have text. This of course is quite easily resolved using the json function in the parent flow.

Handling null values in input and output Parameters
When I run my parent flow and I’m feeding every property with a null expression, then I will find that all six properties happily accept the null values. My flow runs and it looks like all is good.

If however I look at the output of my child flow some of the properties kept the null values whereas other output parameters. It look like only the yes/no and number parameters keep the null values as null. Now this is not immediately a major issue however when you use Child flows and you test the values equals(data, null) may not give you the expected result on test, file, email and date output parameters.

Data type validation
When we enter data into our input parameters there is some validation on the data types. However not for all data types. As you can see below, at run time there is no validation at all. An invalid date was accepted and also a text value was happily accepted within the number field.

Additionally the number entered in the text field was turned into a text. All these issues aren’t really a problem as we can handle them, however it is important to be aware of these issues if you want to avoid unexpected results in your flows.
Make fields optional
The Make the field optional option can be useful if you don’t want to be forced by the flow to add any data. This can be useful, however we have seen earlier that null values would also work.

The option to make a field optional is available for all input parameters on the trigger however the output on the respond action does not support this. To make the output optional you might need to either use the premium response action or the earlier mention option to use JSON in a text field.
Like the following two options these additional settings on parameters can also be useful if you have users starting a flow manually. With the introduction of the Child flows you would almost forget that manually started flows is a thing.
Add a multi-select list of options
The Multi select gives users a number of options available to select. The Multi-select allows the user to select multiple of the offered options.
Add a drop-down list of options
The drop down list works the same as the multi-select, however you can only select one option from the dropdown.
Discover more from SharePains
Subscribe to get the latest posts sent to your email.
I’ve got an “issue” as well with the Date setting. I was using it with a date and time, and while testing my flow, I setted the date/time value I wanted for my test. Nothing goes wrong, the flow runs as expected.
This was a child flow, and when I tried to call him from my parent flow with date/time value, It failed. That’s because a date parameter is not a date/time parameter. In my tests, I never noticed but the time part was simply removed at run time whithout any warning so when I thought I was testing with date/time parameter I was just testing with date part of the setting….
I had to use a text setting and transforming into datetime whith formulas
As a datetime value is often represented as text anyway, I would expect that you could use the Text Input property type.
I did some further investigation and the date input accepted any date formats. Of course if you don’t use the standard date formats the rest of your flow may struggle to process the data and time. I’m happy to have a look at your issue in more detail if that helps. Please feel free to open a chat.