Experiments in Online Community Management


by Gabe Fields

June 3, 2022

The Public Library Innovation Exchange (PLIX) is a STEAM education outreach project at the MIT Media Lab. We work with a growing community of public librarians who offer workshops and learning activities to their patrons, and who also interact with one another through our forum. We run events and distribute STEAM learning materials through our website.

Over the years our community has grown a lot and we wanted to have a better system to support them. For example, sometimes we launch new projects focused on specific types of libraries like “rural libraries” and it is helpful to be able to identify who in our community fits that description. 

Picking the right tool

We had a mailing list and a forum and we were running online workshops on a variety of platforms and wanted to find a way to tie together all the data from the various services. We were also hoping to avoid very complex (and often expensive) Customer Relationship Management (CRM) platforms and we are generally in favor of simple but flexible tools that don’t add a lot of cost to our budget. 

After looking at a few different options, we decided to use Airtable as our starting point for our PLIX community database. Airtable can be described as a “spreadsheet-database hybrid”. From a user’s perspective, it is similar to a spreadsheet tool such as Excel or Google Sheets, with a number of tables containing rows and columns and formula functionality. However it also functions in some ways like a relational database, allowing for entries to refer or “link” to one another. This means that we can create relationships between our data, for example, linking one individual to all of the different events they attended. 

Designing a simple data structure

After some experimentation, we settled on a basic structure built around three main tables: Members, Organizations, and Workshops. The “Members” table is a list of people who participate in the PLIX community, and contain some useful information about each one, including location, title, and the ways in which they’ve participated in PLIX. “Organizations” is a list of the organizations that our participants belong to, which are usually public library branches, but could also include other groups such as universities or companies. “Workshops” is a list of events run by us along with relevant information about them.

These three tables are dynamically linked together and you can jump from one to the next. For example, you can look up which events an individual attended and which organization they are affiliated with. While looking at the organization, you can easily see all the other PLIX members who are affiliated with it. And for each event you can see a list of attendees and click on each individual one to see more information about them. 

This allows us to do a variety of useful things. Here are a couple examples: (1) We can select a list of people who have attended more than 1 of our workshops, or who have attended a workshop in the last 6 months. This is a group of people that know PLIX well and who might be good beta-testers for new activities we develop. (2) We can find all the people who work in a particular library, or in libraries in a particular state, which is useful if we get a specific request from a funder who wants to focus on a certain region. (3) We can try to get a sense of our impact on underserved communities, as measured by the percentage of public school students who are registered for Free or Reduced Price school lunches in a specific community.

Pulling in data from a variety of sources

The information in our database comes from a variety of sources:

  1. Newsletter. On our website, we host a Chilipepper form for newsletter sign-up. We send the newsletter through Mailchimp, but our website setup is a little unusual (it’s built on top of Notion and Super) and Chilipepper was the best option to embed a form. The form includes questions about the librarian’s institution and location. Every time the form is submitted, we create a new entry in our database and add them to an “audience” in Mailchimp (Note: we are using Chilipepper, but this sign-up workflow should work with most form software).
  2. Discussion forum. We have a PLIX community forum hosted on the open-source Discourse platform which provides a space for PLIX members to engage with one another, discuss their activities, and share ideas for STEAM learning programs. When people sign up for our forum, we pull the information from their profile and enter it into the Airtable database.
  3. Zoom workshops. We hold regular meetings and workshops with our participants over Zoom, and each time we do so, a list of the attendees is added into the Airtable database.

Tying it all together

We use a service called Integromat (now rebranded as Make) in order to bring together the data from all these sources, add it to Airtable, and make sure there are no duplicate entries. Integromat is a drag-and-drop automation tool which means we don’t have to write actual software code. There are lots of other tools like Integromat (you might be more familiar with Zapier) and they all do more or less the same thing. One thing to look out for is existing “templates” integrations for the services you want to use.

Integromat automations are activated every time a specific event occurs, for example when a new user profile is saved on the discussion forum, or a new user signs-up for the newsletter, or somebody joins a Zoom call for one of our workshops. Integromat then pulls whatever information is given about the participant, and checks if they already have an existing entry in our Airtable database. If not, we create a new entry for the person, or update an existing entry with new information.

Some things we learned 

Setting up the various automations takes some time, but once they are up and running, they mostly just work without us getting involved. Making changes is pretty straight-forward, but it does take a little extra time to test everything. If we were using a more integrated system, we would not have to worry so much about possible unintended consequences. 

One of the major headaches managing user data is to avoid duplicate entries for the same person, if they sign up with different email addresses for example. Airtable’s paid plans include a neat deduplication app, which helps us identify duplicate and entries and merge them. We ended up paying the extra USD for the paid plan mostly for this one feature. 

Integromat doesn’t explicitly require coding knowledge to use, but it does have subtleties which take some time to learn and it utilizes regular expressions for some features. And if you want to do more complex things (such as branching logic which we use to sometimes create new entries and sometimes update existing ones) it may take a little more time to figure out. 

Aside from the existing costs of our mailing, forum, and zoom setups, and by using non-profit discounts, we are able to run the CRM and aggregation portion (Airtable and Integromat) at $21/month. That is still a few hundred USD per year, but considerably less than the larger CRM platforms, and it allows us full customization. 

One downside to our setup is that it would take some time to migrate away from Airtable to another platform while retaining the relationships between our data. And because we use a lot of different tools, the overall system is a little more complex than an integrated application. We have to pay attention to things that might go wrong and it is very helpful to have one team member who has some technical background and can resolve any issues if needed. 


Overall, this system serves our current needs and has a lot of flexibility to expand what tools we use, or swap one tool for another. All it takes is updating the Integromat automations so that the data is now pulled from the new tools. And in the rare case that Integromat doesn’t already have an existing template, it is possible to write new integrations (using webhooks). There is also still a lot more we could do with the data we are using, for example looking at engagement data from the discussion forum. 

One lesson we have learned is that the tool you use is not the most important, but that you want to spend time thinking about the data you want to track and how you will use it. These days it is easy to start collecting a lot of information about your users, just because “you can”, but that can quickly become overwhelming and messy. Time spent on the original design and planning will make your life much easier down the road and keep you focused on what really counts, better supporting your community.

Related Content