Optimizing Low Code in Retool to Empower Services Colleagues

Sep 15 · 6 min read

By Charlotte Evans, Platform Services Degree Specialist

One day when my older brother was in elementary school and reading aloud from the sofa, I became infuriated that he was making sense out of what appeared to be squiggles on the page. Hands on hips, I marched over to my mother and demanded, “Mummy, HOW do you read?” Flash forward twenty-some years, and the same itch to learn a curious unknown skill was rising in me at Coursera. I was in awe as our engineers made tools from scratch and found solutions with what appeared to be a wave of the wand. I wanted to know … HOW do you build tools?

When I began my reading journey, I saw my brother devouring Roald Dahl books, and while I wanted to keep up, I was really at the stage of Green Eggs and Ham. The same was true for coding. Walls of lines in VS Code (a code editor used by many Coursera engineers) were overwhelming and seemingly insurmountable as I searched for a friendly introductory level of programming. Fortunately, a low-code development application that allows for quick tool builds, called Retool, came onto the scene. And it was right at my reading level.

2020 Steady State

As a member of the Services organization at Coursera, I work with colleagues who are deeply passionate about solving problems for our partners and learners. Many of my peers are whip-smart educators who had made a pivot to the ed-tech industry and are excited for this new work, but like me, were encountering a steep technical learning curve as we navigated many technical resources to identify the root cause of a problem our partners or learners were facing.

When Retool became a part of Coursera’s on-premise, third-party tools ecosystem, it was a delight. We’ve been able to quickly pivot our systems into more user-friendly tools through low-code development that capitalized on Retool’s interface and product features to leverage fast internal tool builds. Since the Coursera instance was built on-premise, we were able to safeguard important data and keep it on Coursera’s servers only while also honoring internal permissions we had configured for Coursera employees with regard to their individual data access. Critical to this operation’s success was the live implementation of a company value we call “playing for team Coursera,” where we saw colleagues across the company — from product and engineering to data science and services — collaborating to optimize our support experience with Retool builds.

Current State

We’ve now moved 100 percent of degree specialists’ critical API workflows into Retool. We’ve estimated this has saved us multiple quarters of engineering time building native apps and several months of a full-time employee’s work in Platform Services annually through this migration. This enabled us to create an even more accurate system that made onboarding non-technical colleagues even more successful and promoted a more user-friendly environment with human readable inputs and simplified documentation. We’ve also built tools for my team, Degree Student Success, that reduce the need for learning SQL during the onboarding process as the queries are abstracted away from the visible user interface with our Retool tools. Below are some of our tooling successes that serve as examples of Retool’s positive impact at Coursera.

The Learner Calendar

One of the features we support is troubleshooting our calendar integrations. In our prior state, this involved getting the learner information and then running six distinct API calls. With Retool, we could arrange all six API calls to run in a back-to-back sequence, enabling us to run the entire process after inputting just one value: learner email. What did this feel like? Imagine playing a game of Where’s Waldo? where someone erases all of the other people on the page except Waldo. The search process was just so much easier with this new tool in Retool.

View of the query editor in the Learner Calendar tool with the six triggered calls that run after a user email is inputted into the UI.

Translation Tagging

Our translation team in Services is doing fantastic work to enable a truly global, multilingual learning experience on the platform. As our translated content has grown at scale, we needed a way to efficiently tag those courses on our backend. By integrating a table made by our data science team that uses machine learning (ML) to find similarity scores to best predict the association between translated and original courses, along with a friendly user interface that enables entering course names for search and buttons to trigger APIs involved in the tagging process, our translation team was able to clean up their tagging backlog with ease.

This cleanup was enabled by two features in Retool. By setting the body call for the POST API call in Javascript code in the editor mode and removing that visually from the translation team in the Retool tool, it removed the possibility of human error.

By allowing inputs of user-friendly course names that get the related course ID, it removes the burden from users of finding and copying character strings. The Javascript Code editor allows accurate formatting with the body structure that is then used in a POST call.

Retool also has a lot of efficiency gains through its form functionalities. Utilizing the trigger on success flow mentioned for the learner calendar, we sourced course settings and then made updates for the tagging just by clicking the “Tag” button. The Retool user would not know these APIs were running in sequence but would just see the successful tag. Also, to prevent an error, the form was disabled when the translated course slug and original course slug values were blank in the tool.

Disabling forms when certain UI elements are empty makes the form submission process more secure. This disabling functionality within the form component is simple and easy to write through Retool.

Degree Suppression List

For tool builds that required additional custom Javascript (JS) Code, Retool Docs were a fantastic support system. We needed a system that removed suppressed emails on a daily basis across programs. Rather than degree specialists running distinct SQL queries by degree program, a standardized script was critical for scale. Fortunately, Retool docs share how to script Retool. The simplicity of a table and a button, with a progress bar as the script runs, has enabled us to remove a cumbersome workflow from our plates and guarantee that degree students get that first email from us when their university email inbox is set up and ready to go, which prompts a positive degree student experience with that initial contact.

The editor view of the suppression list tool shows the table that loads upon opening the tool and a button that runs a script referencing the university email column from that table.

Future State

So where do we go from here? We’re continually looking for ways to become more efficient and scale so we can provide the best experience for learners at every stage of their journey on Coursera. As a result, Coursera is excited for teams across the company to identify opportunities to start their development journey on Retool. Finally, we are looking forward to the next phase of development in Services, which will include prioritized insights through smart dashboards that allow us to strategize and bubble up the most important data across our distinct resources.

Best Practices

Some key learnings happened along the way:

  1. Learn how your database and APIs are structured. Having a solid understanding of the information architecture in your systems will allow you to build smart and efficient solutions.
  2. Study the relational aspects of your database and APIs. Minimizing the need to type a distinct input once at the top of a tool to then get multiple relevant outputs will afford efficiency gains for tool users.
  3. Consider the user interface FIRST rather than the underlying APIs. This will force the tool developer to think about usability, instead of just the quickest migration into Retool.
  4. Think beyond code! Before jumping into opening up custom JavaScript code to trigger several queries or to manipulate data, explore what is native to the platform. Many of the things a developer may wish to do are already existent in features in Retool, and using a truly low-code build mentality will allow for easier maintenance tools by engineers and non-engineers alike in the future.

The Services and Internal Tools teams at Coursera look forward to being a part of the Retool community and connecting with others in their learning journey on this platform. Now please excuse me — I’m off to read some Roald Dahl.

Coursera Engineering

We're changing the way the world learns!