Member Junction
    Preparing search index...

    Module @memberjunction/integration-actions

    @memberjunction/integration-actions

    MJ Actions for triggering MemberJunction integration syncs. Connects the Integration Engine to the MJ Actions + Scheduling system.

    This package is registered as a workspace package. Add it as a dependency and import it so the @RegisterClass decorator fires:

    // In your bootstrap or entry point:
    import '@memberjunction/integration-actions';

    Action Name: Run Integration Sync

    Triggers a full sync run for a MJ: Company Integration record.

    Parameter Direction Type Required Description
    CompanyIntegrationID Input string Yes ID of the CompanyIntegration to sync
    TriggerType Input string No Manual, Scheduled, or Webhook (default: Manual)
    RecordsProcessed Output number Total records processed
    RecordsCreated Output number Records created in MJ
    RecordsUpdated Output number Records updated in MJ
    RecordsDeleted Output number Records deleted in MJ
    RecordsErrored Output number Records that encountered errors
    RecordsSkipped Output number Records that were skipped
    ErrorSummary Output string JSON array of first 10 errors (only when errors exist)

    Result Codes:

    • SUCCESS — Sync completed without errors
    • SYNC_COMPLETED_WITH_ERRORS — Sync completed but some records failed
    • MISSING_PARAMETER — Required CompanyIntegrationID not provided
    • UNEXPECTED_ERROR — Unhandled exception during sync
    1. Create an MJ: Actions record for Run Integration Sync
    2. Create an MJ: Action Params record for CompanyIntegrationID
    3. Set up a Scheduled Job pointing to this action
    4. The scheduler calls the action on the configured cadence
    import '@memberjunction/integration-actions'; // ensure registration
    import { ActionEngine } from '@memberjunction/actions';

    const engine = ActionEngine.Instance;
    const result = await engine.RunAction({
    ActionName: 'Run Integration Sync',
    ContextUser: currentUser,
    Params: [
    { Name: 'CompanyIntegrationID', Type: 'Input', Value: 'your-ci-id' },
    { Name: 'TriggerType', Type: 'Input', Value: 'Scheduled' },
    ],
    });

    For server-side code that doesn't go through the Actions system:

    import { IntegrationOrchestrator } from '@memberjunction/integration-engine';

    const orchestrator = new IntegrationOrchestrator();
    const result = await orchestrator.RunSync(
    companyIntegrationID,
    contextUser,
    'Manual',
    (progress) => console.log(`${progress.PercentComplete}%`),
    (notification) => console.log(notification.Subject)
    );

    Classes

    RunSyncAction