Link building is a time suck.
You have to find prospects, vet them, find their emails, verify them, and send outreach emails
plus some follow ups.
But half of these steps can be semi-automated using Zapier.
So if you want to learn how to automate these 3 steps of the link building process, then stay tuned.
[music]
If you haven't heard of Zapier it's a tool that lets you connect web apps together
using "If... Then" statements.
When you create a combination of web apps, they're called "zaps."
For example, this zap says: "If you get a new customer through Stripe then add them
to an onboarding sequence in ActiveCampaign.
Or if you have a paid account with Zapier, you can create multi-step automations.
So lets add on to our previous example, which now says:
"If you get a new customer through Stripe then add them to an onboarding sequence in ActiveCampaign
and send them an SMS through Twilio.
Zapier has over 2,000 apps you can mix and match, so there are virtually an infinite
number of automations you can create.
But hey, this tutorial is about automating link building.
So to prepare our link building automation, we need to do some of the manual work first like
getting a list of link prospects, vetting them and finding the first and last name of authors or editors.
To do this, I exported backlinks reports from Ahrefs' Site Explorer and had someone vet
the list of prospects.
Now, the only thing manual left to do is to find the first and last names of the people
we should be contacting.
Now, two quick sidenotes:
#1. I've already had someone find these people and I've recorded their names in a note.
And the reason why I'm not entering them in here yet is because the automation requires
a trigger in order to start.
So we'll talk about this in a second.
And the second sidenote is that you need at least one row of sample data in order to
actually build and test the automation.
So for that reason, I've entered the first and last name of the person in the last row of the sheet.
And in this case, I used my own information to protect the privacy of others.
Let's start building our zap.
Alright, so the first thing we need to do is set our trigger.
Basically, Zapier needs to know when it should run the automation.
So the first step in any automation will be to choose an app and then a trigger event.
So I've chosen Google Sheets as my app, and based on the selections from the dropdown,
I want my automation to start when there's a new or updated spreadsheet row.
Next, I gave Zapier access to my Google Drive and this is something you'll need to do with
any third-party app you want to integrate.
In the next part, I chose my spreadsheet, selected the worksheet, and I also set a trigger column.
The trigger column is basically a more specific condition that needs to be met
in order for the automation to run.
So this is what I was referring to in my sidenote and as you can see I've set the zap to run
after the Last Name field is updated in the sheet.
So I'll go to Find Data and expand my data sample to make sure everything looks good
and I'm going to select that row for the rest of our testing.
Alright, so the next step is to set our first action.
And looking back to our initial 5-step list of link building steps,
the first action we need to do is find emails.
So as you can see here, I've set the app to Hunter and the Action Event to Find Emails.
Now, for the custom settings, you'll need to map the Domain, First Name and Last Name
fields with the columns in your sheet.
Otherwise the app won't work using the Find Emails action since these are all required fields.
Now, let's pause for a second and go over a couple email-finding scenarios you may run into.
Scenario one is if you can't find a first and last name.
In this case, the zap won't be triggered because we set our event to only happen
if the Last Name column is updated.
So in this case, you'll have to find the email manually.
Scenario 2 is if you have the first name but can't find the last name.
This is the same deal as scenario one.
But since a lot of people and companies use emails like firstname@domain.com, you can
try entering the letter "a" in the last name field to run the row through your automation.
Worst-case scenario, you get an invalid email that won't even be sent.
And the best-case scenario is you find their email.
Alright, the next step is to update your spreadsheet with the found email.
But before we can do that, we need to set up a separate step to find the correct
spreadsheet row to update.
Otherwise, Zapier might update the wrong rows and we don't want that.
So, here I've chosen Google Sheets as my app and Lookup Spreadsheet Row as the event action.
For the custom options, I've selected the Spreadsheet and Worksheet as usual.
But you also have to set a Lookup Column and a Lookup Value.
For the Lookup Column, select the Referring Page since there shouldn't be any duplicates there.
And for the Lookup Value, just click the dropdown and find the corresponding referring page value.
Now, I'll click on the Send Data tab and click Test and Review to make sure everything looks good.
Okay, so now we need to actually update the email into our spreadsheet.
So I set up a new step and I've chosen Google sheets as my app.
And now that we're creating an Action instead of a Trigger, we have the option
to update a spreadsheet row.
So for our custom settings, I've selected my Spreadsheet and Worksheet as required,
and for the Row, you actually have to choose a custom value.
So just click on the dropdown, then choose the Custom tab,
and then select the Row from the third step.
By doing this, Zapier will dynamically choose the row it's working on for future tasks.
And all we need to do now is go to the email field since that's what we're updating, click the dropdown,
click on the Hunter dropdown and choose the found email address.
Now, when we go to the last step and click Test and Review, you'll see that the data is correct
and if we look at our spreadsheet,
it should have been automatically updated with the email address that Hunter found.
Alright, the next step in our list is to validate the email,
meaning, is the email Hunter found deliverable?
Now, in order to verify an email, you need an email address to validate.
The thing is, Hunter won't always find an email.
So we need to add a filter step before connecting our email validation app.
If you're not familiar with Zapier filters, they're just conditional operators.
So by setting one, we're telling the automation: "Only continue If a specific condition is met."
So I've chosen Filter by Zapier as my app.
And then I set a condition that says:
"Only continue if the Email from Hunter contains the @ symbol.
Reason being, all email addresses have an @ symbol and if Hunter didn't find an email,
then the automation should stop and run again on the next row of data.
So I'll click Continue, and Zapier confirms that this zap would have continued
because Hunter found an email.
Now, that our filter is good to go, I'll choose my email validator app, which is NeverBounce.
And I've selected the action to Verify Email Address.
And customizing this is really easy.
Just click the dropdown, choose Hunter, and then select the email field.
So we'll test and continue on with our automation to make sure the data is being pulled in correctly.
And in this case, the email is valid.
Now, the next step in our automation is to update our spreadsheet with the NeverBounce status.
So in this step, I've chosen Google Sheets as my app, and set the Action to Update Spreadsheet Row.
And since we had previously set up a lookup step to find the row we need to update,
I'll click on the Row textbox, then the Custom tab, and choose the correct row number from step 3 again.
Finally, I've mapped the NeverBounce text result code to the Verify column in my Google Sheet.
And you can quickly find that by just clicking on the textbox and searching for "text result code."
Finally, I'll hit the Test and Review button, and then look back to my spreadsheet
to make sure the correct row was updated.
And everything looks good here.
Now, if you haven't worked with NeverBounce, they generally send back one of four status codes.
Valid, catchall, invalid, and unknown.
From my experience valid emails are deliverable around 98% of the time, catchall emails are
around 80-85% correct, and then invalid and unknown emails are almost always undeliverable.
So to make sure we're not sending emails to invalid addresses, the next step is to set a filter.
So I chose "Filter by Zapier" as my app.
And for the conditions, I've set it to say:
"Only continue if NeverBounce's text result code is valid OR if the text result code is catchall.
Otherwise stop the automation."
And if I click Continue, you'll see that this particular task would have continued because the email was valid.
Alright, the next step is to actually send these emails and follow-ups.
And the tool that I use to do this is Mailshake.
Mailshake is an email outreach tool that lets you send personalized emails and automated follow-ups.
Now, I won't bother going through setting up Mailshake since that's outside of the scope of this tutorial.
So within Zapier, I've added another Do this action and chose Mailshake as my app.
And for the Action Event, I set it to add a recipient by email address which will add
the prospect to one of my campaigns that I've already set up in Mailshake.
Now, we need to customize the settings for Mailshake.
First, I chose my Mailshake campaign which is called Ahrefs Sample Campaign.
For email, I clicked the dropdown and chose the one found directly from Hunter.
And then I choose the first and last name from my Google Sheet.
The last thing I added here is a Text Replacement, more commonly referred to as a merge field.
These are just snippets of code you can add to your email template, which will dynamically
replace them for each contact.
And the primary purpose is for personalization.
So as an example, I'm feeding the referring page from my Google Sheet into Mailshake.
To complete this step, I'll go to Send Data and click on Test and Continue.
Now, if I head on over to my Mailshake account, you'll see that one contact was added.
And if I go to the email preview, you can see that the contact's referring page URL
was inserted into the email since that's how I set up my sample template.
Ok, the final step is to update your Google Sheet with some data from Mailshake.
And this is more for tracking purposes.
Again, I chose Google Sheets as my App and Update Spreadsheet Row as my Action Event.
I chose my Spreadsheet and Worksheet,
then I chose the dynamically selected row that we found in step 3.
And finally, I set the step to update the status ID column with Mailshake's Check Status ID response,
which confirms that Mailshake has received the request.
If I run the Test and Continue, then you'll see that the final column in the sheet gets updated.
So the entire automation is setup and all we need to do now is turn on the zap
and then start entering in first names and last names into our sheet.
And as the zap runs, it should slowly but surely fill in the blank spaces for you when the last name
column is updated since that's our trigger.
And now you have yourself a semi-automated outreach and link building system.
Now, keep in mind that this is a system - it's meant to work for you over time.
And with the time you save, you can spend that on personalizing your emails and improving conversions.
Now, I'd love to know if this is something you're going to try when doing outreach for links.
Let me know in the comments, and if you enjoyed this video, make sure to like, share and subscribe
for more actionable SEO and marketing tutorials.
So keep grinding away, and I'll see you in the next tutorial.