Enrich LinkedIn Profiles in NocoDB CRM with Apify Scraper

Go to Workflow
21 views
Built by Guido X Jansen Guido X Jansen
Created on June 07, 2026

Description

Introduction
**Manual LinkedIn data collection is time-consuming, error-prone, and results
in inconsistent data quality across CRM/database records.**

This workflow is great for organizations that struggle with:
Incomplete contact records with only LinkedIn URLs but missing profile
details
Hours spent manually copying LinkedIn information into databases
Inconsistent data formats due to copy-paste from LinkedIn (emojis, styled
text, special characters)
Outdated profile information that doesn't reflect current roles/companies
No systematic way to enrich contacts at scale

Primary Users
Sales & Marketing Teams
Event Organizers & Conference Managers for event materials
Recruitment & HR Professionals
CRM Administrators

Specific Problems Addressed

Data Completeness: Automatically fills missing profile fields (headline,
bio, skills, experience)
Data Quality: Sanitizes problematic characters that break
databases/exports
Time Efficiency: Reduces hours of manual data entry to automated monthly
updates
Error Handling: Gracefully manages invalid/deleted LinkedIn profiles
Scalability: Processes multiple profiles in batch without manual
intervention
Standardization: Ensures consistent data format across all records

Cost
Each URL scraped by Apify costs $0.01 to get all the data above. Apify charges per scrape, regardless of how much dta or fields you extract/use.

Setup Instructions

Prerequisites

n8n Instance: Access to a running n8n instance (self-hosted or cloud)
NocoDB Account: Database with a table containing LinkedIn URLs
Apify Account: Free or paid account for LinkedIn scraping

Required fields in NocoDB table

Input:
single LinkedIn URL

NocoDB Field name
LinkedIn

Output:
first/last/full name
e-mail
bio
headline
profile pic URL
current role
country
skills
current employer
employer URL
experiences (all previous jobs)
personal website
publications (articles)


NocoDB Field names
linkedin_full_name
linkedin_first_name:
linkedin_headline:
linkedin_email:
linkedin_bio:
linkedin_profile_pic
linkedin_current_role
linkedin_current_company
linkedin_country
linkedin_skills
linkedin_company_website
linkedin_experiences
linkedin_personal_website
linkedin_publications
linkedin_scrape_error_reason
linkedin_scrape_last_attempt
linkedin_scrape_status
linkedin_last_modified

Technically you also need an Id field, but that is always there so no need to add it :)

n8n Setup

1. Import the Workflow
Copy the workflow JSON from the template
In n8n, click "Add workflow" → "Import from JSON"
Paste the workflow and click "Import"
2. Configure NocoDB Connection
Click on any NocoDB node in the workflow
Add new credentials → "NocoDB Token account"
Enter your NocoDB API token (found in NocoDB → User Settings → API
Tokens)
Update the projectId and table parameters in all NocoDB nodes
3. Set Up Apify Integration
Create an Apify account at apify.com
Generate an API token (Settings → Integrations → API)
In the workflow, update the Apify token in the "Get Scraper Results"
node
Configure HTTP Query Auth credentials with your token
4. Map Your Database Fields
Review the "Transform & Sanitize Data" node
Update field mappings to match your NocoDB table structure
Ensure these fields exist in your table:
LinkedIn (URL field)
linkedin_headline, linkedin_full_name, linkedin_bio, etc.
linkedin_scrape_status, linkedin_last_modified
5. Configure the Filter
In "Get Guests with LinkedIn" node
Adjust the filter to match your requirements
Default: (LinkedIn,isnot,null)~and(linkedin_headline,is,null)
6. Test the Workflow
Click "Execute Workflow" with Manual Trigger
Monitor execution for any errors
Verify data is properly updated in NocoDB
7. Activate Automated Schedule
Configure the Schedule Trigger node (default: monthly)
Toggle the workflow to "Active"
Monitor executions in n8n dashboard

Customization Options

1. Data Source Modifications
Different Database: Replace NocoDB nodes with Airtable, Google Sheets, or
PostgreSQL
Multiple Tables: Add parallel branches to process different contact tables
Custom Filters: Modify the WHERE clause to target specific record subsets

2. Enrichment Fields

Add Fields: Include additional LinkedIn data like education,
certifications, or recommendations
Remove Fields: Simplify by removing unnecessary fields (publications,
skills)
Custom Transformations: Add business logic for field calculations or
formatting

3. Scheduling Options
Frequency: Change from monthly to daily, weekly, or hourly
Time-based: Set specific times for different timezones
Event-triggered: Replace with webhook trigger for on-demand processing

4. Error Handling Enhancement
Notifications: Add email/Slack nodes to alert on failures
Retry Logic: Implement wait and retry for temporary failures
Logging: Add database logging for audit trails

5. Data Quality Rules

Validation: Add IF nodes to validate data before updates
Duplicate Detection: Check for existing records before creating new ones
Data Standardization: Add custom sanitization rules for industry-specific
needs

6. Integration Extensions

CRM Sync: Add nodes to push data to Salesforce, HubSpot, or Pipedrive
AI Enhancement: Use OpenAI to summarize bios or extract key skills
Image Processing: Download and store profile pictures locally

7. Performance Optimization

Batch Size: Adjust the number of profiles processed per run
Rate Limiting: Add delays between API calls to avoid limits
Parallel Processing: Split large datasets across multiple workflow
executions

8. Compliance Additions

GDPR Compliance: Add consent checking before processing
Data Retention: Implement automatic cleanup of old records
Audit Logging: Track who accessed what data and when

These customizations allow the workflow to adapt from simple contact enrichment to complex data pipeline scenarios across various industries and use cases.

Nodes Used (3)

Code
n8n-nodes-base.code
HTTP Request
n8n-nodes-base.httpRequest
NocoDB
n8n-nodes-base.nocoDb