Gathering detailed insights and metrics for @memberjunction/core-actions
Gathering detailed insights and metrics for @memberjunction/core-actions
Gathering detailed insights and metrics for @memberjunction/core-actions
Gathering detailed insights and metrics for @memberjunction/core-actions
npm install @memberjunction/core-actions
Typescript
Module System
Node Version
NPM Version
Cumulative downloads
Total Downloads
Last Day
0%
NaN
Compared to previous day
Last Week
0%
NaN
Compared to previous week
Last Month
0%
NaN
Compared to previous month
Last Year
0%
NaN
Compared to previous year
26
2
The @memberjunction/core-actions
library provides a collection of pre-built actions that are essential to the MemberJunction framework. These actions handle common operations like sending messages, detecting external changes, and vectorizing entities for AI processing.
This package contains both custom-built and generated actions that extend the MemberJunction Actions framework. It provides ready-to-use implementations for core functionality that many MemberJunction applications require.
This library should only be imported on the server side. It contains server-specific dependencies and functionality that are not suitable for client-side applications.
### 5. Data Transformation Actions
#### CSV Parser Action
Parses CSV data with configurable options for headers, delimiters, and data types.
**Class:** `CSVParserAction`
**Registration Name:** `"CSV Parser"`
**Parameters:**
- `CSVData` (string, required): The CSV data to parse
- `HasHeaders` (boolean, optional): Whether the first row contains headers (default: true)
- `Delimiter` (string, optional): Field delimiter (default: ',')
- `QuoteCharacter` (string, optional): Quote character for escaping (default: '"')
- `SkipEmptyRows` (boolean, optional): Skip empty rows (default: true)
**Example Usage:**
```typescript
const result = await ActionEngine.RunAction({
ActionName: 'CSV Parser',
Params: [
{ Name: 'CSVData', Value: 'Name,Age,City\nJohn,30,NYC\nJane,25,LA' },
{ Name: 'HasHeaders', Value: true }
],
ContextUser: currentUser
});
Transforms JSON data using JSONPath-style queries with multiple operations support.
Class: JSONTransformAction
Registration Name: "JSON Transform"
Parameters:
InputData
(object/string, required): JSON data to transform (supports both JSON object and string)Transformations
(string/array, required): JSONPath queries for transformationOutputFormat
(string, optional): 'object' or 'array' (default: 'object')DefaultValue
(any, optional): Default value for missing pathsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'JSON Transform', 3 Params: [ 4 { Name: 'InputData', Value: { users: [{ name: 'John', age: 30 }] } }, 5 { Name: 'Transformations', Value: ['name:$.users[0].name', 'age:$.users[0].age'] } 6 ], 7 ContextUser: currentUser 8});
Parses XML data into JSON format with namespace support.
Class: XMLParserAction
Registration Name: "XML Parser"
Parameters:
XMLData
(string, required): The XML data to parseRemoveNamespaces
(boolean, optional): Strip namespace prefixes (default: false)ParseNumbers
(boolean, optional): Convert numeric strings to numbers (default: true)ParseBooleans
(boolean, optional): Convert boolean strings to booleans (default: true)AttributePrefix
(string, optional): Prefix for attributes (default: '@')Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'XML Parser', 3 Params: [ 4 { Name: 'XMLData', Value: '<root><user id="1"><name>John</name></user></root>' }, 5 { Name: 'ParseNumbers', Value: true } 6 ], 7 ContextUser: currentUser 8});
Performs aggregation operations on arrays of data with support for multiple aggregation functions.
Class: AggregateDataAction
Registration Name: "Aggregate Data"
Parameters:
Data
(array, required): Array of objects to aggregateGroupBy
(string/array, optional): Field(s) to group byAggregations
(object/string, required): Aggregation operations (sum, avg, count, min, max)Having
(object, optional): Filter conditions on aggregated resultsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Aggregate Data', 3 Params: [ 4 { Name: 'Data', Value: [{ category: 'A', value: 10 }, { category: 'A', value: 20 }] }, 5 { Name: 'GroupBy', Value: 'category' }, 6 { Name: 'Aggregations', Value: { totalValue: 'sum:value', avgValue: 'avg:value' } } 7 ], 8 ContextUser: currentUser 9});
Maps data from one structure to another using field mappings and transformations.
Class: DataMapperAction
Registration Name: "Data Mapper"
Parameters:
SourceData
(object/array, required): Data to mapMappings
(object/string, required): Field mapping configurationDefaultValues
(object, optional): Default values for missing fieldsRemoveUnmapped
(boolean, optional): Remove fields not in mapping (default: false)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Data Mapper', 3 Params: [ 4 { Name: 'SourceData', Value: { firstName: 'John', lastName: 'Doe' } }, 5 { Name: 'Mappings', Value: { fullName: '{{firstName}} {{lastName}}' } } 6 ], 7 ContextUser: currentUser 8});
Generates PDF documents from HTML or markdown content.
Class: PDFGeneratorAction
Registration Name: "PDF Generator"
Parameters:
Content
(string, required): HTML or markdown contentContentType
(string, optional): 'html' or 'markdown' (default: 'html')Options
(object/string, optional): PDF options (margins, orientation, etc.)FileName
(string, optional): Output filenameExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'PDF Generator', 3 Params: [ 4 { Name: 'Content', Value: '<h1>Report</h1><p>Content here</p>' }, 5 { Name: 'Options', Value: { margin: { top: '1in' }, orientation: 'portrait' } } 6 ], 7 ContextUser: currentUser 8});
Extracts text and metadata from PDF files.
Class: PDFExtractorAction
Registration Name: "PDF Extractor"
Parameters:
PDFData
(Buffer/string, required): PDF file data or base64 stringExtractText
(boolean, optional): Extract text content (default: true)ExtractMetadata
(boolean, optional): Extract document metadata (default: true)PageRange
(string, optional): Pages to extract (e.g., '1-5,7,9-10')Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'PDF Extractor', 3 Params: [ 4 { Name: 'PDFData', Value: pdfBuffer }, 5 { Name: 'PageRange', Value: '1-10' } 6 ], 7 ContextUser: currentUser 8});
Reads data from Excel files with support for multiple sheets.
Class: ExcelReaderAction
Registration Name: "Excel Reader"
Parameters:
ExcelData
(Buffer/string, required): Excel file data or base64 stringSheetName
(string, optional): Specific sheet to readRange
(string, optional): Cell range to read (e.g., 'A1:D10')ParseDates
(boolean, optional): Convert Excel dates (default: true)IncludeEmptyRows
(boolean, optional): Include empty rows (default: false)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Excel Reader', 3 Params: [ 4 { Name: 'ExcelData', Value: excelBuffer }, 5 { Name: 'SheetName', Value: 'Sales Data' } 6 ], 7 ContextUser: currentUser 8});
Creates Excel files from data with formatting options.
Class: ExcelWriterAction
Registration Name: "Excel Writer"
Parameters:
Data
(array/object, required): Data to write (array of objects or sheets config)SheetName
(string, optional): Sheet name (default: 'Sheet1')IncludeHeaders
(boolean, optional): Include column headers (default: true)ColumnWidths
(object, optional): Custom column widthsFormatting
(object/string, optional): Cell formatting rulesExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Excel Writer', 3 Params: [ 4 { Name: 'Data', Value: [{ name: 'John', sales: 1000 }, { name: 'Jane', sales: 1500 }] }, 5 { Name: 'SheetName', Value: 'Sales Report' } 6 ], 7 ContextUser: currentUser 8});
Compresses files into ZIP archives.
Class: FileCompressAction
Registration Name: "File Compress"
Parameters:
Files
(array, required): Array of file objects with name and contentCompressionLevel
(number, optional): Compression level 0-9 (default: 6)ArchiveName
(string, optional): Output archive namePassword
(string, optional): Password protection for archiveExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'File Compress', 3 Params: [ 4 { Name: 'Files', Value: [ 5 { name: 'report.txt', content: 'Report content' }, 6 { name: 'data.json', content: JSON.stringify(data) } 7 ]}, 8 { Name: 'ArchiveName', Value: 'backup.zip' } 9 ], 10 ContextUser: currentUser 11});
Makes HTTP requests with full control over headers, body, and authentication.
Class: HTTPRequestAction
Registration Name: "HTTP Request"
Parameters:
URL
(string, required): Request URLMethod
(string, optional): HTTP method (default: 'GET')Headers
(object/string, optional): Request headersBody
(any, optional): Request bodyTimeout
(number, optional): Request timeout in ms (default: 30000)RetryCount
(number, optional): Number of retries (default: 0)BasicAuth
(object, optional): Basic authentication credentialsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'HTTP Request', 3 Params: [ 4 { Name: 'URL', Value: 'https://api.example.com/data' }, 5 { Name: 'Method', Value: 'POST' }, 6 { Name: 'Headers', Value: { 'Content-Type': 'application/json' } }, 7 { Name: 'Body', Value: { query: 'test' } } 8 ], 9 ContextUser: currentUser 10});
Executes GraphQL queries and mutations with variable support.
Class: GraphQLQueryAction
Registration Name: "GraphQL Query"
Parameters:
Endpoint
(string, required): GraphQL endpoint URLQuery
(string, required): GraphQL query or mutationVariables
(object/string, optional): Query variablesHeaders
(object/string, optional): Request headersOperationName
(string, optional): Operation name for multi-operation documentsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'GraphQL Query', 3 Params: [ 4 { Name: 'Endpoint', Value: 'https://api.example.com/graphql' }, 5 { Name: 'Query', Value: 'query GetUser($id: ID!) { user(id: $id) { name email } }' }, 6 { Name: 'Variables', Value: { id: '123' } } 7 ], 8 ContextUser: currentUser 9});
Handles OAuth 2.0 authentication flows.
Class: OAuthFlowAction
Registration Name: "OAuth Flow"
Parameters:
Provider
(string, required): OAuth provider nameClientID
(string, required): OAuth client IDClientSecret
(string, required): OAuth client secretRedirectURI
(string, required): Redirect URIScopes
(string/array, optional): Required scopesState
(string, optional): State parameter for securityExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'OAuth Flow', 3 Params: [ 4 { Name: 'Provider', Value: 'google' }, 5 { Name: 'ClientID', Value: 'your-client-id' }, 6 { Name: 'ClientSecret', Value: 'your-client-secret' }, 7 { Name: 'RedirectURI', Value: 'https://app.example.com/callback' }, 8 { Name: 'Scopes', Value: ['email', 'profile'] } 9 ], 10 ContextUser: currentUser 11});
Manages API rate limiting with queuing and backoff strategies.
Class: APIRateLimiterAction
Registration Name: "API Rate Limiter"
Parameters:
APIName
(string, required): API identifierRequestsPerWindow
(number, required): Max requests per time windowWindowSizeMs
(number, optional): Time window in ms (default: 60000)QueueRequests
(boolean, optional): Queue excess requests (default: true)MaxQueueSize
(number, optional): Maximum queue size (default: 100)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'API Rate Limiter', 3 Params: [ 4 { Name: 'APIName', Value: 'external-api' }, 5 { Name: 'RequestsPerWindow', Value: 100 }, 6 { Name: 'WindowSizeMs', Value: 60000 } 7 ], 8 ContextUser: currentUser 9});
Evaluates password strength and provides improvement suggestions.
Class: PasswordStrengthAction
Registration Name: "Password Strength"
Parameters:
Password
(string, required): Password to evaluateMinLength
(number, optional): Minimum required length (default: 8)RequireUppercase
(boolean, optional): Require uppercase letters (default: true)RequireLowercase
(boolean, optional): Require lowercase letters (default: true)RequireNumbers
(boolean, optional): Require numbers (default: true)RequireSpecial
(boolean, optional): Require special characters (default: true)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Password Strength', 3 Params: [ 4 { Name: 'Password', Value: 'MyP@ssw0rd' }, 5 { Name: 'MinLength', Value: 12 } 6 ], 7 ContextUser: currentUser 8});
Executes actions based on conditional logic.
Class: ConditionalAction
Registration Name: "Conditional"
Parameters:
Condition
(string, required): JavaScript expression to evaluateThenAction
(object, required): Action to run if condition is trueElseAction
(object, optional): Action to run if condition is falseContext
(object, optional): Variables available in conditionExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Conditional', 3 Params: [ 4 { Name: 'Condition', Value: 'value > 100' }, 5 { Name: 'Context', Value: { value: 150 } }, 6 { Name: 'ThenAction', Value: { name: 'Send Email', params: {...} } } 7 ], 8 ContextUser: currentUser 9});
Executes actions repeatedly with iteration support.
Class: LoopAction
Registration Name: "Loop"
Parameters:
Items
(array, optional): Array to iterate overCount
(number, optional): Number of iterations (if no items)Action
(object, required): Action to execute for each iterationParallel
(boolean, optional): Run iterations in parallel (default: false)MaxConcurrency
(number, optional): Max parallel executions (default: 10)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Loop', 3 Params: [ 4 { Name: 'Items', Value: [1, 2, 3, 4, 5] }, 5 { Name: 'Action', Value: { name: 'Process Item', params: {...} } }, 6 { Name: 'Parallel', Value: true } 7 ], 8 ContextUser: currentUser 9});
Runs multiple actions concurrently with result aggregation.
Class: ParallelExecuteAction
Registration Name: "Parallel Execute"
Parameters:
Actions
(array, required): Array of actions to executeMaxConcurrency
(number, optional): Maximum concurrent executions (default: 10)StopOnError
(boolean, optional): Stop all if one fails (default: false)Timeout
(number, optional): Overall timeout in msExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Parallel Execute', 3 Params: [ 4 { Name: 'Actions', Value: [ 5 { name: 'Web Search', params: { SearchTerms: 'AI' } }, 6 { name: 'HTTP Request', params: { URL: 'https://api.example.com' } } 7 ]}, 8 { Name: 'MaxConcurrency', Value: 2 } 9 ], 10 ContextUser: currentUser 11});
Retries failed actions with configurable backoff strategies.
Class: RetryAction
Registration Name: "Retry"
Parameters:
Action
(object, required): Action to retryMaxRetries
(number, optional): Maximum retry attempts (default: 3)InitialDelay
(number, optional): Initial delay in ms (default: 1000)BackoffMultiplier
(number, optional): Delay multiplier (default: 2)MaxDelay
(number, optional): Maximum delay in ms (default: 30000)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Retry', 3 Params: [ 4 { Name: 'Action', Value: { name: 'HTTP Request', params: {...} } }, 5 { Name: 'MaxRetries', Value: 5 }, 6 { Name: 'InitialDelay', Value: 2000 } 7 ], 8 ContextUser: currentUser 9});
Introduces delays in workflow execution.
Class: DelayAction
Registration Name: "Delay"
Parameters:
DelayMs
(number, required): Delay duration in millisecondsJitter
(number, optional): Random jitter to add (0-1, percentage of delay)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Delay', 3 Params: [ 4 { Name: 'DelayMs', Value: 5000 }, 5 { Name: 'Jitter', Value: 0.1 } // 10% jitter 6 ], 7 ContextUser: currentUser 8});
Sends messages to Slack channels via webhooks.
Class: SlackWebhookAction
Registration Name: "Slack Webhook"
Parameters:
WebhookURL
(string, required): Slack webhook URLMessage
(string, required): Message textChannel
(string, optional): Override default channelUsername
(string, optional): Override default usernameIconEmoji
(string, optional): Override default iconAttachments
(array/string, optional): Rich message attachmentsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Slack Webhook', 3 Params: [ 4 { Name: 'WebhookURL', Value: 'https://hooks.slack.com/services/...' }, 5 { Name: 'Message', Value: 'Deployment completed successfully!' }, 6 { Name: 'IconEmoji', Value: ':rocket:' } 7 ], 8 ContextUser: currentUser 9});
Sends messages to Microsoft Teams channels via webhooks.
Class: TeamsWebhookAction
Registration Name: "Teams Webhook"
Parameters:
WebhookURL
(string, required): Teams webhook URLTitle
(string, optional): Message titleText
(string, required): Message textThemeColor
(string, optional): Message accent colorSections
(array/string, optional): Message sectionsActions
(array/string, optional): Interactive actionsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Teams Webhook', 3 Params: [ 4 { Name: 'WebhookURL', Value: 'https://outlook.office.com/webhook/...' }, 5 { Name: 'Title', Value: 'Build Status' }, 6 { Name: 'Text', Value: 'Build #123 completed successfully' }, 7 { Name: 'ThemeColor', Value: '00FF00' } 8 ], 9 ContextUser: currentUser 10});
Executes AI prompts using MemberJunction's AI framework with model selection and parameter control.
Class: ExecuteAIPromptAction
Registration Name: "Execute AI Prompt"
Parameters:
PromptID
(string, optional): ID of saved prompt templatePromptName
(string, optional): Name of saved prompt templatePromptText
(string, optional): Direct prompt text (if not using template)ModelID
(string, optional): Specific AI model ID to useModelName
(string, optional): Specific AI model name to useTemperature
(number, optional): Model temperature (0-2)MaxTokens
(number, optional): Maximum response tokensVariables
(object/string, optional): Variables to inject into prompt templateExample Usage:
1// Using a saved prompt template 2const templateResult = await ActionEngine.RunAction({ 3 ActionName: 'Execute AI Prompt', 4 Params: [ 5 { Name: 'PromptName', Value: 'Summarize Text' }, 6 { Name: 'Variables', Value: { text: 'Long article text here...' } }, 7 { Name: 'Temperature', Value: 0.7 } 8 ], 9 ContextUser: currentUser 10}); 11 12// Using direct prompt text 13const directResult = await ActionEngine.RunAction({ 14 ActionName: 'Execute AI Prompt', 15 Params: [ 16 { Name: 'PromptText', Value: 'Explain quantum computing in simple terms' }, 17 { Name: 'ModelName', Value: 'gpt-4' }, 18 { Name: 'MaxTokens', Value: 500 } 19 ], 20 ContextUser: currentUser 21});
Many actions support both JSON object and string inputs for flexibility:
This applies to actions like JSON Transform, HTTP Request, GraphQL Query, and others with object parameters.
Actions implement various error handling strategies:
1npm install @memberjunction/core-actions
Parses CSV data with configurable options for headers, delimiters, and data types.
Class: CSVParserAction
Registration Name: "CSV Parser"
Parameters:
CSVData
(string, required): The CSV data to parseHasHeaders
(boolean, optional): Whether the first row contains headers (default: true)Delimiter
(string, optional): Field delimiter (default: ',')QuoteCharacter
(string, optional): Quote character for escaping (default: '"')SkipEmptyRows
(boolean, optional): Skip empty rows (default: true)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'CSV Parser', 3 Params: [ 4 { Name: 'CSVData', Value: 'Name,Age,City\nJohn,30,NYC\nJane,25,LA' }, 5 { Name: 'HasHeaders', Value: true } 6 ], 7 ContextUser: currentUser 8});
Transforms JSON data using JSONPath-style queries with multiple operations support.
Class: JSONTransformAction
Registration Name: "JSON Transform"
Parameters:
InputData
(object/string, required): JSON data to transform (supports both JSON object and string)Transformations
(string/array, required): JSONPath queries for transformationOutputFormat
(string, optional): 'object' or 'array' (default: 'object')DefaultValue
(any, optional): Default value for missing pathsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'JSON Transform', 3 Params: [ 4 { Name: 'InputData', Value: { users: [{ name: 'John', age: 30 }] } }, 5 { Name: 'Transformations', Value: ['name:$.users[0].name', 'age:$.users[0].age'] } 6 ], 7 ContextUser: currentUser 8});
Parses XML data into JSON format with namespace support.
Class: XMLParserAction
Registration Name: "XML Parser"
Parameters:
XMLData
(string, required): The XML data to parseRemoveNamespaces
(boolean, optional): Strip namespace prefixes (default: false)ParseNumbers
(boolean, optional): Convert numeric strings to numbers (default: true)ParseBooleans
(boolean, optional): Convert boolean strings to booleans (default: true)AttributePrefix
(string, optional): Prefix for attributes (default: '@')Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'XML Parser', 3 Params: [ 4 { Name: 'XMLData', Value: '<root><user id="1"><name>John</name></user></root>' }, 5 { Name: 'ParseNumbers', Value: true } 6 ], 7 ContextUser: currentUser 8});
Performs aggregation operations on arrays of data with support for multiple aggregation functions.
Class: AggregateDataAction
Registration Name: "Aggregate Data"
Parameters:
Data
(array, required): Array of objects to aggregateGroupBy
(string/array, optional): Field(s) to group byAggregations
(object/string, required): Aggregation operations (sum, avg, count, min, max)Having
(object, optional): Filter conditions on aggregated resultsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Aggregate Data', 3 Params: [ 4 { Name: 'Data', Value: [{ category: 'A', value: 10 }, { category: 'A', value: 20 }] }, 5 { Name: 'GroupBy', Value: 'category' }, 6 { Name: 'Aggregations', Value: { totalValue: 'sum:value', avgValue: 'avg:value' } } 7 ], 8 ContextUser: currentUser 9});
Maps data from one structure to another using field mappings and transformations.
Class: DataMapperAction
Registration Name: "Data Mapper"
Parameters:
SourceData
(object/array, required): Data to mapMappings
(object/string, required): Field mapping configurationDefaultValues
(object, optional): Default values for missing fieldsRemoveUnmapped
(boolean, optional): Remove fields not in mapping (default: false)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Data Mapper', 3 Params: [ 4 { Name: 'SourceData', Value: { firstName: 'John', lastName: 'Doe' } }, 5 { Name: 'Mappings', Value: { fullName: '{{firstName}} {{lastName}}' } } 6 ], 7 ContextUser: currentUser 8});
Generates PDF documents from HTML or markdown content.
Class: PDFGeneratorAction
Registration Name: "PDF Generator"
Parameters:
Content
(string, required): HTML or markdown contentContentType
(string, optional): 'html' or 'markdown' (default: 'html')Options
(object/string, optional): PDF options (margins, orientation, etc.)FileName
(string, optional): Output filenameExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'PDF Generator', 3 Params: [ 4 { Name: 'Content', Value: '<h1>Report</h1><p>Content here</p>' }, 5 { Name: 'Options', Value: { margin: { top: '1in' }, orientation: 'portrait' } } 6 ], 7 ContextUser: currentUser 8});
Extracts text and metadata from PDF files.
Class: PDFExtractorAction
Registration Name: "PDF Extractor"
Parameters:
PDFData
(Buffer/string, required): PDF file data or base64 stringExtractText
(boolean, optional): Extract text content (default: true)ExtractMetadata
(boolean, optional): Extract document metadata (default: true)PageRange
(string, optional): Pages to extract (e.g., '1-5,7,9-10')Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'PDF Extractor', 3 Params: [ 4 { Name: 'PDFData', Value: pdfBuffer }, 5 { Name: 'PageRange', Value: '1-10' } 6 ], 7 ContextUser: currentUser 8});
Reads data from Excel files with support for multiple sheets.
Class: ExcelReaderAction
Registration Name: "Excel Reader"
Parameters:
ExcelData
(Buffer/string, required): Excel file data or base64 stringSheetName
(string, optional): Specific sheet to readRange
(string, optional): Cell range to read (e.g., 'A1:D10')ParseDates
(boolean, optional): Convert Excel dates (default: true)IncludeEmptyRows
(boolean, optional): Include empty rows (default: false)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Excel Reader', 3 Params: [ 4 { Name: 'ExcelData', Value: excelBuffer }, 5 { Name: 'SheetName', Value: 'Sales Data' } 6 ], 7 ContextUser: currentUser 8});
Creates Excel files from data with formatting options.
Class: ExcelWriterAction
Registration Name: "Excel Writer"
Parameters:
Data
(array/object, required): Data to write (array of objects or sheets config)SheetName
(string, optional): Sheet name (default: 'Sheet1')IncludeHeaders
(boolean, optional): Include column headers (default: true)ColumnWidths
(object, optional): Custom column widthsFormatting
(object/string, optional): Cell formatting rulesExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Excel Writer', 3 Params: [ 4 { Name: 'Data', Value: [{ name: 'John', sales: 1000 }, { name: 'Jane', sales: 1500 }] }, 5 { Name: 'SheetName', Value: 'Sales Report' } 6 ], 7 ContextUser: currentUser 8});
Compresses files into ZIP archives.
Class: FileCompressAction
Registration Name: "File Compress"
Parameters:
Files
(array, required): Array of file objects with name and contentCompressionLevel
(number, optional): Compression level 0-9 (default: 6)ArchiveName
(string, optional): Output archive namePassword
(string, optional): Password protection for archiveExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'File Compress', 3 Params: [ 4 { Name: 'Files', Value: [ 5 { name: 'report.txt', content: 'Report content' }, 6 { name: 'data.json', content: JSON.stringify(data) } 7 ]}, 8 { Name: 'ArchiveName', Value: 'backup.zip' } 9 ], 10 ContextUser: currentUser 11});
Makes HTTP requests with full control over headers, body, and authentication.
Class: HTTPRequestAction
Registration Name: "HTTP Request"
Parameters:
URL
(string, required): Request URLMethod
(string, optional): HTTP method (default: 'GET')Headers
(object/string, optional): Request headersBody
(any, optional): Request bodyTimeout
(number, optional): Request timeout in ms (default: 30000)RetryCount
(number, optional): Number of retries (default: 0)BasicAuth
(object, optional): Basic authentication credentialsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'HTTP Request', 3 Params: [ 4 { Name: 'URL', Value: 'https://api.example.com/data' }, 5 { Name: 'Method', Value: 'POST' }, 6 { Name: 'Headers', Value: { 'Content-Type': 'application/json' } }, 7 { Name: 'Body', Value: { query: 'test' } } 8 ], 9 ContextUser: currentUser 10});
Executes GraphQL queries and mutations with variable support.
Class: GraphQLQueryAction
Registration Name: "GraphQL Query"
Parameters:
Endpoint
(string, required): GraphQL endpoint URLQuery
(string, required): GraphQL query or mutationVariables
(object/string, optional): Query variablesHeaders
(object/string, optional): Request headersOperationName
(string, optional): Operation name for multi-operation documentsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'GraphQL Query', 3 Params: [ 4 { Name: 'Endpoint', Value: 'https://api.example.com/graphql' }, 5 { Name: 'Query', Value: 'query GetUser($id: ID!) { user(id: $id) { name email } }' }, 6 { Name: 'Variables', Value: { id: '123' } } 7 ], 8 ContextUser: currentUser 9});
Handles OAuth 2.0 authentication flows.
Class: OAuthFlowAction
Registration Name: "OAuth Flow"
Parameters:
Provider
(string, required): OAuth provider nameClientID
(string, required): OAuth client IDClientSecret
(string, required): OAuth client secretRedirectURI
(string, required): Redirect URIScopes
(string/array, optional): Required scopesState
(string, optional): State parameter for securityExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'OAuth Flow', 3 Params: [ 4 { Name: 'Provider', Value: 'google' }, 5 { Name: 'ClientID', Value: 'your-client-id' }, 6 { Name: 'ClientSecret', Value: 'your-client-secret' }, 7 { Name: 'RedirectURI', Value: 'https://app.example.com/callback' }, 8 { Name: 'Scopes', Value: ['email', 'profile'] } 9 ], 10 ContextUser: currentUser 11});
Manages API rate limiting with queuing and backoff strategies.
Class: APIRateLimiterAction
Registration Name: "API Rate Limiter"
Parameters:
APIName
(string, required): API identifierRequestsPerWindow
(number, required): Max requests per time windowWindowSizeMs
(number, optional): Time window in ms (default: 60000)QueueRequests
(boolean, optional): Queue excess requests (default: true)MaxQueueSize
(number, optional): Maximum queue size (default: 100)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'API Rate Limiter', 3 Params: [ 4 { Name: 'APIName', Value: 'external-api' }, 5 { Name: 'RequestsPerWindow', Value: 100 }, 6 { Name: 'WindowSizeMs', Value: 60000 } 7 ], 8 ContextUser: currentUser 9});
Evaluates password strength and provides improvement suggestions.
Class: PasswordStrengthAction
Registration Name: "Password Strength"
Parameters:
Password
(string, required): Password to evaluateMinLength
(number, optional): Minimum required length (default: 8)RequireUppercase
(boolean, optional): Require uppercase letters (default: true)RequireLowercase
(boolean, optional): Require lowercase letters (default: true)RequireNumbers
(boolean, optional): Require numbers (default: true)RequireSpecial
(boolean, optional): Require special characters (default: true)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Password Strength', 3 Params: [ 4 { Name: 'Password', Value: 'MyP@ssw0rd' }, 5 { Name: 'MinLength', Value: 12 } 6 ], 7 ContextUser: currentUser 8});
Executes actions based on conditional logic.
Class: ConditionalAction
Registration Name: "Conditional"
Parameters:
Condition
(string, required): JavaScript expression to evaluateThenAction
(object, required): Action to run if condition is trueElseAction
(object, optional): Action to run if condition is falseContext
(object, optional): Variables available in conditionExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Conditional', 3 Params: [ 4 { Name: 'Condition', Value: 'value > 100' }, 5 { Name: 'Context', Value: { value: 150 } }, 6 { Name: 'ThenAction', Value: { name: 'Send Email', params: {...} } } 7 ], 8 ContextUser: currentUser 9});
Executes actions repeatedly with iteration support.
Class: LoopAction
Registration Name: "Loop"
Parameters:
Items
(array, optional): Array to iterate overCount
(number, optional): Number of iterations (if no items)Action
(object, required): Action to execute for each iterationParallel
(boolean, optional): Run iterations in parallel (default: false)MaxConcurrency
(number, optional): Max parallel executions (default: 10)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Loop', 3 Params: [ 4 { Name: 'Items', Value: [1, 2, 3, 4, 5] }, 5 { Name: 'Action', Value: { name: 'Process Item', params: {...} } }, 6 { Name: 'Parallel', Value: true } 7 ], 8 ContextUser: currentUser 9});
Runs multiple actions concurrently with result aggregation.
Class: ParallelExecuteAction
Registration Name: "Parallel Execute"
Parameters:
Actions
(array, required): Array of actions to executeMaxConcurrency
(number, optional): Maximum concurrent executions (default: 10)StopOnError
(boolean, optional): Stop all if one fails (default: false)Timeout
(number, optional): Overall timeout in msExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Parallel Execute', 3 Params: [ 4 { Name: 'Actions', Value: [ 5 { name: 'Web Search', params: { SearchTerms: 'AI' } }, 6 { name: 'HTTP Request', params: { URL: 'https://api.example.com' } } 7 ]}, 8 { Name: 'MaxConcurrency', Value: 2 } 9 ], 10 ContextUser: currentUser 11});
Retries failed actions with configurable backoff strategies.
Class: RetryAction
Registration Name: "Retry"
Parameters:
Action
(object, required): Action to retryMaxRetries
(number, optional): Maximum retry attempts (default: 3)InitialDelay
(number, optional): Initial delay in ms (default: 1000)BackoffMultiplier
(number, optional): Delay multiplier (default: 2)MaxDelay
(number, optional): Maximum delay in ms (default: 30000)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Retry', 3 Params: [ 4 { Name: 'Action', Value: { name: 'HTTP Request', params: {...} } }, 5 { Name: 'MaxRetries', Value: 5 }, 6 { Name: 'InitialDelay', Value: 2000 } 7 ], 8 ContextUser: currentUser 9});
Introduces delays in workflow execution.
Class: DelayAction
Registration Name: "Delay"
Parameters:
DelayMs
(number, required): Delay duration in millisecondsJitter
(number, optional): Random jitter to add (0-1, percentage of delay)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Delay', 3 Params: [ 4 { Name: 'DelayMs', Value: 5000 }, 5 { Name: 'Jitter', Value: 0.1 } // 10% jitter 6 ], 7 ContextUser: currentUser 8});
Sends messages to Slack channels via webhooks.
Class: SlackWebhookAction
Registration Name: "Slack Webhook"
Parameters:
WebhookURL
(string, required): Slack webhook URLMessage
(string, required): Message textChannel
(string, optional): Override default channelUsername
(string, optional): Override default usernameIconEmoji
(string, optional): Override default iconAttachments
(array/string, optional): Rich message attachmentsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Slack Webhook', 3 Params: [ 4 { Name: 'WebhookURL', Value: 'https://hooks.slack.com/services/...' }, 5 { Name: 'Message', Value: 'Deployment completed successfully!' }, 6 { Name: 'IconEmoji', Value: ':rocket:' } 7 ], 8 ContextUser: currentUser 9});
Sends messages to Microsoft Teams channels via webhooks.
Class: TeamsWebhookAction
Registration Name: "Teams Webhook"
Parameters:
WebhookURL
(string, required): Teams webhook URLTitle
(string, optional): Message titleText
(string, required): Message textThemeColor
(string, optional): Message accent colorSections
(array/string, optional): Message sectionsActions
(array/string, optional): Interactive actionsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Teams Webhook', 3 Params: [ 4 { Name: 'WebhookURL', Value: 'https://outlook.office.com/webhook/...' }, 5 { Name: 'Title', Value: 'Build Status' }, 6 { Name: 'Text', Value: 'Build #123 completed successfully' }, 7 { Name: 'ThemeColor', Value: '00FF00' } 8 ], 9 ContextUser: currentUser 10});
Executes AI prompts using MemberJunction's AI framework with model selection and parameter control.
Class: ExecuteAIPromptAction
Registration Name: "Execute AI Prompt"
Parameters:
PromptID
(string, optional): ID of saved prompt templatePromptName
(string, optional): Name of saved prompt templatePromptText
(string, optional): Direct prompt text (if not using template)ModelID
(string, optional): Specific AI model ID to useModelName
(string, optional): Specific AI model name to useTemperature
(number, optional): Model temperature (0-2)MaxTokens
(number, optional): Maximum response tokensVariables
(object/string, optional): Variables to inject into prompt templateExample Usage:
1// Using a saved prompt template 2const templateResult = await ActionEngine.RunAction({ 3 ActionName: 'Execute AI Prompt', 4 Params: [ 5 { Name: 'PromptName', Value: 'Summarize Text' }, 6 { Name: 'Variables', Value: { text: 'Long article text here...' } }, 7 { Name: 'Temperature', Value: 0.7 } 8 ], 9 ContextUser: currentUser 10}); 11 12// Using direct prompt text 13const directResult = await ActionEngine.RunAction({ 14 ActionName: 'Execute AI Prompt', 15 Params: [ 16 { Name: 'PromptText', Value: 'Explain quantum computing in simple terms' }, 17 { Name: 'ModelName', Value: 'gpt-4' }, 18 { Name: 'MaxTokens', Value: 500 } 19 ], 20 ContextUser: currentUser 21});
Many actions support both JSON object and string inputs for flexibility:
This applies to actions like JSON Transform, HTTP Request, GraphQL Query, and others with object parameters.
Actions implement various error handling strategies:
## Available Actions
### 1. Send Single Message Action
Provides a simple wrapper around the MemberJunction Communication Framework to send single messages through various communication providers.
**Class:** `SendSingleMessageAction`
**Registration Name:** `"Send Single Message"`
**Parameters:**
- `Subject` (string): The subject of the message
- `Body` (string): The body content of the message
- `To` (string): The recipient's address
- `From` (string): The sender's address
- `Provider` (string): The name of the Communication Provider to use
- `MessageType` (string): The name of the Message Type within the provider
**Example Usage:**
Parses CSV data with configurable options for headers, delimiters, and data types.
Class: CSVParserAction
Registration Name: "CSV Parser"
Parameters:
CSVData
(string, required): The CSV data to parseHasHeaders
(boolean, optional): Whether the first row contains headers (default: true)Delimiter
(string, optional): Field delimiter (default: ',')QuoteCharacter
(string, optional): Quote character for escaping (default: '"')SkipEmptyRows
(boolean, optional): Skip empty rows (default: true)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'CSV Parser', 3 Params: [ 4 { Name: 'CSVData', Value: 'Name,Age,City\nJohn,30,NYC\nJane,25,LA' }, 5 { Name: 'HasHeaders', Value: true } 6 ], 7 ContextUser: currentUser 8});
Transforms JSON data using JSONPath-style queries with multiple operations support.
Class: JSONTransformAction
Registration Name: "JSON Transform"
Parameters:
InputData
(object/string, required): JSON data to transform (supports both JSON object and string)Transformations
(string/array, required): JSONPath queries for transformationOutputFormat
(string, optional): 'object' or 'array' (default: 'object')DefaultValue
(any, optional): Default value for missing pathsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'JSON Transform', 3 Params: [ 4 { Name: 'InputData', Value: { users: [{ name: 'John', age: 30 }] } }, 5 { Name: 'Transformations', Value: ['name:$.users[0].name', 'age:$.users[0].age'] } 6 ], 7 ContextUser: currentUser 8});
Parses XML data into JSON format with namespace support.
Class: XMLParserAction
Registration Name: "XML Parser"
Parameters:
XMLData
(string, required): The XML data to parseRemoveNamespaces
(boolean, optional): Strip namespace prefixes (default: false)ParseNumbers
(boolean, optional): Convert numeric strings to numbers (default: true)ParseBooleans
(boolean, optional): Convert boolean strings to booleans (default: true)AttributePrefix
(string, optional): Prefix for attributes (default: '@')Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'XML Parser', 3 Params: [ 4 { Name: 'XMLData', Value: '<root><user id="1"><name>John</name></user></root>' }, 5 { Name: 'ParseNumbers', Value: true } 6 ], 7 ContextUser: currentUser 8});
Performs aggregation operations on arrays of data with support for multiple aggregation functions.
Class: AggregateDataAction
Registration Name: "Aggregate Data"
Parameters:
Data
(array, required): Array of objects to aggregateGroupBy
(string/array, optional): Field(s) to group byAggregations
(object/string, required): Aggregation operations (sum, avg, count, min, max)Having
(object, optional): Filter conditions on aggregated resultsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Aggregate Data', 3 Params: [ 4 { Name: 'Data', Value: [{ category: 'A', value: 10 }, { category: 'A', value: 20 }] }, 5 { Name: 'GroupBy', Value: 'category' }, 6 { Name: 'Aggregations', Value: { totalValue: 'sum:value', avgValue: 'avg:value' } } 7 ], 8 ContextUser: currentUser 9});
Maps data from one structure to another using field mappings and transformations.
Class: DataMapperAction
Registration Name: "Data Mapper"
Parameters:
SourceData
(object/array, required): Data to mapMappings
(object/string, required): Field mapping configurationDefaultValues
(object, optional): Default values for missing fieldsRemoveUnmapped
(boolean, optional): Remove fields not in mapping (default: false)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Data Mapper', 3 Params: [ 4 { Name: 'SourceData', Value: { firstName: 'John', lastName: 'Doe' } }, 5 { Name: 'Mappings', Value: { fullName: '{{firstName}} {{lastName}}' } } 6 ], 7 ContextUser: currentUser 8});
Generates PDF documents from HTML or markdown content.
Class: PDFGeneratorAction
Registration Name: "PDF Generator"
Parameters:
Content
(string, required): HTML or markdown contentContentType
(string, optional): 'html' or 'markdown' (default: 'html')Options
(object/string, optional): PDF options (margins, orientation, etc.)FileName
(string, optional): Output filenameExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'PDF Generator', 3 Params: [ 4 { Name: 'Content', Value: '<h1>Report</h1><p>Content here</p>' }, 5 { Name: 'Options', Value: { margin: { top: '1in' }, orientation: 'portrait' } } 6 ], 7 ContextUser: currentUser 8});
Extracts text and metadata from PDF files.
Class: PDFExtractorAction
Registration Name: "PDF Extractor"
Parameters:
PDFData
(Buffer/string, required): PDF file data or base64 stringExtractText
(boolean, optional): Extract text content (default: true)ExtractMetadata
(boolean, optional): Extract document metadata (default: true)PageRange
(string, optional): Pages to extract (e.g., '1-5,7,9-10')Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'PDF Extractor', 3 Params: [ 4 { Name: 'PDFData', Value: pdfBuffer }, 5 { Name: 'PageRange', Value: '1-10' } 6 ], 7 ContextUser: currentUser 8});
Reads data from Excel files with support for multiple sheets.
Class: ExcelReaderAction
Registration Name: "Excel Reader"
Parameters:
ExcelData
(Buffer/string, required): Excel file data or base64 stringSheetName
(string, optional): Specific sheet to readRange
(string, optional): Cell range to read (e.g., 'A1:D10')ParseDates
(boolean, optional): Convert Excel dates (default: true)IncludeEmptyRows
(boolean, optional): Include empty rows (default: false)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Excel Reader', 3 Params: [ 4 { Name: 'ExcelData', Value: excelBuffer }, 5 { Name: 'SheetName', Value: 'Sales Data' } 6 ], 7 ContextUser: currentUser 8});
Creates Excel files from data with formatting options.
Class: ExcelWriterAction
Registration Name: "Excel Writer"
Parameters:
Data
(array/object, required): Data to write (array of objects or sheets config)SheetName
(string, optional): Sheet name (default: 'Sheet1')IncludeHeaders
(boolean, optional): Include column headers (default: true)ColumnWidths
(object, optional): Custom column widthsFormatting
(object/string, optional): Cell formatting rulesExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Excel Writer', 3 Params: [ 4 { Name: 'Data', Value: [{ name: 'John', sales: 1000 }, { name: 'Jane', sales: 1500 }] }, 5 { Name: 'SheetName', Value: 'Sales Report' } 6 ], 7 ContextUser: currentUser 8});
Compresses files into ZIP archives.
Class: FileCompressAction
Registration Name: "File Compress"
Parameters:
Files
(array, required): Array of file objects with name and contentCompressionLevel
(number, optional): Compression level 0-9 (default: 6)ArchiveName
(string, optional): Output archive namePassword
(string, optional): Password protection for archiveExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'File Compress', 3 Params: [ 4 { Name: 'Files', Value: [ 5 { name: 'report.txt', content: 'Report content' }, 6 { name: 'data.json', content: JSON.stringify(data) } 7 ]}, 8 { Name: 'ArchiveName', Value: 'backup.zip' } 9 ], 10 ContextUser: currentUser 11});
Makes HTTP requests with full control over headers, body, and authentication.
Class: HTTPRequestAction
Registration Name: "HTTP Request"
Parameters:
URL
(string, required): Request URLMethod
(string, optional): HTTP method (default: 'GET')Headers
(object/string, optional): Request headersBody
(any, optional): Request bodyTimeout
(number, optional): Request timeout in ms (default: 30000)RetryCount
(number, optional): Number of retries (default: 0)BasicAuth
(object, optional): Basic authentication credentialsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'HTTP Request', 3 Params: [ 4 { Name: 'URL', Value: 'https://api.example.com/data' }, 5 { Name: 'Method', Value: 'POST' }, 6 { Name: 'Headers', Value: { 'Content-Type': 'application/json' } }, 7 { Name: 'Body', Value: { query: 'test' } } 8 ], 9 ContextUser: currentUser 10});
Executes GraphQL queries and mutations with variable support.
Class: GraphQLQueryAction
Registration Name: "GraphQL Query"
Parameters:
Endpoint
(string, required): GraphQL endpoint URLQuery
(string, required): GraphQL query or mutationVariables
(object/string, optional): Query variablesHeaders
(object/string, optional): Request headersOperationName
(string, optional): Operation name for multi-operation documentsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'GraphQL Query', 3 Params: [ 4 { Name: 'Endpoint', Value: 'https://api.example.com/graphql' }, 5 { Name: 'Query', Value: 'query GetUser($id: ID!) { user(id: $id) { name email } }' }, 6 { Name: 'Variables', Value: { id: '123' } } 7 ], 8 ContextUser: currentUser 9});
Handles OAuth 2.0 authentication flows.
Class: OAuthFlowAction
Registration Name: "OAuth Flow"
Parameters:
Provider
(string, required): OAuth provider nameClientID
(string, required): OAuth client IDClientSecret
(string, required): OAuth client secretRedirectURI
(string, required): Redirect URIScopes
(string/array, optional): Required scopesState
(string, optional): State parameter for securityExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'OAuth Flow', 3 Params: [ 4 { Name: 'Provider', Value: 'google' }, 5 { Name: 'ClientID', Value: 'your-client-id' }, 6 { Name: 'ClientSecret', Value: 'your-client-secret' }, 7 { Name: 'RedirectURI', Value: 'https://app.example.com/callback' }, 8 { Name: 'Scopes', Value: ['email', 'profile'] } 9 ], 10 ContextUser: currentUser 11});
Manages API rate limiting with queuing and backoff strategies.
Class: APIRateLimiterAction
Registration Name: "API Rate Limiter"
Parameters:
APIName
(string, required): API identifierRequestsPerWindow
(number, required): Max requests per time windowWindowSizeMs
(number, optional): Time window in ms (default: 60000)QueueRequests
(boolean, optional): Queue excess requests (default: true)MaxQueueSize
(number, optional): Maximum queue size (default: 100)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'API Rate Limiter', 3 Params: [ 4 { Name: 'APIName', Value: 'external-api' }, 5 { Name: 'RequestsPerWindow', Value: 100 }, 6 { Name: 'WindowSizeMs', Value: 60000 } 7 ], 8 ContextUser: currentUser 9});
Evaluates password strength and provides improvement suggestions.
Class: PasswordStrengthAction
Registration Name: "Password Strength"
Parameters:
Password
(string, required): Password to evaluateMinLength
(number, optional): Minimum required length (default: 8)RequireUppercase
(boolean, optional): Require uppercase letters (default: true)RequireLowercase
(boolean, optional): Require lowercase letters (default: true)RequireNumbers
(boolean, optional): Require numbers (default: true)RequireSpecial
(boolean, optional): Require special characters (default: true)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Password Strength', 3 Params: [ 4 { Name: 'Password', Value: 'MyP@ssw0rd' }, 5 { Name: 'MinLength', Value: 12 } 6 ], 7 ContextUser: currentUser 8});
Executes actions based on conditional logic.
Class: ConditionalAction
Registration Name: "Conditional"
Parameters:
Condition
(string, required): JavaScript expression to evaluateThenAction
(object, required): Action to run if condition is trueElseAction
(object, optional): Action to run if condition is falseContext
(object, optional): Variables available in conditionExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Conditional', 3 Params: [ 4 { Name: 'Condition', Value: 'value > 100' }, 5 { Name: 'Context', Value: { value: 150 } }, 6 { Name: 'ThenAction', Value: { name: 'Send Email', params: {...} } } 7 ], 8 ContextUser: currentUser 9});
Executes actions repeatedly with iteration support.
Class: LoopAction
Registration Name: "Loop"
Parameters:
Items
(array, optional): Array to iterate overCount
(number, optional): Number of iterations (if no items)Action
(object, required): Action to execute for each iterationParallel
(boolean, optional): Run iterations in parallel (default: false)MaxConcurrency
(number, optional): Max parallel executions (default: 10)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Loop', 3 Params: [ 4 { Name: 'Items', Value: [1, 2, 3, 4, 5] }, 5 { Name: 'Action', Value: { name: 'Process Item', params: {...} } }, 6 { Name: 'Parallel', Value: true } 7 ], 8 ContextUser: currentUser 9});
Runs multiple actions concurrently with result aggregation.
Class: ParallelExecuteAction
Registration Name: "Parallel Execute"
Parameters:
Actions
(array, required): Array of actions to executeMaxConcurrency
(number, optional): Maximum concurrent executions (default: 10)StopOnError
(boolean, optional): Stop all if one fails (default: false)Timeout
(number, optional): Overall timeout in msExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Parallel Execute', 3 Params: [ 4 { Name: 'Actions', Value: [ 5 { name: 'Web Search', params: { SearchTerms: 'AI' } }, 6 { name: 'HTTP Request', params: { URL: 'https://api.example.com' } } 7 ]}, 8 { Name: 'MaxConcurrency', Value: 2 } 9 ], 10 ContextUser: currentUser 11});
Retries failed actions with configurable backoff strategies.
Class: RetryAction
Registration Name: "Retry"
Parameters:
Action
(object, required): Action to retryMaxRetries
(number, optional): Maximum retry attempts (default: 3)InitialDelay
(number, optional): Initial delay in ms (default: 1000)BackoffMultiplier
(number, optional): Delay multiplier (default: 2)MaxDelay
(number, optional): Maximum delay in ms (default: 30000)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Retry', 3 Params: [ 4 { Name: 'Action', Value: { name: 'HTTP Request', params: {...} } }, 5 { Name: 'MaxRetries', Value: 5 }, 6 { Name: 'InitialDelay', Value: 2000 } 7 ], 8 ContextUser: currentUser 9});
Introduces delays in workflow execution.
Class: DelayAction
Registration Name: "Delay"
Parameters:
DelayMs
(number, required): Delay duration in millisecondsJitter
(number, optional): Random jitter to add (0-1, percentage of delay)Example Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Delay', 3 Params: [ 4 { Name: 'DelayMs', Value: 5000 }, 5 { Name: 'Jitter', Value: 0.1 } // 10% jitter 6 ], 7 ContextUser: currentUser 8});
Sends messages to Slack channels via webhooks.
Class: SlackWebhookAction
Registration Name: "Slack Webhook"
Parameters:
WebhookURL
(string, required): Slack webhook URLMessage
(string, required): Message textChannel
(string, optional): Override default channelUsername
(string, optional): Override default usernameIconEmoji
(string, optional): Override default iconAttachments
(array/string, optional): Rich message attachmentsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Slack Webhook', 3 Params: [ 4 { Name: 'WebhookURL', Value: 'https://hooks.slack.com/services/...' }, 5 { Name: 'Message', Value: 'Deployment completed successfully!' }, 6 { Name: 'IconEmoji', Value: ':rocket:' } 7 ], 8 ContextUser: currentUser 9});
Sends messages to Microsoft Teams channels via webhooks.
Class: TeamsWebhookAction
Registration Name: "Teams Webhook"
Parameters:
WebhookURL
(string, required): Teams webhook URLTitle
(string, optional): Message titleText
(string, required): Message textThemeColor
(string, optional): Message accent colorSections
(array/string, optional): Message sectionsActions
(array/string, optional): Interactive actionsExample Usage:
1const result = await ActionEngine.RunAction({ 2 ActionName: 'Teams Webhook', 3 Params: [ 4 { Name: 'WebhookURL', Value: 'https://outlook.office.com/webhook/...' }, 5 { Name: 'Title', Value: 'Build Status' }, 6 { Name: 'Text', Value: 'Build #123 completed successfully' }, 7 { Name: 'ThemeColor', Value: '00FF00' } 8 ], 9 ContextUser: currentUser 10});
Executes AI prompts using MemberJunction's AI framework with model selection and parameter control.
Class: ExecuteAIPromptAction
Registration Name: "Execute AI Prompt"
Parameters:
PromptID
(string, optional): ID of saved prompt templatePromptName
(string, optional): Name of saved prompt templatePromptText
(string, optional): Direct prompt text (if not using template)ModelID
(string, optional): Specific AI model ID to useModelName
(string, optional): Specific AI model name to useTemperature
(number, optional): Model temperature (0-2)MaxTokens
(number, optional): Maximum response tokensVariables
(object/string, optional): Variables to inject into prompt templateExample Usage:
1// Using a saved prompt template 2const templateResult = await ActionEngine.RunAction({ 3 ActionName: 'Execute AI Prompt', 4 Params: [ 5 { Name: 'PromptName', Value: 'Summarize Text' }, 6 { Name: 'Variables', Value: { text: 'Long article text here...' } }, 7 { Name: 'Temperature', Value: 0.7 } 8 ], 9 ContextUser: currentUser 10}); 11 12// Using direct prompt text 13const directResult = await ActionEngine.RunAction({ 14 ActionName: 'Execute AI Prompt', 15 Params: [ 16 { Name: 'PromptText', Value: 'Explain quantum computing in simple terms' }, 17 { Name: 'ModelName', Value: 'gpt-4' }, 18 { Name: 'MaxTokens', Value: 500 } 19 ], 20 ContextUser: currentUser 21});
Many actions support both JSON object and string inputs for flexibility:
This applies to actions like JSON Transform, HTTP Request, GraphQL Query, and others with object parameters.
Actions implement various error handling strategies:
1import { SendSingleMessageAction } from '@memberjunction/core-actions'; 2import { ActionEngine } from '@memberjunction/actions'; 3 4// Execute the action through the Action Engine 5const result = await ActionEngine.RunAction({ 6 ActionName: 'Send Single Message', 7 Params: [ 8 { Name: 'Subje
No vulnerabilities found.
No security vulnerabilities found.