AI Template Search
N8N Bazar

Find n8n Templates with AI Search

Search thousands of workflows using natural language. Find exactly what you need, instantly.

Start Searching Free
Oct 25, 2025

Automate Email Campaigns from LinkedIn Interactions

Automate Email Campaigns from LinkedIn Interactions with n8n Using LinkedIn engagement as a source of leads is powerful, but doing it by hand is slow and inconsistent. With n8n, you can turn every like and comment on your LinkedIn posts into a structured, scalable email outreach pipeline. This guide walks you through an n8n workflow […]

Automate Email Campaigns from LinkedIn Interactions

Automate Email Campaigns from LinkedIn Interactions with n8n

Using LinkedIn engagement as a source of leads is powerful, but doing it by hand is slow and inconsistent. With n8n, you can turn every like and comment on your LinkedIn posts into a structured, scalable email outreach pipeline.

This guide walks you through an n8n workflow template that:

  • Collects LinkedIn likers and commenters with Phantombuster
  • Enriches their contact data with Dropcontact
  • Deduplicates and stores contacts in Airtable
  • Triggers email campaigns in Lemlist and updates HubSpot
  • Notifies your team in Slack as contacts are processed

You will learn how each part of the automation works, how to configure it in your own n8n instance, and how to keep it reliable and compliant.


Learning goals

By the end of this tutorial, you should be able to:

  • Explain the full LinkedIn-to-email automation flow in n8n
  • Configure Phantombuster, Dropcontact, Airtable, Lemlist, HubSpot, and Slack inside one workflow
  • Map and enrich contact data for better personalization and deliverability
  • Set up deduplication so you do not repeatedly message the same person
  • Troubleshoot common errors and stay compliant with data privacy rules

Why automate LinkedIn interactions?

When a LinkedIn user likes or comments on your post, they are signaling interest. The challenge is capturing that interest before it goes cold.

Manual workflows usually look like this:

  • Copy profile URLs from LinkedIn
  • Search for emails and company details
  • Paste data into a spreadsheet or CRM
  • Hand off to a sales or marketing tool

This approach is slow, error-prone, and almost impossible to scale.

Automating the process with n8n lets you:

  • Respond quickly to engaged prospects while the interaction is still fresh
  • Keep a single, reliable source of truth in Airtable or your CRM
  • Automatically enrich contacts for better personalization and higher deliverability
  • Trigger email campaigns at scale without any copy-paste work

Conceptual overview of the workflow

Before diving into configuration, it helps to understand the overall flow. At a high level, the n8n template runs in this sequence:

  1. Cron Trigger starts the workflow on a schedule.
  2. Phantombuster agents scrape LinkedIn likers and commenters.
  3. A Short Wait node gives Phantombuster time to complete.
  4. Phantombuster Get Output nodes pull the scraped profile data.
  5. Dropcontact enriches each profile with email and other fields.
  6. Airtable checks if the email already exists.
  7. Update or create the contact in Airtable.
  8. Lemlist and HubSpot receive the contact for campaigns and CRM.
  9. Slack sends a notification for each processed contact.

Think of it as a pipeline:

LinkedIn engagement → Scraping → Enrichment → Deduplication → Storage → Outreach → Notification


Key n8n nodes and what they do

Now let us break down the main building blocks of the template. Understanding these will make the setup steps much easier.

Cron Trigger – schedule the automation

The Cron node starts the workflow automatically on a regular schedule, for example every hour or a few times per day. This ensures you continuously capture new likers and commenters without manual intervention.

Phantombuster: LinkedIn Commenters & LinkedIn Likers

Two Phantombuster agents are used:

  • LinkedIn Likers – collects profiles of people who liked a given post
  • LinkedIn Commenters – collects profiles of people who commented

In the n8n workflow, you trigger these agents via Phantombuster nodes. After triggering them, the workflow uses a Short Wait node so the agents have time to run and upload their output.

Phantombuster Get Output – retrieve scraped profiles

Once Phantombuster finishes, dedicated Get Output nodes fetch the result files. These nodes return lists of LinkedIn profiles, which are then passed downstream to enrichment.

Dropcontact Enrich – add emails and firmographic data

Dropcontact receives each profile (typically name and LinkedIn URL) and attempts to find:

  • Professional email addresses
  • Phone numbers
  • Company name
  • Website and related company data

The workflow then maps Dropcontact fields into Airtable and CRM entries. A typical expression used in n8n to access the primary email looks like:

={{$node["Dropcontact Enrich"].json["data"][0]["email"][0]["email"]}}

It is important to check the actual JSON structure returned by your Dropcontact account, since APIs can change over time. If the structure differs, you will need to adjust the expressions accordingly.

Airtable List & Record Exists (If) – deduplicate contacts

To avoid sending multiple campaigns to the same person, the workflow uses Airtable as a central database:

  • Airtable List retrieves existing contacts from your Contacts table.
  • A downstream If node (often named Record Exists) compares the enriched email from Dropcontact with existing emails in Airtable.

Depending on the result, the flow decides whether to update an existing record or create a new one.

Prepare Update / Prepare New – map data into Airtable fields

Two Set nodes (commonly labeled Prepare Update and Prepare New) handle the data mapping:

  • Prepare New builds a complete record for new contacts, including fields like Name, Account, Company website, Email, Phone, and LinkedIn URL.
  • Prepare Update formats only the fields you want to refresh for existing contacts.

This is where you align the output from Dropcontact and Phantombuster with your Airtable column names.

Airtable Create & Airtable Update – store contacts

After data is prepared:

  • Airtable Create appends a new row when the contact does not yet exist.
  • Airtable Update modifies an existing row using the Airtable record ID captured earlier in the flow.

Both nodes can be configured to use typecast so that Airtable correctly interprets the data types for linked records, select fields, etc.

Lemlist Add Lead & HubSpot Create Contact

Once a contact is stored in Airtable, the workflow hands it off to your sales and marketing tools:

  • Lemlist Add Lead adds the email address to your Lemlist account so you can enroll them in email campaigns.
  • HubSpot Create Contact creates or upserts the contact in HubSpot CRM, keeping your pipeline updated.

The Lemlist node is configured with continueOnFail=true, which means that if Lemlist is rate-limited or returns an error, the rest of the workflow continues instead of stopping completely.

Slack Notification – keep your team in the loop

Finally, a Slack node posts a message to a chosen channel for each new or updated contact. This can include key details like name, email, company, and whether the record was created or updated.


Step-by-step setup in n8n

The sections below guide you through turning the template into a working automation in your own environment.

Step 1: Import the workflow template

  1. Download or copy the provided n8n JSON template.
  2. Open your n8n instance and go to the Workflows area.
  3. Use the Import option and paste or upload the JSON.
  4. Save the workflow and give it a descriptive name, for example, LinkedIn Engagement to Email Campaign.

Before running the workflow, make sure you have access to all needed services:

  • Airtable
  • Phantombuster
  • Dropcontact
  • Lemlist
  • HubSpot
  • Slack

Step 2: Configure Phantombuster agents for LinkedIn

In your Phantombuster account, you will need two agents targeting the same LinkedIn post:

  • LinkedIn Post Likers Scraper (or equivalent)
  • LinkedIn Post Commenters Scraper

For each agent:

  1. Set the target LinkedIn post URL.
  2. Configure the agent to output data through the Phantombuster API (not only CSV or Google Sheets).
  3. Note the agent ID and confirm that the API key you will use in n8n has access.
  4. Run a manual test in Phantombuster to confirm you get a clean list of profiles.

Back in n8n, open the Phantombuster nodes that trigger these agents and:

  • Select your Phantombuster credentials.
  • Enter the correct agent IDs.
  • Verify that the output format matches what the template expects (profile URLs, names, etc.).

Step 3: Add and connect API credentials in n8n

In n8n, go to Settings > Credentials and create entries for each service used in the workflow.

  • Airtable – API key (or personal access token), base ID, and table name for your Contacts table.
  • Phantombuster – API key associated with your agents.
  • Dropcontact – API key for enrichment.
  • Lemlist – API key for your Lemlist account.
  • HubSpot – API key or OAuth app connection.
  • Slack – Bot token with permission to post to the target channel.

After creating each credential, open the corresponding nodes in the workflow and select the right credential from the dropdown. Run a quick test on a single node (for example, Airtable List) to confirm connectivity.

Step 4: Map and validate fields for Airtable and CRMs

Field mapping is where you adapt the template to your specific schema.

Focus on these nodes:

  • Prepare New (Set node)
  • Prepare Update (Set node)
  • Airtable Create
  • Airtable Update
  • Lemlist Add Lead
  • HubSpot Create Contact

For each Set node:

  1. Open the node and review each field being set (Name, Email, Company, Website, Phone, LinkedIn URL, etc.).
  2. Update the field names to match the column names in your Airtable base or CRM properties.
  3. Check the expressions that pull data from Dropcontact and Phantombuster. For example:
    ={{$node["Dropcontact Enrich"].json["data"][0]["email"][0]["email"]}}

    Adjust these if your Dropcontact JSON structure is different.

For Lemlist and HubSpot nodes, make sure you:

  • Map the contact email correctly.
  • Optionally map additional fields such as first name, last name, company, or LinkedIn URL to custom properties.

Step 5: Tune timing and rate limits

The workflow relies on external services that may take time to respond or may impose rate limits.

Key considerations:

  • Short Wait node after triggering Phantombuster:
    • The template uses a default of around 30 seconds.
    • If your posts get a lot of engagement or your Phantombuster plan is slower, increase this delay.
    • Alternatively, you can implement a polling loop that checks for output readiness instead of a fixed delay.
  • Cron Trigger frequency:
    • Do not run the workflow too frequently, or you may hit API rate limits on Phantombuster, Dropcontact, Lemlist, or HubSpot.
    • Start with a modest schedule, such as once per hour or a few times per day, and adjust based on volume.
  • Lemlist continueOnFail:
    • The Lemlist node is set to continueOnFail=true so that temporary Lemlist issues do not block the entire pipeline.

After you adjust timing, run a small test with a few contacts before moving to production volume.


Best practices for a stable and effective workflow

  • Respect platform rules – Follow LinkedIn terms of service and Phantombuster usage limits. Avoid aggressive schedules that might flag your account.
  • Use deduplication – Rely on Airtable and the Record Exists logic to avoid adding the same email repeatedly to Lemlist or HubSpot.
  • Validate emails – If possible, add an email verification step before sending campaigns to protect your sender reputation.
  • Control Cron frequency – Balance responsiveness with rate limits and data volume.
  • Enable logging and alerts – Use n8n’s Execution List and consider adding Slack or email alerts for errors so you can react quickly.

Troubleshooting common issues

If something does not work as expected, use n8n’s execution logs to inspect each node’s input and output JSON. Here are some typical problems and checks:

  • No emails from Dropcontact
    • Confirm that LinkedIn profile URLs or names are being passed correctly to Dropcontact.
    • Check the Dropcontact dashboard or API logs for any rate limit or quota issues.
  • Airtable records not updating
    • Verify that the Airtable record ID is correctly passed into the Airtable Update node.
    • Ensure the field names in the Update node match Airtable column names exactly.
  • Lemlist node fails
    • Keep continueOnFail=true so the workflow continues for other contacts.
    • Check Lemlist rate limits or API key validity and retry later.
  • Unexpected data structure errors
    • Inspect the raw JSON output of Phantombuster and Dropcontact nodes.
    • Update your expressions in Set nodes if the API responses have changed.

Security, privacy and compliance