Sync Excel tables and Monday.com boards with ease

03 Oct '22 by Antonio Nakić-Alfirević

Monday.com boards store data in a tabular format, much like a spreadsheet program such as Microsoft Excel or Google Sheets would.

Boards make it easy for people to collaborate and offer an strict but intuitive user interface for viewing and entering values.

Excel tables, on the other hand, are less strict about the data you put inside them. However, editing and analyzing data is much easier and more powerful in Excel than in monday.com boards.

If we could easily sync data between Excel tables and monday.com boards, we could get the best of both worlds.

In this article, I demonstrate an Excel add-in that lets you do just this.

The MondayLink add-in for Excel

The Excel add-in I’m talking about is called MondayLink. I originally wrote MondayLink for our own in-house needs, but it’s a useful tool that anyone can use to synchronize data between Excel and monday.com, and is now a product of its own.

The plugin lets you set up a link between Excel tables and monday.com boards. Once the link is in place, changes can easily be propagated in either direction.

Pulling a Monday.com board into Excel

If you’re starting with an existing monday.com board that you want to edit or analyze in Excel, you can pull it into Excel using the “Pull Board” command in the ribbon:

Publishing an Excel table to Monday.com

If, on the other hand, you’re working on an Excel table that you want to publish to monday.com as a new board, you can do so using the “Push table” button in the ribbon.

Before pushing the Excel table, the table must have a “_name” column. This column will contain the row headers. For example, if the table contains a list of employees, the _name column should contain the full name of each employee. If the table doesn’t have a column that is a good fit for this purpose, you can define a new _name column and populate it with artificial values like “Item1”, “Item2”, etc…

The “Push” dialog lets you name the new board, choose which workspace to put it in, and configure column types and board access.

The push operation will create two extra columns in the Excel table: the _id column that links an Excel row to a monday.com row, and the _group column that determines which group each row belongs to. More on these later in this post.

Synchronizing changes

Pulling or pushing a table to/from monday.com isn’t just a one-off operation. It also sets up a link between the Excel table and the monday.com board. This link allows syncing changes in both directions.

Pulling changes (Refresh)

If you would like to refresh the data in an Excel table that is linked to a monday.com board, you can do so by clicking the “Refresh” button.

Pushing changes (Save)

If you’ve made changes to the Excel table and you want to push those changes to the board, you can do so by clicking the “Save” button.

Mapping columns

Table columns and board columns are mapped by name. Any column that does not have a counterpart on the other side is ignored during synchronization.

This applies to all columns except the three special columns: _id, _name, and _group.

The _name column

Each monday.com board has a column which controls the header of each item. This is the only mandatory column in a board. It cannot be deleted and all rows must have a value for it.

This column is mapped by MondayLink to the _name column in Excel which every table must have if it is to be linked to a board. All rows must have a value in this column.

The _id column

Each row in a monday.com board has an Id. This ID can be seen in the URL when an item in the board is selected.

MondayLink stores the ID of each item in the _id column and uses it during synchronization to match the rows and copy any changed values.

The _group column

Each row in a monday.com board belongs to a group. Excel tables do not have groups, but MondayLink uses the _group for this purpose.

You can assign any value to the _group column in Excel. During a “Save” operation, any groups that you specified that are not already in the linked board will automatically be created.

Type conversions

Monday boards have many more data types than Excel. For example, a board can define a column that stores email addresses or phone numbers. MondayLink will convert these to the most natural representation in Excel. For example, an “email” column will be treated as text, while a “rating” column will be treated as a number between 1 and 5.

Some data types, though, are not supported (yet) by MondayLink. Currently, MondayLink supports mapping the following kinds of board columns:

  • Number
  • Text
  • Date
  • Email address
  • Phone number
  • Rating
  • Checkbox

Support for other column types can be added fairly easily, as needed.

Adding or deleting columns

If, after a table is already linked to a board, you decide that you need an additional column, simply add the column in both places. If you need to remove a column or rename it, simply do so in both places.

Adding or deleting rows

When adding a row to a linked Excel table, you might be wondering what to put in the _id column. Since the row does not yet have a corresponding entry in the monday.com board, simply leave this column empty. You should, however, populate _name column, while populating the _group column is optional.

Deleting rows is very simple, though. When you delete a row in Excel and perform a “Save” operation, the row will get deleted in the monday.com board as well.

Managing connections

The link between an Excel table and a monday.com board is saved inside the workbook itself, so if you send the workbook to another user who has MondayLink installed, they will be able to see the links.

To view the list of active links in the workbook, click the “Manage connections” button.

Avoid renaming linked tables

A link maps a table (by name) to a monday.com board (by id). This means that Excel tables should not be renamed, or they will get unlinked. Monday boards, however, can be freely renamed as they are mapped by id and not by name (Excel tables unfortunately do not have an Id).

Shortcuts and buttons

To make synchronization easy to invoke, MondayLink defines two shortcuts that you can use while the selected cell belongs to a linked Excel table.

The default shortcut for refreshing data in an Excel table (pull data from monday.com) is Ctrl+Shift+R.

The default shortcut for saving data from Excel to a corresponding monday.com board is Ctrl+Shift+S.

These can be configured by the user if needed:

Additionally, each mapped table gets additional context menu commands that allow invoking synchronization.

Added context menu commands
Added context menu commands

Performance

MondayLink’s performance is determined by the throughput of the monday.com API.

Boards can be read fairly quickly (~200 rows/s) but writing rows is slow (e.g. 1-2 rows/s). For this reason, when saving changes from Excel, MondayLink first reads the entire board to determine the set of changes and then only applies those changes (instead of uploading the entire table). If, for example, the table has 1k rows but only a few rows have changed, the save operation will take 6-7s. However, if all rows have changed, the update will take more than 30 minutes.

The reason writing data is so slow is that the monday.com API does not (yet) support bulk updates. If this is remedied by the monday.com team, writing data through MondayLink will get much faster.

Benefits

I’ve talked a lot about how to sync. Here are some of the benefits you can get by extending monday.com with Excel:

  • Streamline data entry – using Excel’s flash fill for bulk editing, pasting data from the clipboard, easier to enter data directly, easier to pull in data from other sources.
  • Processing data – Excel has a much more extensive and powerful suite of functionality for crunching numbers, processing text, working with dates, etc…
  • Data analysis and plotting – Excel has (more powerful) pivot tables and superior graphing capabilities compared to monday.com boards
  • Board data backup – using an Excel spreadsheet to back up data from a monday.com board. Since Excel files have built-in version control through OneDrive, this can also be used for version-controlling monday.com board data.

Video of MondayLink in action

For a video demonstration of MondayLink, see the following video:

Installing MondayLink

Before we can start linking tables and boards, we must first install MondayLink.

This is a two-step process:

  • Step 1: download and install the QueryStorm runtime. This is a free 4MB installer that allows installing apps built with QueryStorm into Excel.
  • Step 2: once the QueryStorm runtime is installed, use it to download and install MondayLink

Configuring MondayLink

To allow MondayLink to access your boards, you must provide it with your monday.com API key. To get the API key, open the admin section in monday.com.

The "API key" is in the Admin section
Finding the “API key”

Then, copy the API token from the “API” section into the clipboard.

The "API key" is in the Admin section
The “API key” is in the Admin section

Once you have the API token in the clipboard, paste it into MondayLink

Adjusting the API key
Adjusting the API key

The token grants API access to your Monday.com account. To safeguard it, MondayLink encrypts it before storing it in a file. The encryption is done using the windows data protection API which ensures that only your Windows user will be able to decrypt the stored API key.

Once you enter the API key, you can start linking Excel tables and Monday.com boards.

Conclusion

MondayLink makes it possible to use the best of both worlds – the convenience of Excel with the collaboration and visualization capabilities of monday.com.

I think it’s a useful tool to have in your inbox. Give it a try and let me know what you think!