@servicenow/sdk
Version:
ServiceNow SDK
669 lines (538 loc) • 31.8 kB
Markdown
tags: [AiAgenticWorkflow, ai agentic workflow, artificial intelligence, ai agent]
# AiAgenticWorkflow (`sn_aia_usecase`)
Configure an AI Agentic Workflow using the Fluent API. This API provides a structured interface for creating AI Agentic Workflows in ServiceNow's AI Agent Studio, automatically handling all underlying complexity and relationships between multiple tables.
## Overview
The `AiAgenticWorkflow` API enables you to define intelligent workflows that can:
- **Orchestrate Multiple Agents**: Coordinate multiple AI agents working together as a team
- **Process Context**: Apply custom scripts to transform context before execution
- **Control Access**: Define role-based security and data access controls
- **Trigger Automatically**: Configure triggers for automatic workflow invocation
- **Manage Versions**: Support multiple versions with different configurations
- **Execute Dynamically**: Run with dynamic user identity based on role-based access
The plugin automatically generates all required ServiceNow records (~7 tables) with proper relationships and defaults.
### Default Value Suppression
The plugin follows a **"only specify what differs from defaults"** pattern. During transform (ServiceNow → Fluent), fields that match their default values are automatically omitted from the generated code. This keeps Fluent files clean and minimal. For example:
- `active: true` → omitted (default for workflow)
- `executionMode: 'copilot'` → omitted (default)
- `sysDomain: 'global'` → omitted (default)
- `enableDiscovery: false` → omitted (default for trigger config)
- `portal: ''` → omitted (empty string default)
Only specify fields when their values differ from the defaults listed in this document.
## Supported Record Types
Based on the metadata files generated by this plugin:
| Record Type | Table | Description |
| ------------------------------------ | -------------------------------------- | ----------------------------------------------------- |
| AI Agentic Workflow | `sn_aia_usecase` | Primary workflow definition |
| AI Team | `sn_aia_team` | Team configuration for the workflow |
| AI Team Member | `sn_aia_team_member` | Team member associations (agents in the team) |
| AI Version | `sn_aia_version` | Version information for the workflow |
| Use Case Config Override | `sn_aia_usecase_config_override` | Configuration overrides for the workflow |
| Trigger Configuration | `sn_aia_trigger_configuration` | Automated trigger definitions |
| Trigger Agent Usecase M2M | `sn_aia_trigger_agent_usecase_m2m` | Mapping between triggers, workflows, and use cases |
| Agent Access Role Configuration | `sys_agent_access_role_configuration` | Role-based data access controls |
## API Parameters
### Main Configuration
| Field Name | Type | Mandatory | Default | Description |
| --------------------------- | ------------------------------ | --------- | ------- | ------------------------------------------------------------------------------ |
| `$id` | `Now.ID[string]` | Yes | | Unique identifier for the workflow |
| `name` | `string` | Yes | | Display name of the AI Agentic Workflow |
| `description` | `string` | Yes | | Brief description of what the workflow does |
| `securityAcl` | `SecurityAclUserAccessConfig` | **Yes** | | **MANDATORY** - Automatically generates `sys_security_acl` and `sys_security_acl_role` records. Uses discriminated union on `type`: `'Any authenticated user'`, `'Specific role'`, or `'Public'` |
| `team` | `TeamType` | No | | Team configuration with nested `members` array |
| `versions` | `AIAVersion[]` | No | | Array of version configurations |
| `runAs` | `string` | No | | Field name for run-as user (dynamic resolution). Omit for dynamic user identity |
| `dataAccess` | `DataAccessConfigWorkflowType` | No | | Data access controls (required when `runAs` is not set) |
| `triggerConfig` | `TriggerConfigType[]` | No | | Array of trigger configurations for automatic invocation |
| `recordType` | `'custom' \| 'template' \| 'aia_internal'` | No | `'template'` | Record type |
| `executionMode` | `'copilot' \| 'autopilot'` | No | `'copilot'` | Execution mode for the workflow |
| `active` | `boolean` | No | `true` | Whether the workflow is active |
| `sysDomain` | `string` | No | `'global'` | Domain ID |
| `contextProcessingScript` | `function \| string` | No | | Script to process context - supports inline or `Now.include()` |
| `memoryScope` | `string` | No | `'global'` | Memory scope for team members |
> **Note:** The following fields are auto-generated by the plugin and should not be specified by users:
> - `internalName`: Auto-generated from `domain.scope.name`
> - Trigger `useCase`: Auto-populated with parent workflow ID
## Team Configuration (`team`)
Team configuration for organizing multiple agents. The team has a nested `members` array.
**Key Fields:**
- **`$id`** — Unique identifier (MANDATORY for teams)
- **`name`** — Team name
- **`sysDomain`** — Domain ID (default: 'global', omit if global)
- **`members`** — Array of agent sys_ids or Record references
> **Note:** Team `description` is auto-populated from the workflow's `description` field. Do not specify it.
## Team Members (`team.members`)
Simple array of agent sys_ids or Record references nested within the team configuration.
**Example:**
```typescript
import { AiAgenticWorkflow, Record } from '@servicenow/sdk/core'
const summaryAgent = Record({
table: 'sn_aia_agent',
$id: Now.ID['summary_agent'],
data: { name: 'Record Summary Agent' },
})
const searchAgent = Record({
table: 'sn_aia_agent',
$id: Now.ID['search_agent'],
data: { name: 'Search Q&A Agent' },
})
AiAgenticWorkflow({
name: 'Dynamic User Workflow',
description: 'Workflow with dynamic user identity',
securityAcl: {
$id: Now.ID['dynamic_user_workflow_acl'],
type: 'Any authenticated user',
},
dataAccess: {
roleMap: [
itilRole, // Role reference
userAdminRole, // Role reference
],
description: 'Data access for itil and user_admin roles',
},
team: {
$id: Now.ID['my_team'],
name: 'Analysis Team',
members: [summaryAgent, searchAgent],
},
})
```
**Important Notes:**
- Using the `Record` API is recommended for better readability and portability across instances
- When using sys_id strings, they must be valid GUIDs (32-character hex strings)
- Non-GUID strings will trigger validation errors
## Version Configuration (`versions`)
Version information for the workflow.
**Key Fields:**
- **`name`** — Version name
- **`number`** — Version number
- **`instructions`** — Version-specific instructions
- **`state`** — Version state: `'published'`, `'draft'`, `'committed'`, or `'withdrawn'` (default: 'draft', omit if draft)
## Run As User (`runAs`)
Specifies which user the Agentic Workflow runs as.
**Important Notes:**
- If `runAs` is set to a user sys_id, the workflow runs as that specific user
- If `runAs` is omitted, the workflow uses **dynamic user identity** and `dataAccess` becomes **mandatory**
- Dynamic user identity means the workflow inherits roles from the invoking user based on `dataAccess.roleMap` (role names) or `dataAccess.roleList` (role sys_ids)
## Security ACL Configuration (`securityAcl`)
**MANDATORY** - Automatically generates `sys_security_acl` and `sys_security_acl_role` records for this workflow. Controls who can invoke the workflow.
### Access Types
**`'Any authenticated user'`** — Any logged-in user can invoke this workflow.
**`'Specific role'`** — Only users who hold at least one of the listed roles can access. `roles` is required.
**`'Public'`** — No authentication required.
**Important Notes:**
- `securityAcl` controls **who can invoke the workflow** (access control)
- `runAs` / `dataAccess` controls **which user identity the workflow runs under** (execution context) — these are separate concerns
- The plugin automatically creates `sys_security_acl` and `sys_security_acl_role` records
- The ACL name is derived from the workflow's internal name: `{domain}.{scope}.{workflowName}`
## Data Access Controls (`dataAccess`)
**MANDATORY when `runAs` is omitted** - Defines which roles the workflow can inherit from the invoking user during execution.
> **Note:** The `action` field is automatically set to `'limit_to_roles'` by the plugin. Fields like `agent`, `agentTable`, `name`, and `sysDomain` are also auto-populated. The entire `dataAccess` object is omitted from transform output when no roles are specified.
**Example**
```typescript
import { AiAgenticWorkflow, Role } from '@servicenow/sdk/core'
const itilRole = Role({
$id: Now.ID['itil_role'],
name: 'x_app.itil',
description: 'ITIL role for incident management',
})
const userAdminRole = Role({
$id: Now.ID['user_admin_role'],
name: 'x_app.user_admin',
description: 'User administration role',
})
AiAgenticWorkflow({
name: 'Dynamic User Workflow',
description: 'Workflow with dynamic user identity',
securityAcl: {
$id: Now.ID['dynamic_user_workflow_acl'],
type: 'Any authenticated user',
},
// runAs is omitted — dynamic user identity
dataAccess: {
roleMap: ['itil', 'user_admin'], // OR roleList: ['282bf1fac6112285017366cb5f867469', 'b05926fa0a0a0aa7000130023e0bde98'],
description: 'Data access for itil and user_admin roles',
},
})
```
**When to Use:**
- **Use `dataAccess`** when you want the workflow to run with dynamic user identity (omit `runAs`)
- **Omit `dataAccess`** when `runAs` is set to a specific user sys_id
## Trigger Configuration (`triggerConfig`)
Configure automatic workflow invocation based on record changes or schedules.
### Trigger Types
| Trigger Type | Description |
|--------------|-------------|
| `record_create` | Triggers when a new record is created |
| `record_create_or_update` | Triggers when a record is created or updated |
| `record_update` | Triggers when an existing record is updated |
| `email` | Triggers based on email events |
| `scheduled` | Triggers at scheduled intervals |
| `daily` | Triggers daily at a specified time |
| `weekly` | Triggers weekly on a specified day |
| `monthly` | Triggers monthly on a specified day |
| `ui_action` | Triggers from a UI action |
## Complete Examples
### Example 1: Workflow with Data Access (from `AiAgenticWorkflow.now.ts`)
This example matches the actual transform output — only non-default fields are specified.
```typescript
import { AiAgenticWorkflow } from '@servicenow/sdk/core'
export const exampleAgenticWorkflow = AiAgenticWorkflow({
$id: Now.ID['employee_record_summarization_workflow'],
name: 'Employee Record Summarization',
description: 'Analyzes employee records and generates summaries',
recordType: 'custom',
securityAcl: {
$id: Now.ID['employee_summarization_workflow_acl'],
type: 'Any authenticated user',
},
team: {
$id: Now.ID['employee_summarization_team'],
name: 'Employee Summarization Team',
members: [
'274b465a7d5f42e581664209557b2b18', // Record Summary Agent sys_id
'2dfb22af3351f2101ea99d273e5c7ba3', // Search Q&A Agent sys_id
],
},
versions: [
{
name: 'V1',
number: 1,
state: 'published',
instructions: 'Fetch employee record, analyze key fields, and generate summary',
},
{
name: 'V2',
number: 2,
instructions: 'Enhanced version with validation and department analysis',
},
],
triggerConfig: [
// Record based trigger
{
name: 'Employee Record Created',
targetTable: 'x_snc_cust_app_age_employee',
triggerFlowDefinitionType: 'record_create',
triggerCondition: 'first_nameISNOTEMPTY',
objectiveTemplate: 'Summarize employee record ${sys_id}',
runAsScript: Now.include('./run-as-script.js'),
showNotifications: true,
channel: 'Now Assist Panel',
},
// Schedule based trigger
{
name: 'Weekly Employee Review',
active: true,
targetTable: 'x_snc_cust_app_age_employee',
triggerFlowDefinitionType: 'scheduled',
objectiveTemplate: 'Review all employee records for the week',
schedule: {
runDayOfWeek: 2, // Monday
runDayOfMonth: 2,
starting: '1970-01-01 09:00:00', // 9:00 AM
time: '1970-01-01 09:00:00', // 9:00 AM
},
channel: 'Now Assist Panel',
},
],
dataAccess: {
roleMap: ['admin'],
description: 'Restrict workflow access to admin role',
},
})
```
### Example 2: Workflow with Dynamic User Identity (from `DynamicUserWorkflow.now.ts`)
```typescript
import { AiAgenticWorkflow } from '@servicenow/sdk/core'
export const dynamicUserWorkflow = AiAgenticWorkflow({
$id: Now.ID['incident_management_workflow'],
name: 'Incident Management Workflow',
description:
'This workflow analyzes incident records, identifies patterns, and provides resolution recommendations',
recordType: 'custom',
runAs: '<sys_user_id>',
team: {
$id: Now.ID['incident_workflow_team'],
name: 'Incident Management Team',
members: [],
},
versions: [
{
name: 'V1',
number: 1,
state: 'published',
instructions:
'Analyze incident ${number} with priority ${priority}. Identify potential root causes and suggest resolution steps based on similar past incidents.',
},
],
// Security ACL — controls who can invoke this workflow
securityAcl: {
$id: Now.ID['incident_management_workflow_acl'],
type: 'Any authenticated user',
},
})
```
## Best Practices
### 1. Security Configuration
- **Always set `securityAcl`** — it is mandatory and auto-generates the `sys_security_acl` record
- **`securityAcl.type`** controls who can invoke the workflow: `'Any authenticated user'`, `'Specific role'`, or `'Public'`
- **`securityAcl.$id`** is required — it identifies the generated ACL record
- **`runAs`** is separate from `securityAcl`: it is a field name used for dynamic user resolution (not who can invoke the workflow)
- **Use `dataAccess.roleMap`** (role names) or **`dataAccess.roleList`** (role sys_ids) when `runAs` is omitted (dynamic user identity)
### 2. Team Configuration
- **Always provide `team.$id`** when creating a team (mandatory for teams)
- **Use meaningful team names** that describe the purpose
- **Use simple array of strings** for `team.members` - just agent sys_ids or Record references
- **Do not set team `description`** - it is auto-populated from the workflow's description
- **No need to specify `sysDomain`** - it defaults to `'global'`
- **No need to specify `memoryScope`** - it defaults to `'global'`
### 3. Version Management
- **Omit `state`** for draft versions (default is `'draft'`)
- **Use `state: 'published'`** for production
- **Increment `number`** for new versions (e.g., 1, 2, 3)
- **Use meaningful `name`** (e.g., "V1", "V2")
### 4. Trigger Configuration
- **Only specify non-default fields** - defaults are automatically suppressed during transform
- **Use `'Now Assist Panel'`** for channel - auto-mapped to sys_id
- **Use specific `triggerCondition`** to avoid unnecessary invocations
- **Include `objectiveTemplate`** in trigger config for the objective message
- **Validate `starting` field format**: YYYY-MM-DD HH:MM:SS
- **Trigger mappings are auto-generated** - no need to specify them manually
- **Default values to omit**: `active: false`, `enableDiscovery: false`, `showNotifications: false`, `description: ''`, `portal: ''`, `profile: ''`, `runAs: ''`, `runAsUser: ''`, `businessRule: ''`, `domain: 'global'`
### 5. Script Fields
- **Use module imports** for external script files (or `Now.include()` for legacy scripts)
- **Keep scripts concise** and focused
- **Handle errors gracefully** in scripts
- **Return proper values** from context processing scripts
- **CDATA tags are handled automatically** - don't add them manually
### 6. Schedule Configuration
- **Use nested `schedule` object** for scheduled triggers
- **Set `triggerFlowDefinitionType`** to `'scheduled'`, `'daily'`, `'weekly'`, or `'monthly'`
- **`runDayOfWeek`**: 1=Sunday, 2=Monday, ..., 7=Saturday
- **`runDayOfMonth`**: 1-31 for monthly schedules
- **Date/time format**: YYYY-MM-DD HH:MM:SS (e.g., `'1970-01-01 09:00:00'`)
- **Duration format for `repeatInterval`**: YYYY-MM-DD HH:MM:SS (e.g., `'1970-01-05 12:00:00'` for 5 days)
- **Omit empty schedule fields** — only specify fields with actual values
### 7. Record References
- **All `String | Record<table>` fields** support both sys_id strings and Record references
- **Use Record references** for better portability across instances
- **Supported fields**: `runAs`, `runAsUser`, `channel`, `profile`, `portal`, `businessRule`
- **`businessRule` also accepts** Fluent `BusinessRule()` objects defined in the same project
- **Channel supports names**: Use `'Now Assist Panel'` directly (auto-mapped to sys_id)
## Common Patterns
### Pattern 1: Workflow with Triggers
```typescript
AiAgenticWorkflow({
$id: Now.ID['triggered_workflow'],
name: 'Triggered Workflow',
description: 'Workflow with automatic triggers',
securityAcl: { $id: Now.ID['triggered_workflow_acl'], type: 'Any authenticated user' },
runAs: 'user_sys_id',
team: {
$id: Now.ID['triggered_team'],
members: ['agent_sys_id_1'],
},
triggerConfig: [
{
name: 'Record Trigger',
targetTable: 'incident',
triggerFlowDefinitionType: 'record_create',
triggerCondition: 'priority=1',
objectiveTemplate: 'Process incident ${number}',
channel: 'Now Assist Panel',
},
],
})
```
### Pattern 2: Workflow with Scheduled Triggers
```typescript
AiAgenticWorkflow({
name: 'Scheduled Review Workflow',
description: 'Workflow that runs on a schedule',
securityAcl: { $id: Now.ID['scheduled_workflow_acl'], type: 'Any authenticated user' },
runAs: 'user_sys_id',
team: {
$id: Now.ID['scheduled_team'],
members: ['6816f79cc0a8016401c5a33be04be441'],
},
triggerConfig: [
{
name: 'Weekly Review',
targetTable: 'incident',
triggerFlowDefinitionType: 'scheduled',
objectiveTemplate: 'Review all incidents for the week',
channel: 'Now Assist Panel',
schedule: {
runDayOfWeek: 2, // Monday
time: '1970-01-01 09:00:00', // 9:00 AM
triggerStrategy: 'every',
},
},
{
name: 'Monthly Report',
targetTable: 'incident',
triggerFlowDefinitionType: 'scheduled',
objectiveTemplate: 'Generate monthly incident report',
channel: 'Now Assist Panel',
schedule: {
runDayOfMonth: 1, // First day of month
time: '1970-01-01 08:00:00', // 8:00 AM
repeatInterval: '1970-01-05 12:00:00',
},
},
],
})
```
## Troubleshooting
### Team Not Created
**Problem:** Team configuration provided but team record not generated.
**Solution:**
- Ensure `team.$id` is provided (mandatory for teams)
- Use `Now.ID['team_name']` format for the ID
- Check that `team.members` array is provided (nested within team object)
### Data Access Validation Error
**Problem:** Error: "dataAccess must have at least one of roleList or roleMap non-empty when runAs is empty"
**Solution:**
- Either set `runAs` to a user sys_id
- Or provide `dataAccess.roleMap` (role names) or `dataAccess.roleList` (role sys_ids) with at least one entry
### Trigger Not Firing
**Problem:** Trigger configured but workflow not invoked automatically.
**Solution:**
- Verify `triggerConfig.active` is `true`
- Check `triggerCondition` matches your records
- Ensure `targetTable` is correct
- Verify `objectiveTemplate` is set in trigger config
- Validate `starting` field format: YYYY-MM-DD HH:MM:SS
### Script Fields Not Working
**Problem:** Scripts showing as `[object Object]` or not executing.
**Solution:**
- Use string format for scripts: `` `(function() { ... })()` ``
- Or use module imports for external files (preferred), or `Now.include('./script-file.js')` for legacy scripts
- Ensure CDATA tags are NOT manually added (handled automatically)
- Check script parameter names match expected values
### Workflow Not Using Coalesce
**Problem:** Workflow `$id` is optional but workflow not found.
**Solution:**
- Workflows use coalesce on `name` field - ensure unique names
- `$id` is optional for workflows (unlike teams which require it)
- If you need explicit IDs, you can still provide `$id`
## Table Schema
### sn_aia_usecase
| Column Name | Type | Mandatory | Default Value | Description |
|---------------------------|------------------|-----------|---------------|-------------|
| advanced_mode | True/False | FALSE | false | Whether advanced mode is enabled |
| applicability_script | Script | FALSE | javascript:new sn_aia.AgentExecutionUtil().getApplicabilityDefaultScript(); | Script that determines when workflow is applicable |
| base_plan | Translated Text | FALSE | | Base plan instructions |
| condition | Conditions | FALSE | | Condition table reference |
| context_processing_script | Script | FALSE | javascript:sn_aia.agents.USECASE_CONTEXT_PROCESSING_SCRIPT_TEMPLATE; | Script for processing context |
| description | Translated Text | TRUE | | Description of the workflow |
| execution_mode | Choice | FALSE | copilot | Execution mode (copilot/autopilot) |
| internal_name | String | FALSE | | Internal name (domain.scope.name) |
| name | Translated Text | TRUE | | Display name of the workflow |
| parent | Reference | FALSE | | Reference to parent use case |
| record_type | Choice | FALSE | custom | Record type (template/custom etc.) |
| source_id | Reference | FALSE | | Reference to source workflow |
| strategy | Reference | FALSE | | Reference to workflow strategy |
| sys_domain | Domain ID | FALSE | | Domain identifier |
| team | Reference | FALSE | | Reference to team |
### sn_aia_team
| Column Name | Type | Mandatory | Default Value | Description |
|-----------------|-----------------|-----------|---------------|-------------|
| description | Translated Text | FALSE | | Description of the team |
| name | Translated Text | FALSE | | Name of the team |
| sys_domain | Domain ID | FALSE | | Domain identifier |
### sn_aia_team_member
| Column Name | Type | Mandatory | Default Value | Description |
|-----------------|-------------|-----------|---------------|-------------|
| agent | Reference | FALSE | | Reference to the AI Agent |
| memory_scope | Choice | FALSE | global | Memory scope for the agent |
| sys_domain | Domain ID | FALSE | | Domain identifier |
| team | Reference | FALSE | | Reference to the team |
### sn_aia_version
| Column Name | Type | Mandatory | Default Value | Description |
|-----------------|-----------------|-----------|---------------|-------------|
| condition | Condition String| FALSE | | Condition for version activation |
| instructions | Translated Text | FALSE | | Version-specific instructions |
| state | Choice | FALSE | draft | State of the version (draft/published etc.) |
| sys_domain | Domain ID | FALSE | global | Domain identifier |
| sys_overrides | Reference | FALSE | | Reference to override version |
| target_id | Document ID | TRUE | | Reference to target record |
| target_table | Table Name | TRUE | | Name of the target table |
| version_name | Translated Text | TRUE | | Display name of the version |
| version_number | Integer | FALSE | | Version number |
### sn_aia_usecase_config_override
| Column Name | Type | Mandatory | Default Value | Description |
|----------------------|-------------|-----------|---------------|-------------|
| active | True/False | FALSE | | Whether the configuration is active |
| run_as_user | Reference | FALSE | | User to run the workflow as |
| sys_domain | Domain ID | FALSE | | Domain identifier |
| sys_overrides | Reference | FALSE | | Reference to override configuration |
| usecase_configuration| Reference | TRUE | | Reference to the workflow |
### sys_agent_access_role_configuration
| Column Name | Type | Mandatory | Default Value | Description |
|----------------------|-------------|-----------|---------------|-------------|
| action | Choice | TRUE | limit_to_roles| Action to perform for access control |
| agent | Document ID | TRUE | | Reference to the workflow |
| agent_table | Table Name | TRUE | sn_aia_usecase| Table name of the workflow |
| description | String | FALSE | | Description of the access configuration |
| name | String | TRUE | | Name of the access configuration |
| role_list | List | FALSE | | List of roles that have access |
| sys_domain | Domain ID | FALSE | global | Domain identifier |
### sn_aia_trigger_configuration
| Column Name | Type | Mandatory | Default Value | Description |
|---------------------|----------------|-----------|---------------|-------------|
| active | True/False | FALSE | false | Whether the trigger is active |
| business_rule | Reference | FALSE | | Reference to business rule |
| channel | Reference | TRUE | | Channel for the trigger |
| condition | Conditions | TRUE | | Condition for triggering |
| description | String | FALSE | | Description of the trigger |
| enable_discovery | True/False | FALSE | false | Whether to enable discovery |
| internal_name | String | FALSE | | Internal name of the trigger |
| name | String | TRUE | | Name of the trigger |
| notification_script | Reference | FALSE | | Reference to notification script |
| objective_template | Email Script | TRUE | | Template for objective message |
| portal | Reference | FALSE | | Reference to portal |
| profile | Reference | FALSE | | Reference to profile |
| run_as | Field Name | FALSE | | Field name for run-as user |
| run_as_script | Script | FALSE | | Script to determine run-as user |
| run_as_user | Reference | FALSE | | Reference to run-as user |
| run_dayofmonth | Integer | FALSE | | Day of month to run |
| run_dayofweek | Day of Week | FALSE | | Day of week to run (1=Sunday, 7=Saturday) |
| run_period | Duration | FALSE | | Run period/interval |
| run_start | Basic DateTime | FALSE | | Start date/time (YYYY-MM-DD HH:MM:SS) |
| run_time | Basic Time | FALSE | | Time to run |
| show_notifications | True/False | FALSE | false | Whether to show notifications |
| sys_domain | Domain ID | FALSE | global | Domain identifier |
| sys_overrides | Reference | FALSE | | Reference to override trigger |
| target_table | Table Name | TRUE | | Table to monitor for triggers |
| trigger_flow | Reference | FALSE | | Reference to flow |
| trigger_flow_definition_type | Choice | FALSE | | Type of flow definition |
| trigger_strategy | Choice | FALSE | | Strategy for triggering |
| usecase | Reference | FALSE | | Reference to use case |
| usecase_discovery | True/False | FALSE | false | Whether to enable usecase discovery |
### sn_aia_trigger_agent_usecase_m2m
| Column Name | Type | Mandatory | Default Value | Description |
|----------------------|---------------|-----------|---------------|-------------|
| active | True/False | FALSE | true | Whether the mapping is active |
| objective_template | Email Script | FALSE | | Template for objective message |
| related_resource_record| Document ID | TRUE | | Reference to the related record (workflow) |
| related_resource_table| Table Name | TRUE | sn_aia_usecase| Name of the related table |
| sys_domain | Domain ID | FALSE | global | Domain identifier |
| sys_overrides | Reference | FALSE | | Reference to override mapping |
| trigger_configuration| Reference | TRUE | | Reference to trigger configuration |