Hello r/SideProject community! In this article, I will explain how the AI framework LangChain can significantly enhance the quality of your cold email outreach by making it unique and personalized. I will also discuss how to automate this entire process with minimal costs using a low-code platform and share ready-made templates for a quick start.

Personalization vs Automation

There’s a natural tension between personalization and automation. Non-personalized, generic emails are easy to automate but often result in low engagement and conversion rates. In contrast, highly personalized emails increase engagement but are difficult to automate.

https://preview.redd.it/b2fzk6c6kezb1.png?width=1470&format=png&auto=webp&s=8762bcfb7bedbe20c442e18a90bf61ad48b5da2d

Cold email platforms now help solve this issue with dynamic variables that add a personalized touch to automated emails. These variables act as placeholders for inserting personalized words, lines, or paragraphs.

https://preview.redd.it/8juap908kezb1.png?width=1470&format=png&auto=webp&s=254d946e776962ad93f8ba4fe30fefe484fa5027

Dynamic variables allow companies to balance personalization and automation efficiently. Today, we’ll create a LangChain scenario on the low-code platform Latenode to generate a customized cold email icebreaker for each contact in our outreach database using the following tools:

  • The free data enrichment tool ClearBit
  • The free low-code platform Latenode
  • OpenAI’s extremely cheap API.

Step 1: enrich emails w/ ClearBit

Let’s start with a Google Sheet containing basic email addresses. I’ve included some of my work emails as real examples (please refrain from sending me personalized cold emails after reading this! :) )

https://preview.redd.it/od8bm82ckezb1.png?width=1180&format=png&auto=webp&s=f75ffb0043295c5182b358c022aa944e04c32719

First, we need to enrich these emails with data about the recipients. For our outreach, we need to know:

  • The first name
  • The company name
  • The company description

You could manually visit each email domain to gather this information, but if you have hundreds or thousands of emails in your database, that’s not practical. Instead, we can automate this task using the low-code platform Latenode. We link our Google Sheet there and use the ClearBit API to fill in the missing information. Here’s how it works:

https://preview.redd.it/n7r8iy0fkezb1.png?width=1600&format=png&auto=webp&s=2c63d26dce877bbf816004f0049e7bc5bca1f2dd

Don’t worry! You don’t have to create everything from the beginning. Simply copy the scenario I provide at the end of this article. The basic steps of this automation are:

  • Identify the rows that need enrichment.
  • Extract the email from each row.
  • Send the email to ClearBit and receive all the related information.
  • Enter the required information back into the Google Sheet.

https://i.redd.it/06wtd65vkezb1.gif

That’s it. We’ve enriched our emails with essential details like the company description. Now, let’s craft a personalized icebreaker to kick off our cold emails and establish a personal connection right from the start.

Step 2: generate personalized icebreaker w/ ChatGPT

Giving a compliment about what your recipient does at their workplace is the very least you can do. Additionally, you could tailor your outreach reason based on the company’s profile. You can do this with another Latenode scenario, which you’ll be able to copy later.

https://preview.redd.it/nps5tp26lezb1.png?width=1600&format=png&auto=webp&s=7390dc0303b4e3e4cc95d5892a4dffbd4289388b

Its main steps are:

  • Retrieve the company description from your Google Sheet.
  • Send this description to ChatGPT using the OpenAI API with a custom prompt tailored to your needs.
  • Refine the AI-generated output with another request and a different prompt.
  • Place the final result in the row corresponding to the person you’re reaching out to.

By doing this, we attach a personalized icebreaker to each individual, creating another custom variable in addition to their first name and company name. This trio should suffice for a start. Let’s look at how this functions:

https://i.redd.it/hjerdubelezb1.gif

Step 3: upload spreadsheet to cold email platform w/ Apollo

First, download your spreadsheet as a CSV file. Then, upload it to your email platform as a new list. I’ll demonstrate using Apollo, but the process is similar in other tools.

https://preview.redd.it/unma866klezb1.png?width=1174&format=png&auto=webp&s=15d34921b3f61508d5232d86446fcbd697ae56fd

The next steps are pretty standard – map the fields and assign a variable to each. The key variable for us is the custom “icebreaker” field.

https://preview.redd.it/gn0tz81mlezb1.png?width=1600&format=png&auto=webp&s=3c416f1834f840dc6a534f562e2393cbaf1a0ccb

Now, when composing an email for a prospect, it works like this:

https://preview.redd.it/cn1eyonslezb1.png?width=1600&format=png&auto=webp&s=d4a8c5a660eb86210faa15bc1eac25d0a3ecd06f

That’s all for now. You can adjust the prompts sent to GPT in your Latenode scenario to achieve any level of cold email customization. These Latenode templates are versatile for any cold outreach scenario, including personalized LinkedIn messages.

⭐ As I promised, here are the links to copy these scenarios: Data Enrichment and Icebreaker Generation

You just need to paste them into app.latenode.com and input your API keys for ClearBit (which is free) and OpenAI (which is very affordable). Latenode itself is also free and has a supportive community where the team is always ready to help with your automation journey