Contact Data Enrichment

Workflows that enhance contact records with additional data from external sources like Clay, Trustpilot, and phone validation services

MetricValue
Workflows8
Priorityhigh
Grouping Confidence90% — Clear pattern of external enrichment with shared Clay dependency and similar webhook patterns
ConsolidationAll Clay enrichment workflows should be consolidated into a single entry flow with conditional routing based on enrichment type (cold prospect, research, phone validation)

Workflows in this Group

WorkflowTriggerOutcomeTypeComplexity
Add to clay listContact meets specific criteria for Clay processingNotify team, wait 5 minutes, sync to Clay, then wait 14 daysDataSynchigh
Add to clay list - coldContact identified as cold prospectSync cold prospect data to Clay for processingDataSynclow
Trevor Test - enrich and add to clay tableContact record needs data enrichment and should be added to Clay table for further processingContact data is sent to Clay via webhook for enrichment and processingEnrichmentlow
Manual account researchContact or account requires additional research to be conductedResearch request is triggered in external system (Clay) to gather additional account intelligenceEnrichmentlow
Correct Phone NumberContact phone number data needs validation or correctionPhone number is validated and corrected through external data serviceEnrichmentlow
ADMIN Company Enrichment to ClayContact record requires company data enrichmentContact's company information is enriched via Clay integrationEnrichmentlow
trustpilot - enrich contactContact needs Trustpilot data enrichmentEnrich contact with Trustpilot review dataEnrichmentmedium
Set proper original traffic source from RB2BContact has Clay original traffic source data availableUpdate HubSpot's native analytics source field with Clay-provided dataDataSynclow

Key fields: clay_original_traffic_source, hs_analytics_source

Dependencies: Clay platform, RB2B, Trustpilot API

Domain Summary

Multiple redundant workflows routing contacts to Clay for external data enrichment, with scattered responsibilities for phone validation, company research, and traffic source attribution. Current architecture lacks centralized orchestration and proper error handling.

Current Problems

Rearchitecture Approach

Consolidate into a unified Contact Enrichment orchestrator that routes to appropriate enrichment services based on contact attributes and enrichment requirements. Implement proper error handling, logging, and fallback mechanisms for external service dependencies.

Recommended Automations

Contact Enrichment Orchestrator

Build PropertyValue
Flow API NameN/A
Flow TypeN/A
Target ObjectN/A
Execution ModeN/A
Priorityhigh
ReusableYes

Purpose: Central entry point for all contact enrichment needs, routing to appropriate enrichment services based on contact status and data gaps

Trigger: Contact record created or updated with enrichment flag

Entry Criteria Formula: N/A

Logic Overview: Evaluate contact for enrichment needs (cold prospect, research required, phone validation, company data gaps). Route to appropriate enrichment sub-flows. Log enrichment attempts and results. Handle external service failures gracefully.

Replaces: Add to clay list, Add to clay list - cold, Trevor Test - enrich and add to clay table, Manual account research, ADMIN Company Enrichment to Clay

Required Fields:

FieldPurposeUsageHubSpot SourceNet New?Migration Note
Enrichment_Status__cTrack enrichment stage and prevent duplicate processingbothN/AYesNew picklist field to track enrichment workflow status
Enrichment_Type__cDefine what type of enrichment is needed (cold prospect, research, company data, etc.)readN/AYesMulti-select picklist to define enrichment requirements
Last_Enrichment_Date__cPrevent over-enrichment and track data freshnesswriteN/AYesDateTime field to track when contact was last enriched

Interactions With Other Recommended Automations: _Not documented. This should be populated for multi-flow domains._

Phone Validation Service

Build PropertyValue
Flow API NameN/A
Flow TypeN/A
Target ObjectN/A
Execution ModeN/A
Prioritymedium
ReusableYes

Purpose: Validate and correct phone numbers using external validation service

Trigger: Invoked by enrichment orchestrator when phone validation is needed

Entry Criteria Formula: N/A

Logic Overview: Send phone number to validation service. Update contact with corrected phone number if validation successful. Log validation results and any failures.

Replaces: Correct Phone Number

Required Fields:

FieldPurposeUsageHubSpot SourceNet New?Migration Note
Phone_Validation_Status__cTrack phone validation resultswriteN/AYesPicklist field to track validation status (Valid, Invalid, Pending, Error)

Interactions With Other Recommended Automations: _Not documented. This should be populated for multi-flow domains._

Traffic Source Attribution Corrector

Build PropertyValue
Flow API NameN/A
Flow TypeN/A
Target ObjectN/A
Execution ModeN/A
Prioritylow
ReusableNo

Purpose: Update native Salesforce attribution fields with more accurate external data when available

Trigger: Contact updated with Clay traffic source data

Entry Criteria Formula: N/A

Logic Overview: When Clay provides traffic source data, evaluate against existing attribution. Update Lead Source and Lead Source Detail fields with more accurate data. Maintain audit trail of attribution changes.

Replaces: Set proper original traffic source from RB2B

Required Fields:

FieldPurposeUsageHubSpot SourceNet New?Migration Note
Clay_Traffic_Source__cStore external traffic source data from Clay/RB2Breadclay_original_traffic_sourceNoMigrate existing Clay traffic source field
Attribution_Override_Reason__cDocument why attribution was changed from original sourcewriteN/AYesText field to log attribution correction reasoning

Interactions With Other Recommended Automations: _Not documented. This should be populated for multi-flow domains._

Company Reputation Enrichment

Build PropertyValue
Flow API NameN/A
Flow TypeN/A
Target ObjectN/A
Execution ModeN/A
Prioritymedium
ReusableYes

Purpose: Enrich contacts with company reputation data from Trustpilot and similar sources

Trigger: Invoked by enrichment orchestrator for accounts needing reputation data

Entry Criteria Formula: N/A

Logic Overview: Call Trustpilot API for company reputation scores and review data. Update related Account record with reputation metrics. Flag high/low reputation scores for sales team attention.

Replaces: trustpilot - enrich contact

Required Fields:

FieldPurposeUsageHubSpot SourceNet New?Migration Note
Company_Reputation_Score__cStore Trustpilot or similar reputation scorewriteN/AYesNumber field on Account object for reputation scoring

Interactions With Other Recommended Automations: _Not documented. This should be populated for multi-flow domains._

Cross-Flow Interaction Model

Interaction handoffs were not provided. Add flowInteractionModel entries so build sequencing and contracts are explicit.

Migration Sequence

  1. Create new enrichment tracking fields in Salesforce
  2. Build Contact Enrichment Orchestrator as main entry flow
  3. Migrate Clay webhook configurations to Salesforce external services
  4. Build Phone Validation Service sub-flow
  5. Build Company Reputation Enrichment sub-flow
  6. Build Traffic Source Attribution Corrector
  7. Test all enrichment flows with sample data
  8. Deactivate original HubSpot enrichment workflows
  9. Monitor enrichment success rates and adjust error handling

Architecture Diagram

flowchart TD

A[Contact Created/Updated] --> B{Needs Enrichment?}

B -->|Yes| C[Contact Enrichment Orchestrator]

B -->|No| Z[End]

C --> D{Enrichment Type}

D -->|Cold Prospect| E[Clay Cold Prospect API]

D -->|Phone Validation| F[Phone Validation Service]

D -->|Company Research| G[Clay Research API]

D -->|Reputation Data| H[Company Reputation Enrichment]

D -->|Traffic Source Fix| I[Traffic Source Attribution Corrector]

E --> J[Update Enrichment Status]

F --> K[Update Phone + Validation Status]

G --> L[Update Company Data]

H --> M[Update Account Reputation Score]

I --> N[Update Lead Source Fields]

J --> O[Log Results]

K --> O

L --> O

M --> O

N --> O

O --> P{Enrichment Complete?}

P -->|Yes| Q[Mark Contact Enriched]

P -->|No| R[Schedule Retry]

Q --> Z

R --> S[Wait Period]

S --&gt; C</code></pre>