Let's say you're using Airtable as a CRM, and you have a list of leads in your sales pipeline. You might be interested in seeing a forecast of your revenue based on this pipeline. To do this, you'll have to export your data into a number-crunching tool (e.g. a spreadsheet), and use it to run some calculations and produce some charts. Every time your pipeline changes (new leads added, lead information updated, etc.), you'll have to export the data again and re-run the analysis.

Wouldn't it be great to be able to see your revenue forecast inside Airtable, that updates automatically whenever your sales pipeline changes?

What it does

The Causal block shows you a revenue forecast chart based on a list of leads in your Airtable CRM. It takes inputs like "expected deal value", "expected close date", "probability of close", and crunches the numbers to show your future revenue based on your sales pipeline. Whenever your pipeline updates, you can recalculate your forecast in one click.

How I built it

React, redux, and rechart are doing most of the work :) The plugin makes HTTP requests to the Causal API which handles the Monte-Carlo simulation and aggregation.

Challenges I ran into

We had issues with the deployment; is investigating the issue. It was also tricky to use code from our main Causal app. We have a yarn workspaces setup and because we have no control over the bundling mechanism for the block we had to jump through various hoops to make it all work.

Accomplishments that I'm proud of

To feed Airtable data into custom Causal models, we built a very general framework for aggregating Airtable tables with arbitrarily complex aggregation functions. For nerds: you can think of it as map-reduce over Airtable.

What I learned

The JavaScript eco-system is messed up. Airtable's UI library looks great - great inspiration for our own product.

What's next for Causal

In this v1, we defined a specific sales forecasting model in Causal (, which your Airtable data gets fed into. Causal is a flexible number-crunching tool that lets you define your own custom models based on formulas — in the next version of our block, we'll let you connect to your own personal Causal models. You'll be able to define your calculations in Causal, and hook them up to an Airtable table to see custom charts and data tables within Airtable.

Built With

Share this project: