CRM Data Enrichment Agent
Pricing
Pay per usage
CRM Data Enrichment Agent
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
Actor stats
0
Bookmarked
2
Total users
0
Monthly active users
24 days ago
Last modified
Categories
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 personemail: Email addresscompany: Company name
Optional fields that will be enriched if missing:
jobTitle: Current job titlephone: Phone numberlinkedinUrl: LinkedIn profile URLtwitterUrl: Twitter/X profile URLcompanyWebsite: Company website URLlocation: Geographic location
enrichmentOptions (optional)
Object to configure which fields to enrich:
enrichJobTitle(default:true): Search for job titlesenrichSocialProfiles(default:true): Find social media profilesenrichCompanyDetails(default:true): Gather company informationenrichContactInfo(default:true): Search for contact informationenrichLocation(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)
_metadataobject with:originalRecord: The original input recordenrichmentSuccess: Boolean indicating if enrichment succeededenrichmentError: Error message if enrichment failedenrichedAt: 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 dependenciesnpm install# Run the actor locallynpm start
How It Works
- Input Validation: Validates input records and configuration
- Parallel Processing: Processes records in batches based on
maxConcurrency - 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
- Data Aggregation: Combines results from multiple sources
- 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