Search Results to Email Enrichment
Search Results to Email Enrichment
Description
Turn the Sales Navigator Search Export into the Email Addresses of the People in the search
Platform
Parabola.io
Workflow
Schedule/Trigger
0, 1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21, 22, 23
We will take the results of the Sales Navigator Search Export workflow and turn the names and companies of the people in those searches into their email addresses.

1. Filter for Most Recent Contacts
On a legacy pricing plan that I don't want to give up for Parabola, I need to stay under 100,000 rows of data. Join steps can cause the total number of rows to be multiplied several times over. To avoid reaching this limit, I filter for the 10,000 most recent contacts to ensure I can use join steps in the future.
To accomplish a filter for the 10,000 most recent rows is a 4 step process.
Insert row numbers
Use a
Sort
step to sort in descending order - the bottom row is now on topInsert row numbers
Row filter
to remove any row numbers from step 3 that are greater than 10,000
Use a Join
step on the Company URL column and the Query column from the Linkedin Company Scraper.
We will import the results of the Linkedin Companies Info scrape and Join
them with the contacts table in Parabola.
2. Join Contact Data with Search Terms
Next we will use a Sheets Import
step to bring in the Parvenu Search Links Sheet and Join
them with the contact and company data and De-dupe
by Full Name.
We will then use a Rename
step to follow the headers standardization format.
3. Adjust the Count Tab and Error Handling
The Count tab of the Parvenu Search Links Sheet contains a number from 0 to 10,000. We will use a Math
step to assign a maximum row number of 10,000 - 5. Next we will use a Common Join step to Join
the main table with the Search Links Sheet using Common that we create from Insert Static Columns
.

After the Join
we will add a second Insert Row Numbers
. We had an earlier Row Number column in descending order from the first step of this workflow that is still in the table. This Insert Row Numbers
gives us a table with columns that look like this:

Next we'll use a Math
step to calculate how many people we are going to send through the workflow at once. Both finding a contact's email address and subsequently verifying that email address are done via third party APIs. These APIs can time out and have varying degrees of reliability when running them through Parabola.
Error handling in Parabola can be significantly improved on their side. If you attempt to enrich for 750 email addresses using separate API calls and 749 succeed and 1 fail, you won't be able to pass any data to the next step of Parabola causing the workflow to fail on all 750 people. To further complicate things, many third party APIs are pay per usage and a scenario where 749 succeed and 1 fails would result in 750 API calls being counted as having been used, while every step after that will fail and you won't get access to any of those API calls you paid for.
Instead of enriching for 750 contacts at one time, I've found a more reliable approach is to run that same workflow for 75 people 10 separate times. This helps reduce timeouts and improves consistency.
I have found enriching for ~75 people at one time to be the most consistent. Fewer people than that starts to be less value than the cost to run the flow, while adding many more people will cause the flow to become unstable.
Next we'll use a Math
step to add Count Min as "{Count} + 75" if we want it to enrich for 75 people at one time. If the Count from Parvenu Search Links is 6276, then the Count Min would equal 6351.
Next we'll use an If/Else
step to say that if Row Number (1) greater than or equal to Count AND Row Number (1) is less than Count to create a new column called Filter and put an "X" in it if it matches our conditions.
In the above example it would put an "X" in the Filter column for all the columns between 6276 and 6351. Then we use a Row Filter
to keep rows who have a Filter column with an "X." This leaves us with the 75 rows that come after the Count value being imported from the Parvenu Search Links Sheet.
We then use a Math
step to add Count + 75 and rename that column as Count. A workflow that starts with a Count of 6276 will export the new Count as 6351. Then next time the workflow runs it begins with 6351 instead and turns into 6426. It will continue to cycle through the workflow in increments of 75 each time it runs.
3. Enrich for Emails
The requirements for most email enrichment programs are First Name, Last Name, Domain. You typically need all three fields to find an email address, but some apps will take Company instead of Domain. Apps that allow Company instead of Domain tend to be less accurate than starting with just a company name. For example, Redwood LLC, Redwood LTD and Redwood Corp can be three different companies. Having Full Name and "Redwood" as the Company will mean you won't have a way to know which Redwood the person is associated with. Using Domain instead effectively specifics which variation is correct in increases accuracy.
We next use a Row Filter
to remove any rows without a Domain. We then split the 75 people into smaller groups for error handling and enrich for their email address using an API. In this step of the workflow, I use a Stack tables step to merge the results of all the API enrichments back into a single table.
My data isn't credits based, so there's no need to split it into multiple different destinations. If my email enrichment were credits based, I'd recommend not using a Stack tables step and instead sending to different destinations to improve error handling. This process is described in the Email Verification workflow.

We then take the results and send them to the Parvenu Verifier Sheet.
Email VerificationLast updated
Was this helpful?