How to Automate Real Estate Data with Zapier and Zillow

Are you looking to automatically get informations such as property estimates and lot size zoning? In this video I'm going to show you how to use Zapier and Zillow in order to get this information.

Transcription

00:00

Hey everyone, are you a real estate agent, investor or wholesaler and you're looking to get information on a property such as property estimates, lot size zoning, how do you get this data? And how do you get it automatically? Well in this video, I'm going to show you how to use Zapier and Zillow. In order to get this information into a spreadsheet. Well we're going to do is you're going to have a Google spreadsheet where every time you enter in a new address, data will automatically populate to get you information like Zestimate and Renton Zestimate. My name is Ariel Herrera with the analytics area channel, we bridge the gap between real estate and technology. My passion is going into data finding tools to automate your processes, and allow you to scale your business. This is the kind of content that you enjoy them, please subscribe as well as like this video, so I know to make more like it. Alright, let's get started. For a Zapier workflow, we're going to be using Google Sheets. Google Sheets is going to allow us to have a list of properties. And we're going to state what columns we want to automatically get data for from our Zillow API with absolutely no code. And to do this, we're going to have a flow. So our flow is going to start off with Google Sheets, which is free to use. You can open up an account, just get a Gmail account. Then second, we're going to use Zapier and Zapier is a workflow automation tool allows you to connect to many different apps. I'll discuss it in a moment. But after that, once we have a property address, we want to say Alright, go get property detail. But how do we actually know what the property is what the ID is? So Zillow has a unique identifier for every single property. This is called the Z PID. If you look at one property on Zillow, you'll see in the URL that CPE ID is at the very end. And in order to extract that from the URL, we're going to need to do a Google search. So say for example, if I search a property right now, I'm going to look at 11622, pure pebble, drive and river view. And if we select the Zillow link, we're going to see up top, there's a Z PID, this is what we want to be able to extract. And we want to recreate this flow adjusted but automatically. So that's why we're going to be using a Google search API, it's going to get us the top search results. And we're going to take the first one, which is the Zillow home details and take them CPI D. Once we have that CPI D, we could feed it into the API, which is structured data. And here we're going to get all the information that's on Zillow, right here, back within our spreadsheet. Because there's so much information that comes back, I'm only going to pull the Zestimate and rents estimate. But you could pull so much more if you'd like. In addition to this video, I also have a supporting blog on the medium. If you'd like to follow a step by step instructions and screenshots. I highly suggest to check out the blog as well. And don't forget to follow me there too. Great. So what exactly is Zapier? Zapier is the automation tool. And it all starts with an app. There's only a few components. So it's super simple to follow. Let's go through an example together. So let's imagine that we have multiple apps that connect with one another. And we currently have in our business that we gather leads from Facebook. So maybe we're a wholesaler, and we're looking to acquire motivated sellers. So people who have not put their house on the market, but maybe they are motivated to sell maybe they're retiring and they're possibly looking to sell soon. They just haven't put it up yet. So we put a Facebook ad that says hey, are you retiring, looking to move down to Florida and in New Jersey area, click here and we could buy your home with cash fast. So someone clicks the Facebook ad, this is now lead. And we want to be able to do something with that. So in this example, Zapier allows you to have that trigger. So the trigger is whenever there's a new lead on Facebook, do something that actions is where we do something. So in this example, the action is is messaging slack and slack is a communication channel, so we can notify our team that a new lead just came in.

04:37

Then we can take it a step further by adding our new lead to our email list through MailChimp. So as you see, we can connect many different apps and this allows us to have transparency across our processes and also just automate things so that we're not getting bogged down with manual tasks. Great. So once you sign up for a 14 day free trial for Zapier, you're going to be met with your homepage. At your homepage, you want to go over to the plus button on the left hand side to create a zap. But before we do that, just to note, there are several things you could do here. So you will be able to see all of your zaps in one place, you'll be able to see your zap history, so anything has failed. Or if you want to see how often a certain zap was being triggered, you could see that here. And you could also see based on your plan, how many tasks within a given month have gone off, as well as how many zaps you have that are currently active. So let's go to create a zap and for our trigger. So what's going to initiate this workflow is we want that every single time a property is added into our spreadsheet, we want to get the property estimates. So our app here is going to be Google Sheets. Next, because we want to have a workflow when there's a new spreadsheet row, we're going to select here, use spreadsheet row. And then for a Google account, you'll just have to quickly connect, it takes two seconds, and then you'll be able to select your account. And then click Continue. And for your spreadsheet, either create one on your own. For me, in particular, I just put some dummy data together that I originally had gotten from Prop stream and created a quick spreadsheet of my list of properties, you're welcome to clone it into your own Google Drive file if you'd like. So I'm going to select this. And it's going to ask what worksheet we want to select. So in this case, it's just going to be the first sheet that's there. And now the great part here is that as we start to create these triggers actions, and really put together a workflow, we can actually test to make sure along the way that it is working. So here we're going to test our trigger. And it's basically going to our Google spreadsheet that we just said, is going to be our main one, and it's selecting one of the rows. In this case, it's selected row four, and it states back to us what the columns are. So in this first column, we see the street address, which is 258 Columbus Ave. And if we go back to our spreadsheet, we could see that that is there in the fourth row. And ultimately, we want to be able to populate the Zestimate and rents estimate. So now going back into our zap, we can hit continue. And the next step is we want to get the XEP ID ZP ID, again is coming from the Google search. And this is the one step that we do need to implement code. But don't worry, I've already written it. So all you to do is just copy and paste. So Zapier does allow the flexibility of writing custom code. Here, we're going to write code by Zapier, select it, and we're going to select Python. Hit Continue. Now for this part, we're going to make a process. So we want to take in information on the property address so that we could search it on Google. So here we're going to start off with making a variable called Street.

08:13

And this is going to correspond if we look at our spreadsheet with that field called address, so I'm going to select that there. And we're going to repeat this for three more elements. So that's going to include the city, state and zip code. Great. So now we have all of our input elements. And here in our code, they already give us an output, which is in a list format with a nested dictionary that has an ID and it says hello world. So say if we just continue this and we tested it, we would see that after running this code block, we get two variables back, we get the ID, which equals 123. And we get Hello, which equals world. But of course, we don't want these values, we want to get the XEP ID. So now, going back in here, if you navigate over to the blog that I have on the medium, and scroll down, you'll see that I have the code block right in the middle here. What we can do is copy this, I'm quickly going to walk through what this code is. And also make sure that you change your API key here. We'll review that now. So what I'm doing here is I am importing requests requests is a library that allows us to get an information from HTTP, which is the web. And here the first step is I am setting the property address. So I want to have one long string that says city state, zip code and street. So here I'm taking my input stream, which was up here and I am appending another string which just the comma i do that For the rest, you just have one long string, then the next thing I want to do is I want to replace any spaces with pluses because that's the only way it's going to be interpreted within our search. Now, this part is particular for the API that we're requesting data for. Let's go to that right now. The Google Search API is a freemium model. So we can use it for free on rapid API. Rapid API basically is like a marketplace, where you could find data sources via API's so that you can use it for your applications. So in this case, you're going to go to the Google Search API, it's also within the link below. And you can find it on that medium blog. Here, if we go over to pricing, we can see that we have a hard limit where we could do up to 600 searches a month, which is pretty good. And if you want to get even more than that, you can go up and tiers of paying for a subscription. Or you can look at my Python solution, where you could do everything for free using Python. So now if we go over to the endpoint here, we're going to need to subscribe. So make sure you have a rapid API account, which is free, and you subscribe to actually use this API. Here, if you go over to Python requests, you can see that they actually give you readily available code to run this information. So we have here our URL. At the end, the query is Elon Musk. And there's some information on whether we're using a desktop to get this information, what the location is, which this is just set to EU, you could change that to whatever your location is. And then it ultimately gets the data after passing in the URL for query and the headers. If we want to look at example responses, we could say that if we were to have ran this, we would be able to get information on answers, image results, and URL results on what web searches come up when we search Elon Musk. But of course, we're not searching Elon Musk, we're searching properties. So once you're able to connect to Google Search API, you're going to see right here that you have an API key. This API key is what you're going to replace within the box in Zapier. So right here, you're going to enter your API key within the strings. And what's going to happen next is it's going to get the data. Once it gets the data, we have this portion in Python that basically goes digging to find that first URL and returns that value. Once that URL is returned. However, as we noted before, the Z P ID is at the end of it. So we want to parse that out of our string. So we do that in this next line. And once we have all that information, we can just output it. And we're going to label four different variables. So we're going to have the property address, our query search. So what we sent to Google in order to get data back where our Zillow URL is, and then what our Z P ID ultimately is, which is what we need to get that property detail. Once that information is in, you can hit Test and continue. This is going to now make that request to the Google search in order to return the values that we need, should only take a couple of seconds. And here we see everything has been processed, we have our four variables that we created. So we have the property address, which is 258, Columbus, Ave, Woodbridge, New Jersey, we have the query search. So all the pluses were added in order to send it within this request. And then we were able to get a Zillow URL back. But of course, we just set CPE ID. So we parse that information, and now we have that available. So we have two options now to either retest and review or publish that. We're not done with this yet. So we're actually going to go to the bottom here to add an additional action. Now our next step is to get that property detail which I know you're looking forward to.

14:20

So here I'm going to search webhook. web hooks by Zapier allows us to interact with API's. The reason why we didn't do it for the Google search is because we have to parse that information to get the Zpe ID. But in this case, once we get the information for property details Zillow, we could just accept everything and move on to input them into our Google Sheets. So here we're going to select Get Data, hit Continue. The zillow.com API is pretty similar to the previous one we just went through, so you're going to have to subscribe to it and within their price They do have a free tier, their free tier offers 20 property searches a month. And you can go up to a pro membership, which is what I have, where you get 9000 A month for only 30 bucks, which is really great. So if we go now back to the endpoint, we could see that there's multiple endpoints here. So we could do things like extended search, that's basically everything that's for sale or has been sold, we can get information on images, just strictly rent, walk, and transit score, and more. And this case, we're going to focus on the property details. And as we see, we're going to have the same availability, where we could go over to Python, and select requests. Once we select Request, we'll see our API key here. And we could look at example responses, which is a lot I think there's about over 200 different elements that are here, because you have to remember that everything is being scraped off of the site by a third party, who then makes it available via the API. So some of the information we receive is how long a property has been on Zillow. Also the XEP ideas there, which is how we extract the data, we also get information on the Zestimate. And there's a lot more including information on the interior, exterior, the house, schools, bedrooms, baths, if there's a tenant there, and if the insula has information that they're paying, that could also be available. So in our code snippet, we need to point towards this URL. So let's copy that here and bring it back over into Zapier. Now, for our query string parameters, if we go back to rapid API, we could see that all it requires is that CP ID. So we can go back here and type in C, PID, and our Z PID is going to be dynamic, which is great. So here, if we go to run Python code by Zapier, which was our second step, we could see the XE PID is right here. So we're going to select that, which means that every time we have a new property, it's going to retrieve the CP ID for that property, and this field is going to change. Now the remaining parameters here, we're not going to touch where we are going to input our headers. So the headers are labeled as well on rapidapi. We're going to select each of these parameters and enter them within Zapier. The data is now retrieved from the API. And now we have so much information on the property. At first we see a lot of null values, but that's okay. If we start to scroll down, we could see that we start to get information on the property location, city ID F IP s, we also get the living area, and even more, but in this case, we want to use the Zestimate. So here we type of investment, we can see all the fields that are related to that in our response. So we have Zestimate, as well as rents estimate. So now we're going to create our last action. Here, we click the plus button. And we want to send this data back into our spreadsheet. So we're going to select Google Sheets. Within Google Sheets, our event is going to change. In this case, we don't want to create anything new, we just want to update the existing spreadsheet row that we have. We're going to connect again to our Google account and select that same spreadsheet that we had earlier. Great. So at this stage, you should have your Drive spreadsheet, and she all connected. Now we're going to see that we have to specify the row that needs to get updated. How are we going to dynamically get this row you might be thinking, Well, if we go to this custom section, we can go over to new spreadsheet row, show all options. And that initial row that was in the very beginning that trigger this whole entire workflow is what we want to grab. So we can select row ID here.

19:08

And we now we have all of the columns that are in our Google Sheets. But of course these first columns are usually already populated. So we've just want to populate i and j. And we could see those down here is estimate and rents estimate. So if we enter here, we could go to our third step in the flow, which was the web hooks by Zapier, we can go down and we could see all different information we can get. We could even put in a description the city, etc. But we want to look at Zestimate. So let's enter that here and select Zestimate from that web hook. We're going to do the same exact thing for rents estimate. This is our last step in order to test and make sure this is working. So we hit testing continue. And what Zapier is doing is sending this data back to Google Sheets. It does pretty quickly. And here we see in these last two columns for i and j, that we have the Zestimate. And the retinas estimate, we could even prove and check that we have that in that row for. So ultimately we're able to complete this flow. But in order to have it go live, what you want to do is publish your zap, publish it and turn it on. This will go live in a couple of seconds. Now depending on what type of plan you have a Zapier is how quick it's going to respond. So in the starter plan that I currently use, there's a 15 minute update time, which means say if I were to enter in a property within a Google sheet, it could take up to 15 minutes for the whole web hook to kick off. But if you need your workflow to start more quickly, and maybe you need to send a deal immediately, and you're very pressed on time, they may want to upgrade into another one of these plans. as well. In order to use code via Zapier and to use web hooks in Zapier, you have to have a minimum of a starter plan, which in my eyes is completely worth it. Because if you're evaluating your time and you're manually gathering these values, I can bet you that $20 is definitely worth your time within the hour. All right. Well, thank you so much for watching this video. I hope you're able to get a lot of insights of how to use Zapier to connect different apps together as well how to get crafty at being able to pull data from different API's and ultimately enrich our datasets. If you haven't already, please subscribe. Thanks

Previous
Previous

How to Overcome Fear to Invest in Real Estate | Arley Wolf

Next
Next

05-27-22 Tech in Real Estate News | Home Price Drops