CRM Data Enrichment Agent avatar

CRM Data Enrichment Agent

Under maintenance

Pricing

Pay per usage

Go to Apify Store
CRM Data Enrichment Agent

CRM Data Enrichment Agent

Under maintenance

Automatically gather missing customer and lead information to complete CRM records. Fill data gaps with job titles, social profiles, company details, and contact information from online sources. Built for sales teams needing accurate customer data without manual research.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Robert Lee

Robert Lee

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

24 days ago

Last modified

Share

Automatically gather missing customer and lead information to complete CRM records. Fill data gaps with job titles, social profiles, company details, and contact information from online sources. Built for sales teams needing accurate customer data without manual research.

Features

  • Job Title Enrichment: Automatically find and add job titles for contacts
  • Social Profile Discovery: Find LinkedIn, Twitter/X, and GitHub profiles
  • Company Details: Gather company websites, industry, size, and descriptions
  • Contact Information: Search for missing email addresses and phone numbers
  • Location Data: Enrich geographic location information
  • Configurable Enrichment: Enable or disable specific enrichment types
  • Concurrent Processing: Process multiple records in parallel for efficiency
  • Error Handling: Gracefully handles failures and continues with partial enrichment

Installation

$npm install

Usage

Input Schema

The actor accepts the following input:

{
"crmRecords": [
{
"name": "John Doe",
"email": "john.doe@example.com",
"company": "Acme Corp",
"jobTitle": "Software Engineer",
"phone": "+1-555-123-4567",
"linkedinUrl": "https://linkedin.com/in/johndoe",
"location": "San Francisco, CA"
}
],
"enrichmentOptions": {
"enrichJobTitle": true,
"enrichSocialProfiles": true,
"enrichCompanyDetails": true,
"enrichContactInfo": true,
"enrichLocation": true
},
"maxConcurrency": 5,
"maxResultsPerRecord": 1
}

Input Fields

crmRecords (required)

Array of CRM records to enrich. Each record should contain at least one of:

  • name: Full name of the person
  • email: Email address
  • company: Company name

Optional fields that will be enriched if missing:

  • jobTitle: Current job title
  • phone: Phone number
  • linkedinUrl: LinkedIn profile URL
  • twitterUrl: Twitter/X profile URL
  • companyWebsite: Company website URL
  • location: Geographic location

enrichmentOptions (optional)

Object to configure which fields to enrich:

  • enrichJobTitle (default: true): Search for job titles
  • enrichSocialProfiles (default: true): Find social media profiles
  • enrichCompanyDetails (default: true): Gather company information
  • enrichContactInfo (default: true): Search for contact information
  • enrichLocation (default: true): Find location data

maxConcurrency (optional)

Maximum number of concurrent enrichment requests (default: 5, range: 1-20)

maxResultsPerRecord (optional)

Maximum number of results to return per CRM record (default: 1, range: 1-10)

Output

The actor outputs enriched records to the Apify dataset. Each output record contains:

  • All original fields from the input record
  • Newly enriched fields (if found)
  • _metadata object with:
    • originalRecord: The original input record
    • enrichmentSuccess: Boolean indicating if enrichment succeeded
    • enrichmentError: Error message if enrichment failed
    • enrichedAt: ISO timestamp of when enrichment occurred

Example Output

{
"name": "John Doe",
"email": "john.doe@example.com",
"company": "Acme Corp",
"jobTitle": "Senior Software Engineer",
"linkedinUrl": "https://linkedin.com/in/johndoe",
"twitterUrl": "https://twitter.com/johndoe",
"companyWebsite": "https://acmecorp.com",
"companyIndustry": "Technology",
"location": "San Francisco, CA",
"_metadata": {
"originalRecord": { ... },
"enrichmentSuccess": true,
"enrichmentError": null,
"enrichedAt": "2024-01-15T10:30:00.000Z"
}
}

Local Development

# Install dependencies
npm install
# Run the actor locally
npm start

How It Works

  1. Input Validation: Validates input records and configuration
  2. Parallel Processing: Processes records in batches based on maxConcurrency
  3. Multi-Source Enrichment: Each enrichment module searches multiple online sources:
    • Job Titles: LinkedIn profiles, Google search
    • Social Profiles: Google search for LinkedIn, Twitter, GitHub
    • Company Details: Company websites, Google search, knowledge panels
    • Contact Info: Google search, website scraping
    • Location: LinkedIn profiles, Google search
  4. Data Aggregation: Combines results from multiple sources
  5. Output: Saves enriched records to Apify dataset

Best Practices

  • Provide Complete Initial Data: The more information you provide (name, email, company), the better the enrichment results
  • Use Appropriate Concurrency: Higher concurrency speeds up processing but may trigger rate limits
  • Handle Errors Gracefully: The actor continues processing even if some records fail
  • Review Results: Always review enriched data for accuracy before importing to CRM

Limitations

  • Web scraping may be blocked by some websites
  • Search results depend on publicly available information
  • Rate limiting may affect large batches
  • Some data sources may require authentication (not implemented)

License

ISC