MondayLink

Antonio Nakic-Alfirevic · Excel Extension
Excel extension for 2-way synchronization between Excel tables and Monday.com boards.

$25

/mo /seat
Buy Extension

MondayLink lets you easily sync data between Excel tables and monday.com boards.

Use it to:

► Edit and analyze data in monday.com boards in Excel
► Push data from Excel tables into monday.com as new boards
► Back up data from monday.com boards into Excel workbooks

 

Latest news (version 1.2.16):

► VBA API added which allows refreshing/saving one or more linked tables from VBA (see VBA API below)
► Ribbon buttons now have tooltips
► Progress dialog is shown before opening any dialogs that require loading data from monday.com (instead of the dialog opening and then the data is loaded in the background)\r\n- When pushing tables as new boards, the _group and _id columns are added after the user accepts the dialog (they are not created if the user cancels out of the dialog)

How to sync between Monday.com and Excel

Sync Excel tables and monday.com boards

Monday.com boards are similar to Excel tables
Monday.com boards are similar to Excel tables

Monday.com boards store data in a tabular format, much like a spreadsheet does.

Boards make it easy for people to collaborate but editing and analyzing data in Excel is much easier and more powerful than in monday.com boards.

MondayLink lets you sync data between Excel tables and monday.com boards, and get the best of both worlds.

Link a board to an Excel table

MondayLink 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.

Sync between Monday.com board and Excel table
Sync between Monday.com board and Excel table

From monday.com 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:

Pull a Monday.com board into Excel as a new table
Pull a Monday.com board into Excel as a new table

From Excel into 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...

Push an Excel table into monday.com as a new board
Push an Excel table into monday.com as a new board

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.

Pulling data from Monday.com board into Excel table
Pulling data from Monday.com board into Excel table

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.

Pushing changes from Excel into Monday.com board
Pushing changes from Excel into Monday.com board

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.

Column mappings
Column mappings

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.

The item (board row) ID in Monday.com
The item (board row) ID in Monday.com

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.

Managing workbook connections
Managing workbook connections

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:

Configuring shortcuts
Configuring shortcuts

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 a bit slower (e.g. 10-30 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 a second or two. However, if all rows have changed, the update could take a minute or two.

VBA API

MondayLink offers a simple VBA API which can be used to refresh or save one or more linked tables.

To refresh a list of tables, use the following VBA code:

Call CreateObject("QueryStorm.Runtime.API").SendEventWithDataTo("RefreshTables", "table1, table2, table3", "MondayLink")

To refresh all linked tables int the workbook pass in "*" as the 2nd parameter of the SendEventWithDataTo method.

To save one or more tables, send a "SaveTables" event instead, like so:

Call CreateObject("QueryStorm.Runtime.API").SendEventWithDataTo("SaveTables", "table1, table2, table3", "MondayLink")

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.

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.

Then, copy the API token from the "API" section into the clipboard.

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

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.