Blog →

Retool Tutorial: Integrating Your Data into Missive

Table of content

by

Philippe Lehoux

November 30, 2022

· Updated on

The process of switching between multiple apps to get all the information you need is counterproductive.

You may experience this problem if you have to switch between your CRM and email client to access information about your client.

Wouldn't it be great to quickly access all of the information you need directly in your email?

If you are using Missive to manage your personal and team emails and you want to display data from your own database or from a Google Sheet, Retool is a good tool to use.

Here is a tutorial on how to use the Retool integration to add this data to Missive.

What Is Retool?

Retool is a powerful and flexible tool that helps you build custom internal applications quickly and easily. It provides a simple, but powerful, drag-and-drop interface that lets you add any data source to custom applications and share them with your team.

How to Use Retool with Missive?

Retool is a great way to create a custom integration that connects a source of data with an application used by your team. You can easily use this low-code solution to build the internal tools you need to kickstart your team's productivity.

In this tutorial, we'll explore how to use Retool to display data from a Google Sheet next to your emails in Missive.

Retool integration in Missive sidebar
 

1. Creating Our Queries in Retool

To be able to see the data of a Google spreadsheet alongside conversations, we'll need to query our Google Sheet document in a Retool application embedded in Missive.

We must first create three queries in our Retool application. To do so, let's log in to Retool and create a new app by clicking on Create new > App. If you don't already have one, create a Retool account.

Then we must create our data queries:

  1. One will query data from the Missive application.
  2. One will query data from a Google Sheet.
  3. One will merge those two data sources and display the correct data in the Retool application (Missive sidebar).

We can add a data source to your Retool application by clicking the + icon and selecting the Resource query. We will first create the query that gets the data of the selected conversation in Missive.

We can add a data source to your Retool application by clicking the + icon in the bottom left panel named Code and selecting Resource query.

To start let's create a query that will fetch the data of the selected conversation in Missive.

Retool dashboard creating a new query
 

Below, we're calling the query getCurrentConversation , but feel free to change the name if you wish. The resource select should be set to ParentWindow and the selector input should be set to conversation.

Retool dadhboard of getCurrentConversation query
 

The second query connects our Google Sheet to Retool. To create it, add a new query as we did previously. In Resource , select + Create a new resource. Then select Google Sheets and follow the instructions.

Retool dashboard creating a new resource
 

From there, we can select the spreadsheet you would like to connect to.

Retool dashboard selecting a resource type
 

We can test with one that has the same columns as this one:

Google Sheet with our data
 

Lastly, we need to create the query that will merge the data from Missive with the spreadsheet. we'll simply name it query. For this one, select Query JSON with SQL as the Resource.

JSON query in Retool
 

The query should be as follows:

select * from {{ googleSheet.data }} where Email = ANY({{getCurrentConversation.data.email_addresses.map(x => x.address.toLowerCase())}})

In a nutshell, this will find all of the rows in the spreadsheet where the email address is equal to at least one in the selected conversation in Missive.

2. Creating a UI for Missive

Now that we have the correct data, we can build a simple user interface to display it. In the right panel of the Retool editor, select the Create tab, then drag and drop the Key Value component in your application.

Creating a Key Value component in Retool
 

Then select the dropped component and in the Inspect tab of the right panel and in the Data input paste {{ query.data[0] }}.

Inspect data in the Key Value component in Retool
 

That's it! We've got a basic but functional application.

Before we try it in Missive, let's make some stylistic changes to the Retool application so it renders better in the Missive right sidebar.

For this, select the More menu at the top-right corner, then select the Scripts and styles option.

Script and style App actions in Retool
 

Then paste this CSS code:

._retool-container-table1 {
   width: 100% !important;
}

._retool-container-keyValue1 {
   width: 100% !important;
}

The ._retool-container-keyValue1 class name depends on the name of your component. Make sure to update it according to your component name.

Adding CSS to our component in Retool
 

This CSS will make the component dynamically resize with the Missive sidebar width.

3. Adding Our Retool Application in Missive

It's time to try this in Missive! Copy the link View link of your application:

Copying Retool app link
 

In Missive, open the Settings > Integrations and add a Retool integration, paste the copied link in the Retool public URL input:

Pasting Retool app link in Missive
 

Lastly, add this ?_embed=true at the end of the pasted URL. It will remove the Retool header from the integration for a far better look.

Retool link with embed at the end vs. a version without
 

Also, make sure to disable the Enable mobile layout from your Retool app settings:

Fix weird rendering issue
 

And here is the final result!

Using Missive JS API from Retool

You can also take advantage of Missive JS API from your Retool app. Here are the steps to do so:

1. Enable parent window communication

By default, Retool will block any communication between the app and its parent window (Missive). You can enable it in your Beta settings:

Emable parent window communication
 

2. Add missive-retool.js library to your Retool app

Add this script in the Scripts and styles section of your Retool app:

https://integrations.missiveapp.com/retool/missive-retool.js

Scripts and styles
 
Add library
 

3. Use the Missive JS API

You can now use the Missive JS API from your Retool app. You can, for example, add a link that will add new comments and tasks to the selected conversation:

Use Missive JS API
 
New comments added to Missive
 

Related articles

Engineering

November 17, 2022

Embracing Hard Limits

All software needs limits. Learn to embrace hard limits throughout your codebase in a proactive and...

Read more
Engineering

January 31, 2020

The death of IMAP for Microsoft users

Microsoft is deprecating Basic Authentication. This is a kiss of death for a lot of email clients out there...

Read more
Explore more

We live in our inboxes.
Let’s make email enjoyable.

Try us out for free, invite a few people to get a feel, and upgrade when you’re ready.

4.8 → Over 500 reviews