Advertising on Craigslist? Replying to potential leads sucks. Here’s what we used to fix that.

Sergio R. Angeles
Sep 3, 2016 · 6 min read

After a recent rental property of ours became vacant, we wanted to bring our property management business processes to the 21st century. We started using Cozy, a free online property management software, and Calendly, an online scheduling tool to help us schedule property showings quickly and efficiently.

While creating the Craigslist ad for our newly available rental property was simple enough, replying to each potential tenant became quiet time consuming. Each email asked for different information regardless of what we said in our ad. In addition, we were manually keeping track of who was interested in the property by updating a Google Spreadsheet.

There had to be a way to automate this process.


Zapier to the rescue

I heard of Zapier awhile back after seeing that some startups were using it to build their MVP. Instead of developing their backend system, they were using Zapier, a tool that connects 500+ business apps, to automate their business workflow processes. Given I wanted to automate our current process (and also to see how Zapier works), I decided to give it a whirl.

Our objective: Reply to Craigslist interest emails automatically and save potentially interested tenant information into a CRM (Google spreadsheet for now..).

The 4 Zaps used to automate the process

Before discussing in more detail how these were implemented, here are the 4 Zaps that we created to help automate our process.

Zap 1:

  1. Scan gmail for new Craigslist emails.
  2. Extract information from email and save it to a google spreadsheet.

Zap 2:

  1. Send an email to the interested tenant including information about the property, a link to the Calendly showing schedule, and the online application (done through Cozy.co)

Zap 3:

  1. Calendly checks to see if someone has schedule a showing
  2. Extract showing information (e.g. name, show time, email) and save it to the spreadsheet

Zap 4:

  1. Calendly checks for showings that have been cancelled
  2. Update information on spreadsheet with cancellation reason

Note: our Zapier free trial ended during the creation of the zaps so we did upgrade to the basic tier. We are also using multi-step zaps, which you cannot do in the free tier.


Zap 1: Search Gmail for new Craigslist email and create a new row in our spreadsheet CRM

Since our Craigslist account was tied to our Gmail account, we decided to use a Gmail + Google Spreadsheet zap.

Zapier has a Gmail trigger that fires when you receive a new email that matches a search string you provide. We wanted to detect all emails sent from Craigslist, so our search string was: from:reply.craigslist.org.

If a new email was detected by Zapier, we would proceed to next step — the “Lookup Spreadsheet Row” action. Since potential tenants may reply back to us after sending them an email, we didn’t wan’t to add the same information twice. Since the email address from the Craigslist sender is unique, we looked to see if it already existed in the spreadsheet. If it did, we wouldn’t do anything; if it did not, we would extract data from the email and create a new row in the spreadsheet.

Saving data from Craigslist email into the spreadsheet

Zap 2: Sending a “Thank you for your interest” email

This zap is a bit confusing but here is the simplified version:

  1. Google Sheets checks if a new row was added
  2. Check to see if the automated email was already sent by checking out “Sent Welcome Email” column.
  3. Send standardized email to the interested tenant if it hasn’t been sent before
  4. Update spreadsheet to note that email was sent to that person

This zap only gets triggered when a new row is added to the spreadsheet. Once the zap starts we first check to see if the automated email has been sent already to the interested tenant. For this we created a “Sent Welcome Email” column in our spreadsheet. When the row is created for the first time, this column has “No”; when the email is sent, this column is updated to “Yes”. We came up with this strategy to avoid accidentally sending multiple automated emails to the same person.

Since Zapier allows you reference data from a previous app in your zap (in this case, Google Sheets), sending the email from Gmail was relatively straightforward since we saved the Craigslist email address of the user and the email subject (this is the title of the Craigslist ad) in our spreadsheet.

As for the body of the email, we analyzed all of the emails we received before automating the process and we found that most of the interested tenants replied wanting to know more about the property, the application process, and to schedule a showing. So, we wrote a standardized email that included all of that information.

Lastly, as mentioned earlier, we needed to update the “Sent Welcome Email” column. Zapier allows you to update spreadsheets given you can provide it with a row ID. We decided to use the Craigslist email address as the unique ID (hopefully Craigslist doesn’t change this…) to find the row we want and update the column to say “Yes”.

The Zap 2 process

Zap 3: Save showing information from Calendly

Lucky for us, Calendly, our showing scheduling tool, has support for Zapier and this zap gets triggered every time an interested tenant schedules a showing via Calendly.

While we wanted to save the showing information to the same spreadsheet as before and simply update the row for the tenant, we hit a snag. As I mentioned earlier, in order to update a row you need to provide Zapier with the Row ID. Unfortunately for us, the email a user provides in Calendly is not their Craigslist email — so we couldn’t use that. We could use the person’s name, but what if 2 people have the same name? In the end, we decided to simply save all of the showing information to a separate worksheet.

Saving Calendly Data to Spreadsheet

Zap 4: Update spreadsheet if showing is cancelled

While this zap isn’t needed per se, we created another zap to detect if the showing was canceled and update the spreadsheet with the cancellation reason. This zap is pretty similar to zap 2 in that before updating the row (in this case the row of cancelled user) we must search the spreadsheet and obtain the row ID — in this case, we used the person’s email as the unique ID. Once the proper row was selected, we simply updated the cancellation reason column.

Zap 4. On the left are the 3 tasks. On the right is the logic to update the row from Calendly.

Future Improvements

While we have been extremely happy about automating this process, there are a couple things we would like to improve:

  1. Do not send automated email replies to Craigslist junk mail.
  2. Add support to send automated emails for Zillow, Trulia, etc.
  3. Find a way to have everything on one worksheet (or find a better CRM…)

Overall, setting up Zapier to automate our business process was relatively easy and straightforward. Instead of spending time replying to individual emails, everything is now standardized and automatic. Our Google spreadsheet CRM is updated without having to copy-and-paste. And while there are some shortcomings, we will save that for later.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade