How to use AI to enrich a list of email addresses quickly 121 LinkedIn Live 2024 with Joe Apfelbaum

Joe Apfelbaum walks through enriching email lists in a Google Sheet using Make.com, APIs like Reverse Contact and Apollo, and AI assistants like ChatGPT and Perplexity. When APIs fail to return names and company details, he uses prompt engineering to extract the data as JSON and write it back to the sheet automatically.
Chapters
Today I'm going to show you how to enrich a list of email addresses. You see, I have a spreadsheet here with email addresses. I'm going to show you how to enrich a list of email addresses and allow you to be able to just use a tool like Make.com, which is an automation software, to be able to quickly do this. So the first thing you do is you click on create a new scenario. Once you have a new scenario, what you need to do is you need to search a particular list. In my case, I'm going to say search for specific rows on a sheet. Okay, so I'm going to search for rows on a sheet that have an email address. So what sheet should I pick? I'm going to pick a sheet that I recently created, which is this sheet over here. I'm going to pick this sheet. I call it Westchester Business Executives. So I can select it from my Drive. And then I can select the spreadsheet by typing in Westchester Business Executives. And then it wants to know which sheet to use in the spreadsheet. So I'm going to say Sheet 1. And then I'm going to say, show me all the, all the ones that exist. Okay. If they have an email address, show me the email address. And I'm going to say the maximum rows that I want is 1. Okay. So just give me 1. So I'm going to right-click here and hit run, and that's going to show me a person's email address is andreadatakeyconsulting.com. Okay, so now that I have that, what I want to do is I want to enrich that spreadsheet with additional information. For example, I want the person's first name, last name, I want their company name, I want a variety of different things there. So how am I going to do that? What I need to do is I need to find an API that will take the email address and then enrich it with additional information. So over here, I'm gonna call this enrich list of email addresses. Now I'm gonna be using a specific API. Let me just right-click on this, open link in new window, and let me go find that API that I wanna use. Okay, so I'm gonna use this API right over here. I'm going to open it up, see, yep, that's the one I want to use. So I'm going to Shift-click on it, press copy, and then I'm going to just paste it right in here just like this. Okay, so now I just connected this. I want to close this here, I don't need this. I'm going to hit leave. And now what I'm going to do is I'm going to map the fields. So in this case, first name, I'm going to remove first name, I'm going to remove last name because I don't have it. I'm going to remove their company name. I'm going to remove their LinkedIn URL. Again, I don't have it. Their domain, I don't have. And their email, I'm going to select it from email, just like that. Okay, now that I have this here, I'm going to run this once just to kind of see if it finds anybody here. I'm actually going to also remove this filter. There's a little filter in here from my— from where I copied it. I'm going to delete this, press OK, run this once, and let's see if it finds anything. Data, person. It looks like it did not find anything. Okay. So for this particular person here, so let's try to add the person's domain here as well. Let's go domain. We'll manually add the domain for now, and then we'll write Andrea. Okay. Andrea. I'm gonna press okay just to kind of see if that would be helpful. Hit run. Let's see if it found anybody here. Data, person. It did not. Let's see, organization. It found a lot of information about this person's company, but it actually didn't give me their first and last name or any information related to them. Okay, so obviously this is not the best tool to use to identify that. So what we're going to do instead is we're going to delete— we're actually going to unlink it right over here because this one is obviously not working for that. Should we try for another one or should we just not use this tool? Okay, we're not going to use this one here. I'm going to put this on the side here. We're going to go here and we're going to use Reverse, reverse contact. So we're going to do a reverse contact email lookup. And in this case over here, we're going to do email and we're just going to go here like this email. And we're going to use this. I'm going to try this check. And this one takes a little bit longer. And let's see what it brings me. Still going. It's searching the interwebs. Let's see. It found the company. It did not find the person. I wonder why it didn't find this person. Is this person just not— Look at that. A company description. It tells you how many employees they have. But it didn't find information. Found it on when they founded, when they started the company. But it doesn't look like it found the person's— the person is empty here. All right, well, it didn't find the person. Let's unlink this and let's put this on the side here. And let's try another data source. Data, GMA. I'm going to use this one here. We're going to Do find email, find a per— enrich a person or company. Give me an email address of a person. We're gonna do Andrea, and we're gonna hit OK, and we're gonna hit run. See what we get now. See if it finds anybody for that company. Let's see if it found anybody. It looks like it It did not find the person. Email, LinkedIn URL, domain, could not find the person. Huh. Let's unlink this. Let's unlink this as well. All right, well, let's see if we can use another tool to find this person. So, so far I used Reverse Contact, I used Apollo, and I used DataGMA, and nobody was able to find information on this person. Let's see if I do a quick Google search if it finds out who this person is. Um, let's see. Andrea is missing. Hmm. Let's just see. Um, yeah, maybe this person is just a really hard person to find. It's so weird that it's not able to find this person. Let's go to ChatGPT and say, what information can you give me about this email? Let's see what it does. I can't provide information about the email. Okay, let's try Perplexity. What info do you have about this? Let's see, it can be associated with DataKey. However, the research does not provide specific information on an individual named Andrea. Okay, there's no one named Andrea at DataKey Consulting. All right, let's just look up the company real quick and just see. Maybe that DataKey Consulting is not, there is no Andrea related to that. I'm gonna ask Perplexity, what is DataKey Consulting? What is their LinkedIn URL? Let's see, DataKey Consulting. Let's see, DataKey Consulting Group right here. Data Consulting Group, that's not DataKey. Data. Data Key Consulting. Let's see this one here. Okay, they're based in Paris. People. Let's see if there's an Andrea here. There's no Andrea here in the company. So that's probably the reason that I can't find anything. We tested a really hard one. We're gonna put this to the bottom of the list here. And we're gonna try another person here. All right, let's go back to make.com. Let's try again with this. Let's try again with the first one. I'm gonna delete the domain. I'm gonna delete the first name here. And we're going to try again to run this and see if we could find one from this company. We did not find anything. Let's just Google this again. Let's see. OK, so this one we were able to find just with a Google search. We were able to find this person. So let's see if I can— So what would I do in this case? So in this case, what I want to do is I want to say, um, I'm going to go to ChatGPT real quick. Check this out. I'm going to go to ChatGPT and I'm going to say, give me a formula to take emails from C and put the domain of the email in H. Okay. So let's see. All right, excellent. I'm going to copy this. I'm going to go to H, and I'm going to say domain. You see? And I'm going to copy this. I'm going to go like— oh, I'm going to grab all the domains for all these people here. Because sometimes if you put in the domains of the people, um, it gives you a much better chance of finding the person. than if you just do it without a domain. Okay, perfect. All right, let's try this now with the domain. So we're going to go back into make.com. In this case, we're going to go in here, we're going to click domain, and we're going to put h. h is a domain. All right, now we're going to hit run again and see if it finds the person based on the domain. Domain, person, data, person. It found information about the company, but it didn't find the person. Interesting. Interesting. All right, well, this one didn't work. Let's try to unlink this. Unlink this. We're gonna pull this here. And we're going to say we have the email. We don't have the first and last name. Let's try with this other email here. See if it can help me find anything for this particular person. All right, let's see if it found anything. It found the company. So this one does a good job of taking the domain and finding the company, but it didn't find the person. And let's see if it found the company Description, employees. Oh, it has the company LinkedIn URL. That's interesting. All right, let's just look at the company LinkedIn URL. I love that it has a company LinkedIn URL. About. I'm going to click on the people. All right, so let's see if we have a Ciro here. Here, this is the person here. We do have this person here. That's so weird that, let me see if I put in the LinkedIn URL there. So now I have to manually put in each person's LinkedIn URL, and from the LinkedIn URL you can easily find the person, but just from an email address, it's having a hard time. It's so strange that it can't just find an email address. Let me just see if this one does a better job. Let's see, email, run. Let's see if this one will do it too. Yeah, it's not, it's basic information. Oh, look at that, this one found it. It found his LinkedIn URL just like that. That's cool, so DataGMA worked. I like that. DataGMA found this person's information. So now what I'm going to do is I'm going to use DataGMA. Okay. Cause that's, so this one, Apollo had a hard time just with a person's name. Reverse Contact was supposed to like grab emails and do it. And it's very expensive. That one had a hard time, but DataGMA did not have a hard time. So I'm going to use DataGMA for this particular scenario. Um, and then I'm going to say, put it back into the sheet. I'm going to go to Google Sheets. I'm going to say update a row. And then I'm going to say choose a specific— well, we're going to say from manually enter. And then we're going to pull it from this particular spreadsheet here. Spreadsheet ID, sheet name, row number, because it needs to know which row number we're looking at. Column range A to Z. Now it's going to say, what do you want to do? So I'm going to say put in the first name from, from basic first name into first name, and then put in last name into last name and put in LinkedIn URL. So then there would be, let me look at the headers. So we have first, last, email, LinkedIn, phone, company, headline, domain. Okay. So first, last, email, LinkedIn, So we're going to grab LinkedIn company. Company would be, let's see, where's the company? Detail of company. Let's see. Name of company. It doesn't look like there's any company information here. Okay. But at least we'll grab their LinkedIn URL for these people. Let me see. if there's website here. Okay. All right, well, let's try this. Let's do— let's see if this works. So we're gonna do first, last, LinkedIn URL for these. There's 33 people, so we're gonna do— we're gonna go in here, we're gonna start with 10 just to see if it does 10, and then we're gonna hit run. Okay, so we're gonna use DataGMA as a data source, and we're gonna hit run. Let's just see what it does. Oh, it looks like it had a heart attack here. Insufficient credit, upgrade your account. Okay, I guess I ran out of credits at DataGMA, so I gotta go into DataGMA and get my credits going. Unlink, unlink. Sorry, DataGMA. You want money. There's another one called ContactOut as well that I've been trying out. There's a whole bunch of them that you can use, but essentially you put your data source in between here and then it just fills in the person's information. So it did it correctly already for this company. I'm, I'm gonna, I'm gonna see if We can get additional information about each person because, you know, a lot of the people have their company name already in their email address. So I can have AI decipher what the person's first and last name is, kind of normalize the— that's a good idea. Maybe I should do that. Let me try that now. I'm gonna go here. I'm gonna say Perplexity. I'm gonna go to Perplexity. This is a good idea. Let's say you just had email addresses and you're having a hard time filling out the information. So what we're going to do is we're going to create a chat completion and we're going to say, let's use Llama 3. Let's use Ministrail 8x. Max tokens, let's say 25, 250 tokens. Temperature 0.07. Okay, so we're going to do that. Message content role. So we're going to say role is user, and the content is going to be, look at this email, review this email, tell me what information you can see in the email. For example, I need first, last, email, domain, company name. First, last, domain, company name. And if you can search Search for a phone number too. That would be cool. Return the results in a JSON format. Okay, now what I'm going to do is I'm going to build a better, a better prompt than this by using Claude because my prompt sucks. Claude's really good at making prompts. So I'm going to say create a prompt, a prompt for Perplexity to review an email address I give it and make me a— and turn it into a JSON. with info it finds on the web. Give it an example JSON. Here is what I have. Let's see what it does. I can help you refine the prompt for Perplexity. So look at this. Analyze the email address and search for additional information for this person. First name, last name, email address, domain, phone number if available. Return the results in a JSON format. Okay. All right, let's, let's try that out. Let's see if that works. I don't know if it's gonna work or not gonna work. Okay, review this email, analyze the email address for additional information, extract the following details, return an adjacent format. If any information is not found or cannot be altered or null, use null for that field. You can search Google to see if you find more info about the person too. Okay, let's press okay. Let's hit run. Let's, let's limit this to 1, 1 person at a time. Let's actually do 2 of these. Press okay. Run once. And we got an error. Invalid model. Okay, let's change the model. Let's use— so there's a lot of different models here. What is the best perplexity model to use? Let's see. Perplexity. It's saying I don't know. The best Perplexity model to use, more advanced up-to-date model. So let's ask Perplexity what the best model to use. What is the best model to use in make.com to have you do research on email addresses with the Perplexity model? Perplexity API. All right, let's see what it does. You can integrate PerplexityMake.com. You have many models. Which one should I use as Ministro doesn't work? Still not giving me the model. Okay, so let's go in here and let's take a screenshot of all the different models. We're going to use this screenshot tool with a time delay of 2 seconds. So I can pull the dropdown. I'm going to hit okay. And we're going to wait too. Okay. I'm going to copy this. Press copy. Okay. Now I have the model here. I'm going to ask it, compare these models. Compare these models. Want to upload images? Pay us $20. Okay. I'm going to say, give me a list of these models and compare them. I'm also going to go to ChatGPT and do the same thing. Give me a list of these models and compare them. All right, let's just see what it does. In the meantime, let's go to linkedin.com and let us leave a comment using Evie AI because you guys are curious to know how Evie AI works. It's really simple. This is how you leave a comment. Let's go to the feed, open it up, and just drop a comment just like that. I just used Evie AI, which is this tool right here. It's your LinkedIn AI assistant to help you leave a comment. On LinkedIn, just like that. Let's go back to ChatGPT. Minstrel appears to be uniquely custom trained, focused on instructions, size, specification, summary, is likely the most specialized. Uh, it's not working. What are the other ones that are the best? Okay. Now I'm going to ask Perplexity, say, compare these models. But less compatible with larger models. Context window, which one is best for doing research on people? Let's see. Oh my God, which model from above list is best for doing research online? Large. Sonar architecture. Llama 3.0 Sonar 128. All right, let's just use that one. Couldn't you just say that? Llama Sonar large 128 online. All right, let's just do that. Let's press okay. Let's hit run once. Let's see what it gives me back. It gave me back 2 operations, 2 completions. Let's just see what we got here. Choices, message, role assistant content. Oh, look at that. Look at that. Oh my God. What if I ask it to also give me the person's LinkedIn URL? Do you think it'll find it? Hmm. Let, let's check the second one, see if it found it. Um, object choices, message assistant content. Oh my God, it gave me a phone number. All right, ladies and gentlemen, forget about all these like paid services, these paid APIs. Perplexity is just the bomb. Okay, so first name, last name, email address. We're gonna say four is gonna be LinkedIn URL. I'm gonna say five is domain, six is company name, and seven is phone number. Return the JSON format if any user. Here's a JSON format. So we're gonna say email, and then after email we're gonna say. LinkedIn. https://www.linkedin.com/in/johndoe. Okay, uh, let's try it again and see what happens. Oh my goodness, this is great. This is so good. I'm so happy right now. Let's try this again. Run once. Okay, then I'm gonna show you how to drop it into a spreadsheet. This is epic. If this picks up their LinkedIn URL, forget it. Forget about it. Choices. Content. First name. Oh, what did it do here? Phone number not found. Null not found. Okay, didn't find the LinkedIn URL. I think I just screwed this whole thing up by asking it for the LinkedIn URL content. Oh, hang on a second. Oh, it just— did it find it? Analyze the information. Example JSON. This is the input. Sorry, I'm looking at the input. I need the output. Where's the output? Where is the output? Bundle 1, message 1. Content. I gave it the email. Max temperature. Did it not give me any output? Let me see. It gave me the output of 1. Message. Oh, the output's down over here. Usage. Choices. So for the second one, it did not give me output content. Um, I did not find the LinkedIn email. So you know what, let's just— did I break it by asking it for a LinkedIn URL? I think I broke it. All right, let's, let's just go back to what it asked before. Return results in format. Result format. Do not return anything else other than the JSON. Only return the JSON. Okay. I'm going to press OK. I'm going to delete the LinkedIn URL from here because obviously I broke it by adding LinkedIn URL. I'm going to say here, I'm going to put 456, 456. OK, so we're not going to use it for LinkedIn URL. We're going to run this again. This time we're going to run it— oh, you know what, let's just connect this to here. And let's get the first— we can't do that yet. Can we do this? Oh, no. We're going to have to make sense out of the JSON. We're going to have to parse the JSON. We're going to unlink this. We're going to unlink this. And we're going to say parse JSON. We're going to parse— JSON right here. Okay, so when we get the JSON from here, the message should be parsed. So we're going to click on choices message content. Okay, and then from here we'll grab that. Um, let's, let's see what happens. Let's unlink this just temporarily. Let's hit run once. Run anyway. Okay, what happened here? It said not a valid JSON. All right, let's just see why it's not a valid JSON. Choices message. Oh, because it's saying JSON— do not include the word JSON, start with a curly bracket. All right, let's just say, do not— only return the JSON. Do not include— boom. Just return starting with curly bracket. OK. Press OK. Let's do run once, run anyway. Let's see what it does now. Oh, look at that. We got one, we got 2, we got 2 example JSONs here. So let's see what the JSONs were. And let's just connect this. Let's grab this. Let's go here and delete, delete, delete. We're gonna go here and we're gonna say, give me first name, last name. We have the email already. We don't have their LinkedIn URL. We have their domain. We'll replace the domain on H. Their company name was on F. F is company name. Phone number is E. Phone number. So we got— and D would be their LinkedIn URL. So we'll use another API to get their LinkedIn URL. But this is actually really, really cool that we can do this. Okay, so let us go and fill this out and watch it get filled out 33 times. All right, you ready? I'm gonna hit 33. We're gonna press OK, and we're gonna watch this spreadsheet start getting filled out. Let's see if this works. Run. Hang on a second. What's the error here? Oh, did we not fill this out? Didn't we just fill this out? Let's try this again. First, last. Oh my gosh. Hi. All right, let's just see what's happening. OK. All right, let's just see what I'm doing over here. So first, last, we're going to do emails already there. D is Um, D would be LinkedIn URL, so we're not gonna do LinkedIn URL. Let's see. Let's go back over here. But as you can see, this actually works, which is incredible that this works. We need to get— the phone is on E, so go to E, grab the phone number. The company name is on F, so go to F, grab the company name. Um, their domain name, we're gonna— their domain name is on H. We're gonna replace their domain name with whatever this found because, you know, if it's doing research Let's see. All right, let's just see. First name, last name, phone number, company, domain name. Press OK. And now let's just hit save. And let's hit run and see what it does. Let's see if it fills it out. Error for phone number. I know why it errored out. It errored out because I need a little, a little dash here. Okay, let me add the dash. I can have the AI add the dash automatically. Let's see if it does it for all of them. Oh, it looks like it failed here. But this is really, really cool that you can do this. All right, thank you very much everyone for watching this, and I'll talk to
More from Joe

How to Beat the Algorithm: Remove Hidden Watermarks & Scale Content with evyAI









