narratic guide

Personalization at Scale for B2B Sales

Crafting personalized emails with ChatGPT

Hagen Hoferichter
Co-Founder & CTO

The Power of AI in Crafting Messages

AI is not a tool that solves your problems but it is a tool that can make you faster and more efficient by automating certain steps that are otherwise tedious. In the case of ChatGPT, it helps you to put information about a person into a sentence in natural language. Both are combined by what is called a prompt.

The prompt must include the information about the person and detailed instructions about what to do with it. The prompt is crucial as we can never assume that ChatGPT or any other language model knows what we want it to do. It will combine the information with the template that we want it to put the information into.

Personalization Using LinkedIn Information

To have any information that we can personalize our campaign on we need information about a given person. To achieve this on scale we use the following steps.

Step 1: Profile Research

Objective: Extract relevant data to understand the prospect.


  1. Review the prospect's headline and current role.
  2. Browse their recent activity and posts.
  3. Examine their listed skills, endorsements, and recommendations.
  4. Identify shared connections, groups, or interests.

Step 2: Identify Personalization Angles

Objective: Determine the most impactful personalization strategy.


  1. Look for any major achievements or mentions.
  2. Note down any recent job changes, promotions, or work anniversaries.
  3. Identify commonalities (e.g., attended the same university, mutual connections, etc.)

Pro tip: Be creative

This framework should be your first step. There is a lot more that you can do to personalize your outreach, just with LinkedIn. Here are a few examples:

  • Check for a career change. Are they doing something different from when they started their career? Or is it totally different from their education? 
    → Congratulate them on their interesting and bold career choice!
  • Did they have a station in their education that you can somehow relate to?
    → Point out similarities!
  • Did they move or change location often or moved a wide distance?
    → Congratulate them on being so cosmopolitan!
  • Are they very long in their current role? Or have they been long in their last role before their current one?
    → Congratulate them for their fidelity and strong work ethics!
  • Do they have any accomplishments or did voluntary work?
    → Thank them for going the extra mile!

You can go on and on and we have not even looked at their posts or what they liked. There is always something you can use.

Step 3: Crafting the Email with ChatGPT

Objective: Create a tailored email using the collected insights.


  1. Start with a basic email template: introduction, main message, call to action.
  2. Share the LinkedIn insights with ChatGPT and ask for suggestions on how to weave them into the email for a personalized touch.

Step 4: Incorporate Personalized Elements

Objective: Seamlessly integrate the tailored content into the email.


  1. Start the email with a personal remark, e.g., "I noticed you recently celebrated a work anniversary at [Company]—congratulations!"
  2. Reference shared connections or interests: "I saw we both know [Mutual Connection]. They've spoken highly of your expertise in [Skill/Field]!"
  3. Make your pitch relevant to their role and achievements: "Given your extensive experience in [Relevant Field], I thought our [Service/Product] might be of interest."

Step 5: Ensure Authenticity and Relevance

Objective: Ensure the message doesn't come across as automated or insincere.


  1. Read the email out loud; does it sound genuine?
  2. Check if the personalized content aligns with the primary objective of your outreach. If it feels forced, consider revising.
  3. Send and Await Feedback

Objective: Assess the effectiveness of the personalization.


  1. Monitor the open and response rates of your emails.
  2. Take note of the feedback (both positive and negative) to refine your approach.

Email Templates and ChatGPT Prompts for Maximum Impact

Email template

Subject: Exploring synergies, [Name]
Hi [Name],

I recently came across your profile on LinkedIn and was particularly impressed by [Specific Achievement/Role/Experience]. It reminded me of [Relevant Comparison or Anecdote].

Given your extensive background in [Relevant Field/Skill], I believe there might be a valuable intersection between your work at [Current Company] and what we're doing at [Your Company]. Specifically, our [Product/Service] could offer [Specific Benefit] to your current projects.

I'd love to have a brief chat to discuss potential collaborations. How does your schedule look next week?

Looking forward to your response. And by the way, congratulations on [Recent Achievement or Milestone]—it's truly commendable!

Warm regards,
[Your Name]

[Full signature without links]

ChatGPT prompt

CONTEXT: {paste LinkedIn profile information here}

TASK: Act as an experienced salesperson. Take the above LinkedIn profile and examine what and where they are currently working, what skills or work background they have and what recent milestone they achieved (e.g. a work anniversary or promotion). Given this information, personalize the provided email template to establish a connection with the person.

- Use natural-sounding company names, e.g. Apple instead of Apple Inc.
- Recognize achievements but don’t exaggerate praise or use 
- Write in [French] if you are highly confident that this is the target’s native language
- … [specify your own rules to guide ChatGPT]

ChatGPT Hacks and Best Practices

Incorporate Role-Playing

We have already done this above but you can be more elaborate with respect to which knowledge and skills ChatGPT is supposed to consider. Ask ChatGPT to take on a specific persona when crafting messages, for example: "Pretend you are a marketing expert. How would you reach out to a potential client in the health sector?"

Input Limitations

Depending on which ChatGPT version you are using, you will be constrained by the amount of information you can feed to the system. 

Iterative Feedback

Rather than crafting a message in one go, engage in a back-and-forth with ChatGPT to refine the message iteratively. For instance, after getting an initial draft, ask ChatGPT to make it more concise, more formal, or tailored to a specific industry.

Use custom instructions

There is a feature called “custom instructions” which will automatically prepend a certain piece of text to every prompt. Wisely used this can greatly improve the results.

You can activate it here by clicking on your account and selecting the Custom instructions.

You will get a configuration window that looks like this:

The second half is interesting as for a fixed task and rules you can just put them here. As a result you will only have to provide the context in order to generate your output.

Besides not having to copy it again and again this also preconfigures ChatGPT as this kind of input is internally handled as SystemMessage, while your prompt is a HumanMessage.

By using this kind of technique you give your task and rules more importance. This leads to less hallucination and more stable results.

Context Chunking

Depending on which ChatGPT version you are using, you will be constrained by the amount of information you can feed to the system. To get past these limits, if you're feeding large amounts of information into ChatGPT, break down your input into essential "chunks" or points. This ensures the model has the full context without being overwhelmed.

Use Public Personas

It sounds weird but can work very well. If you have a figure from a TV Show in mind that would create the vibe you’re looking for, try it out to let ChatGPT impersonate them. You can also mix personas! For example try a mixture of 50% Jared Dunn from Silicon Valley and 50% Stringer Bell from The Wire.

Prompt Engineering

Tailor your prompts to get better results. For instance, instead of asking, "Write an email," you could specify, "Write a concise email targeting mid-level managers in the tech industry about our software solution."

Utilizing the "Temperature" Setting

If using the OpenAI API, adjusting the "temperature" can be useful. A higher temperature (e.g., 0.8) makes output more varied and creative, while a lower value (e.g., 0.2) makes it more deterministic and focused.

Refinement and Practice

Needless to say that the above templates should be seen as mere starting points that need to be tailored to your specific offer. Like any tool, the more you use ChatGPT, the better you'll get at extracting value from it. Test different prompts and adjust them based on the results. 

Better Safe than Sorry: Double check

Whether you are sending five or five thousand emails per day – you always represent yourself and the business you want to grow. Many people get tempted to think “as long as some people respond we are growing” but this attitude can turn into an expensive mistake.

Besides the immediate risk of your emails getting flagged as spam, your poorly crafted outreach will be remembered better than a perfectly personalized message ever will. If you plan to stay in business for a longer time, invest a few minutes to double-check the generated output from ChatGPT before sending it. This ensures accuracy, relevance, and appropriateness for the intended audience – and it keeps the cringe factor out.

Give examples

One of the most powerful things to do is to give examples. It is basically fine-tuning on-the-fly. Here is one original example of a prompt that we use as SystemMessage for our company name cleaning routine:

Task: Clean a list of company names

- Clean and normalize the companies names such that only the main name is left.
- Try to use only one word if it makes sense.
- Try to use as few words as possible if you use more. Only use more words if they seem really necessary to keep the meaning.
- Capitalize single words as in a headline.
- Do not handle duplicates in the list. So keep the order and length of the input list.
- No wrapper text. Just JSON output.

Output only valid JSON with this schema:
"cleaned" : [


"companies": [
"Brandeer Sports GmbH",
"Helio AG",
"Balfour Beatty plc",
"Amstor, Group of companies",
"The Parthenon Group (now part of EY)",
"Boston Consulting Group",
"FactSet Research Systems",
"Fraunhofer Institute for Systems and Innovation",
"BAE Systems Applied Intelligence",
"International Water Management Institute (IWMI)",
"SILVER ATENA Electronic Systems Engineering GmbH",
"House of Fraser",
"OTTO GmbH & Co KG",
"PortalOne, Inc.",

"cleaned" : [
"Brandeer Sports",
"Balfour Beatty",
"Au-Pair World",
"Silver Atena",
"House of Fraser",

Automating the process with Zapier

As a final step, you likely want to automate everything above. There are numerous ways to achieve this but one of the easiest ways is likely using Zapier.

We assume that you know the tool already. If not, here is a great tutorial that covers the basics:

Here is how our flow will look like:

This flow assumes that you have the contact scraping for LinkedIn already set-up. If you wish more details on this, please reach out to us and let us know :) Now let’s get through the steps.

Step 1: Catch Webhook

This will create a web endpoint for the Zapier integration in PhantomBuster where you can provide the resulting link to send new leads.

Step 2: Create Row in Spreadsheet

Here you have to select which parts of the incoming profile should be used and written into the Sheet. You have to:

  1. Connect your Google account
  2. Define the action as:
  1. Select spreadsheet
  2. Select worksheet

Step 3: Send to ChatGPT

Now we send the profile to ChatGPT using our prompt. You can write your prompt however you want. You just have to take care to use the person inputs from the webhook via “Insert data”, which will look like this:

Configure the remaining parameters and experiment. Here we use the following settings:

  1. Max tokens: 250
  2. Temperature: 1.0
  3. Top P: 1.0

Step 4: Update Row

Now we have to update the row of the person with the resulting message. We do this by looking up the correct row via the ID:

And input the response in a new row:

After this the message is saved in the spreadsheet.

Step 5: Highlight and Notify

Afterwards we just have to highlight the row for visual sanity check and notify a user about the result. We do so by locking up the ID and highlighting it:

And notify a user for sanity checking via Slack:

Note: Sanity Checking and Human-in-the-Loop

You may be wondering why we send the notification of the result to Slack in order for a human to double check. This principle is called Human-in-the-Loop (HIL) and is advisable for every kind of automation that has a fuzzy i.e. non-deterministic output.

Your generated prompts and automations will definitely have quirks and oddities. You want to keep a human in the loop in order to identify them and iteratively tune your prompt to get them under control. This iterative process symbolizes the loop. Over time this will get better and better, but be prepared to always have a person double check before sending. 

In a Human-in-the-Loop setup, the AI proposes a solution and the human can intervene and give feedback, which leads to compounding knowledge on the AI side, leading to better results and higher productivity in the long term.

We will launch our campaign in the next part.