@memberjunction/integration-actions
MJ Actions for triggering MemberJunction integration syncs. Connects the Integration Engine to the MJ Actions + Scheduling system.
Installation
Section titled “Installation”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';Actions
Section titled “Actions”Run Integration Sync
Section titled “Run Integration Sync”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 errorsSYNC_COMPLETED_WITH_ERRORS— Sync completed but some records failedMISSING_PARAMETER— RequiredCompanyIntegrationIDnot providedUNEXPECTED_ERROR— Unhandled exception during sync
Scheduling via MJ Scheduler
Section titled “Scheduling via MJ Scheduler”- Create an
MJ: Actionsrecord forRun Integration Sync - Create an
MJ: Action Paramsrecord forCompanyIntegrationID - Set up a Scheduled Job pointing to this action
- The scheduler calls the action on the configured cadence
Usage from Code
Section titled “Usage from Code”import '@memberjunction/integration-actions'; // ensure registrationimport { 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' }, ],});Direct Orchestrator Usage
Section titled “Direct Orchestrator Usage”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));