Prepare a spreadsheet to generate your organizational chart in Functionly

With just a few pieces of data in a spreadsheet you can generate your entire organizational chart or import people to start building your org from scratch.


Related articles:

  1. Prepare your spreadsheet

  2. Import your spreadsheet

  3. Troubleshooting your spreadsheet import

  4. Update using a spreadsheet


Before starting, check out our demo CSV template showing all the available data you can import.


Getting started

The first step when importing your people, using our import routine, is to prepare your spreadsheet. This part can be done in your preferred spreadsheet format such as Excel or Google Sheets but the file you upload has to be saved as a .csv, .tsv, or .txt file. 🙂

There are a few basics that are important when assembling your spreadsheet regardless of how much you would like Functionly's import routine to perform:

  1. Each person must have their own row 
  2. Format must be .csv, .tsv or .txt
  3. Each individual piece of data must have its own column


How much work would you like Functionly to do when building your chart?

The amount of data you need to include will depend on what you're trying to achieve.

You can jump to the sections that are most appropriate for you:

  1. I just want Functionly to import people, so I can build my own org chart
  2. I want Functionly to import people and construct my org chart
  3. I also want to include additional valuable data



1. Import people to build your own org chart

If your organization has a small number of people then you may want to build your org chart yourself and just import the people, or perhaps you're building a larger chart and want to understand the org as you build.


import spreadsheet


The minimum data needed to just import your people is:

  • First name
  • Last name


  • Full name


There are additional data you can explore that will prove helpful as you build your chart and when sharing it with your team. 🙂



2. Import to generate a fully constructed org chart

If your organization is a larger one or you want to quickly construct your org chart, it might be helpful to let our import engine build your org chart for you.


Preparing your spreadsheet


We just need one extra piece of data on top of what's listed in the "build your own org chart" section above, and that's a manager for each person excluding the person at the top of your org chart e.g. your CEO.

Adding a manager will tell us who each person reports to so that our algorithm can construct the reporting lines for you, and add people to their positions.

The minimum data you'll need for Functionly to construct your org chart is:

  • First name
  • Last name
  • Manager (First name & Last name or Full name)


  • Full name
  • Manager (First name & last name or Full name)


While these are the minimum data required, we do recommend including additional data to increase the value you receive from Functionly. 🙂


3. Additional valuable data

In addition to the minimum data you needed to import your people or your full org chart you can choose what extra information you'd like to import.



Position ID

Position ID is a user-defined field, and can be used as a way to determine an org structure if there is a corresponding "Manager Position ID" column. It can also be used to match data in a CSV to positions in an existing org structure.

Although not required, it's advisable to have unique numbers for each Position ID.

When exporting a CSV of an existing scenario, you'll notice that there's also "Functionly Position ID" which is generated by the product as a unique identifier for each position and can be used to update data by matching the positions in your scenario to the positions in your spreadsheet.


Person ID

As with Position ID, this is a user-defined field, that can be imported for any person in your scenario. If you want to update the data for any person in your scenario, it can be used to match them to the people in your spreadsheet.


The data that are associated with a person are name and email address, and these are the fields that can be updated by matching the Person ID in the system to the Person ID in your spreadsheet.

All other data is associated with the position and can be updated by matching the Position ID in the system to the Position ID in your spreadsheet.



Email address

We strongly recommend including an email address when you import your people and there are several reasons for this.

Firstly, email addresses can be seen in the product by you and any member of your team who you've given access.

The main benefit of including email addresses for each person is that it will help when keeping your data up to date with future CSV imports.

This is because our import routine uses email addresses to detect duplicate people when you reimport a CSV. So if you're adding five new people, it will see that their email addresses are new and add them, without adding existing people a second time.

If it recognizes that there are changes to existing people's data e.g. their position title, manager, or compensation, then the import routine will update this data accordingly.



Position title

Adding a position title for each person in your organization will make it clear what someone does. In small companies, everyone usually knows what their colleagues do but the larger an it gets, the harder to keep track.




Avatar image URL

If your team's pictures are hosted on a publicly accessible server then adding them to your spreadsheet should allow them to be imported into the product, making it easier for anyone viewing the chart to put a face to a name.

The import routine requires URLs to be case-sensitive in your CSV in order to accurately locate images.



FTE (Full Time Equivalent)

FTE stands for full-time equivalent and can be added to your spreadsheet as a whole number or as a fraction, with 1 representing a full-time employee and being the maximum number you can have. If you want to show someone as being half-time in a role, you simply add 0.5 to the Effort (FTE) field next to their name, or 0.20 for one day a week, etc. Combined with annual base compensation it provides the total cost for any position in your organization.



Annual base compensation

Importing Annual base compensation will first allow you to view compensation for any position in your organization at a glance.

If Effort (FTE) is set for people in your import, then Annual base compensation will be calculated against it, e.g., a person's annual base compensation is $100,000 per annum, and their Effort (FTE) is 0.5 (half-time) then their Total cost will show as $50,000 in the product.

Compensation data is available on the "People & positions" table so that you can view it for your whole organization, adjust it, and re-export it to CSV in order to run budgetary calculations.


To understand who can import, view, and edit compensation data, read more on scenario access levels.



Hourly base compensation

As with Annual base compensation, importing hourly base compensation will allow you to view any position within the organization at a glance to see how much compensation that position accounts for.

Hourly base compensation combined with work hours/week and work weeks/year will provide you with the total cost for any position within your organization. Once imported, the data can easily be edited on each position or using the "people & positions" view.

Hourly base compensation is superseded by Annual base compensation, so that if both are included during import then each person's compensation will appear on their position as Annual base by default. If you would rather it reflected Hourly base compensation then Annual base compensation should not be included.

As with Annual base compensation, importing Hourly base compensation via the CSV import is supported when importing a new chart or updating an existing one.


To understand who can import, view, and edit compensation data, read more on scenario access levels.



Work hours/week

Work hours/week combined with work weeks/year and hourly base compensation will provide you with the total cost for any position that has data added for these fields. This is particularly helpful when doing workforce planning for contract and casual positions in your organization.


Work weeks/year

Work weeks/year combined with work hours/week and hourly base compensation will provide you with the total cost for any position that has data added for these fields. This is particularly helpful when doing workforce planning for contract and casual positions in your organization.


Start date

Adding a start date for existing employees will obviously allow you to see how long a person's tenure in the organization has been. For future hires using a start and end date will provide a guide for when a prospective hire should be made. If you're going through an extensive workforce planning process, understanding the staging of your hires can be helpful.


The format for dates when importing is MM/DD/YYYY


End date

This can be relevant to contract employees who are with the organization for a finite amount of time, and again, when it comes to workforce planning having a start and end date for each hire will allow you to decide how you want to stage the process.


Custom text properties

If you have properties that you don't see in our pre-defined fields then you can now easily import custom properties during the import process. Read here to learn how to import your own properties and see our page on how to add them manually and manage them.


Vacant positions

As well as adding vacant positions directly to your org chart you can import them in bulk by adding "vacancy" to the "full name" column on your spreadsheet. The import routine will detect that these are not actually names of existing employees and import them as vacant positions. If you include other data such as job titles, compensation, start dates, effort (FTE) or vacancy statuses for each vacancy they will be applied upon import.


When importing vacant positions for the first time they can't be imported as reporting to another vacant position; they must be reporting to an actual person. Vacant positions can be bulk updated by first exporting to CSV, then updating the desired fields, and mapping "Functionly Position ID" during the import routine.


Vacancy status

Vacancy statuses allow you to provide clarity to others regarding what stage of the hiring process a particular vacant position is at. The statuses are; draft, proposed, approved, open, or filled. You can read here what each status means.



Need help preparing your spreadsheet?

Get in contact with our Support team via the contact us page or email

Next up:

  1. Importing your spreadsheet