@memberjunction/integration-actions
v5.26.0
Published
MemberJunction Integration Engine Actions - MJ Actions for triggering and managing integration syncs
Keywords
Readme
@memberjunction/integration-actions
MJ Actions for triggering MemberJunction integration syncs. Connects the Integration Engine to the MJ Actions + Scheduling system.
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
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
- 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
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' },
],
});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)
);