All posts
Published at Mon Dec 13 2021 in
Tech

Building the future of spreadsheets with Buttons

Rows Team
Rows Team
45471765 1

Don't push my buttons

"Giving" is one of our core values and it applies not only to the product we build, but also to sharing knowledge we collect.

This time we'd like to tell you a story of our one of the most advanced interactive features - Buttons.

Buttons can create workflows and turn your spreadsheets into an app-like experience. Using them in traditional spreadsheets was always a challenge that demanded solid spreadsheet skills and a script. At Rows, our goal was to change this and make creating buttons an easy experience accessible to anyone.

But this mission was easier said than done. The feature had to be simple for users to set up and execute, which created a big challenge: packing a lot of back-office complexity into an easy and intuitive workflow.

It took us a few iterations to get there. Let's take a look at how we arrived from the big vision to slick execution.

Back in 2019, when the first version of Buttons was released, it required users to go through a multiple step process:

  1. Add a button to a cell

  2. Set up a label

  3. Select another cell

  4. Use an IF() to specify the action to be triggered by the button click

    45471765 2

    First version of buttons released in 2019

    Soon we realised that the feature was too complex for users to set up. Our customer support team was reporting that users are excited about buttons, but struggled to use them.

    Before jumping to improvements we needed to get a better understanding of the problem. It started by picking up the phone to call our users and run a few interviews.

    45471765 3

    Usability tests with users

    Through this research we saw how the users were actually using the feature. Most could only complete the first steps, ending up with a button that did nothing (commonly because they did not understand that they had to create a formula that would reference a button click).

    At the same time some of our pro users were already "hacking" the Buttons to enhance the experience of others who used them:

    1. Validating if cells were filled before executing.

    2. Adding a confirmation step.

    3. Showing custom feedback after the buttons executions.

    And as much as we were delighted to see the users being so inventive, we didn't want them to stick to those effortful workarounds.

    45471765 4

    Examples of formulas that users created to enhance the buttons experience

    Initial explorations

    Based on these learnings, we decided to move the process of creating and managing a button into a single place, so that users wouldn't get lost in the process.

    In this new approach, the user is asked to set up a button label, select one of the predefined actions, and fill the parameters needed for an action to be executed. Alternatively, it's also possible to type a custom formula.

    For now, users will be able to select from three different actions types:

    1. Create table from a range of cells - Inserts data from a range into another. Great for building forms.

    2. Create table from one cell - Inserts content from a data cell into a table. Great for easily expanding the data imported from an integration (or custom API) into a table.

    3. Execute cells - Executes multiple formulas or buttons. Great for triggering multiple formulas in a single click.

      45471765 5

      Recording form submissions using action "Create table form a range of cells"

      Our team also explored how interactions with buttons could be more user friendly. Here we added three options that were mentioned in most interviews:

      1. Validation - a button will only be executed when selected cells have content.

      2. Feedback - a button will trigger a custom message once it's executed.

      3. Confirmation - a confirmation screen with a custom message will be prompted before executing the actions.

        45471765 6

        Additional options: validation, feedback and confirmation

        Now one thing was missing: how will all of these work within a spreadsheet?

        To make this all possible, our team added two new formulas:

        1. BUTTON(label, formula, [...]) - transforms a cell into a button. Clicking on it executes a list of formulas sequentially.

        2. EXECUTE(formula, destination) - executes a formula in a specific cell, so it doesn't clutter the spreadsheet with formulas.

        New buttons

        After another round of usability tests to validate this solution (and great feedback 🙏), we were convinced we had found a path to button_simplification.

        Not having to write formulas was a big improvement for our users, especially the ones with less spreadsheet experience. Now there was a clear guided flow, and creating a button was easy and straightforward.

        Some advanced users considered the flow time consuming since it required extra clicks. Based on this we improved the UX of the new form to be as quick as possible to fill in.

        And though we couldn't test it in this round, we were confident that the advanced users would take the shortcut and type the button formula manually, which was still possible.

        45471765 7

        Example of a button formula that sums two values

        Today our users widely use new Buttons to execute formulas, retrieve data directly into a spreadsheet or export it back to their business tools.

        They come in handy with live spreadsheets that, at a click of a button, execute a built-in workflow. Using buttons also helps to avoid wasting integration tasks when accidentally processing functions that work with data.


        We are very excited to see what you will build with the new Buttons. Please share your creations with us or add them directly to our brand new gallery of public spreadsheets.

        And if you have any suggestions, we’d love to hear from you! Feel free to reach out to us on Twitter or request a feature.