Member Junction
    Preparing search index...

    Action that enriches account records using Apollo.io's organization and people data

    This action performs comprehensive account enrichment by:

    1. Enriching organization data (address, phone, social profiles, etc.)
    2. Creating technology stack records for the organization
    3. Finding and enriching contacts associated with the organization
    4. Creating employment/education history for contacts
    // Basic account enrichment
    await runAction({
    ActionName: 'ApolloEnrichmentAccountsAction',
    Params: [{
    Name: 'AccountEntityFieldMappings',
    Value: JSON.stringify({
    EntityName: 'Accounts',
    Filter: 'Domain IS NOT NULL AND EnrichedAt IS NULL',
    DomainField: 'Domain',
    AccountIDField: 'ID',
    EnrichedAtField: 'EnrichedAt'
    })
    }]
    });

    // Full enrichment with contacts and technologies
    await runAction({
    ActionName: 'ApolloEnrichmentAccountsAction',
    Params: [{
    Name: 'AccountEntityFieldMappings',
    Value: JSON.stringify(accountConfig)
    }, {
    Name: 'ContactEntityFieldMappings',
    Value: JSON.stringify(contactConfig)
    }, {
    Name: 'AccountTechnologyEntityFieldMappings',
    Value: JSON.stringify(technologyConfig)
    }]
    });

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    AuthorizesCaller: boolean

    True when the action authorizes its caller itself, so a public entry point such as the RunAction mutation may run it for an authenticated user without an MJ: Action Authorizations link. Set it only on an action that either checks an authorization the caller must hold, or reads and writes only with the caller's own permissions. Leave it false for an action that acts with more authority than its caller, or that reaches data or sends messages the caller chooses but could not otherwise reach.

    The engine reads the marker only from the class that runs, never from its parent classes. A subclass that overrides a marked action must declare the marker again.

    Methods

    • Creates or updates technology records associated with an account Manages the relationship between accounts and their technology stack Marks old technologies as ended if no longer detected

      Parameters

      • params: ProcessSingleDomainParams

        Processing parameters with technology entity configuration

      • accountID: string | number

        ID of the account to associate technologies with

      • technologies: TechnologyMap[]

        Array of technology data from Apollo

      • md: IMetadataProvider

        Metadata instance for entity operations

      • currentUser: UserInfo

        User context for data access

      Returns Promise<boolean>

      Promise indicating overall success/failure

    • Escapes single quotes in strings for SQL query safety Prevents SQL injection in dynamic filter construction

      Parameters

      • str: string

        String to escape

      Returns string

      string - Escaped string with doubled single quotes

    • Main entry point for the Apollo account enrichment action

      Parameters

      • params: RunActionParams

        The action parameters containing:

        • AccountEntityFieldMappings: Required JSON configuration for account entity field mappings
        • ContactEntityFieldMappings: Optional JSON configuration for contact entity field mappings
        • AccountTechnologyEntityFieldMappings: Optional JSON configuration for technology tracking
        • TechnologyCategoryEntityFieldMappings: Optional JSON configuration for technology categories
        • ContactEducationHistoryEntityFieldMappings: Optional JSON configuration for education history

      Returns Promise<ActionResultSimple>

      Promise indicating success/failure and any error messages

    • Checks if a job title should be excluded from contact creation Filters out non-business contacts like students and volunteers

      Parameters

      • title: string

        Job title to check

      Returns boolean

      boolean - true if title should be excluded

    • Validates if a date string represents a valid date Used for employment/education history date validation

      Parameters

      • dateString: string

        Date string to validate

      Returns boolean

      boolean - true if valid date

    • Processes a single domain for both organization and people enrichment This is the main orchestration method for enriching one account

      Parameters

      • params: ProcessSingleDomainParams

        Domain processing parameters with entity configurations

      • startRow: number

        Current row number for progress tracking

      • totalRows: number

        Total number of rows for progress tracking

      • md: IMetadataProvider

        Metadata instance for entity operations

      • currentUser: UserInfo

        User context for data access

      Returns Promise<boolean>

      Promise indicating success/failure of domain processing

    • Wraps Apollo.io API calls with retry logic for rate limiting Handles 429 (Too Many Requests) responses with exponential backoff

      Parameters

      • method: "get" | "post"

        HTTP method ('get' or 'post')

      • endpoint: string

        Apollo API endpoint path

      • data: any

        Request payload for POST requests

      • config: any

        Axios configuration object

      • retryAttempts: number = 1

        Number of retry attempts remaining (default: 1)

      Returns Promise<AxiosResponse<any, any, {}>>

      Promise - Apollo API response

      Error if rate limit exceeded or other API errors