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.

On the new pricing plan for Parabola, you wouldn't have this 100,000 row limit - you would just be charged more. Using this 10,000 most recent contacts will dramatically reduce your Parabola bill on the new plan because it will keep the number of total rows in the flow at a much smaller amount per run.

To accomplish a filter for the 10,000 most recent rows is a 4 step process.

  1. Insert row numbers

  2. Use a Sort step to sort in descending order - the bottom row is now on top

  3. Insert row numbers

  4. 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.

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 Verification

Last updated

Was this helpful?