AgentSkillsCN

servicenow-flow-designer

在 Flow Designer 与 IntegrationHub 工作流中执行自定义脚本与逻辑。该技能涵盖 FlowAPI 方法、流程执行,以及子流程编排。当您需要构建工作流自动化、通过服务器端脚本以编程方式执行流程,或根据条件触发子流程时,可使用此技能。

SKILL.md
--- frontmatter
name: servicenow-flow-designer
description: Execute custom scripts and logic within Flow Designer and IntegrationHub workflows. Covers FlowAPI methods, flow execution, and subprocess orchestration. Use when building workflow automations, executing flows programmatically from server scripts, or triggering subflows conditionally.

Flow Designer Scripting

Quick start

Execute flows programmatically:

javascript
var inputs = {};
inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c';

var result = sn_fd.FlowAPI.getRunner()
    .flow('global.my_flow')
    .inForeground()
    .withInputs(inputs)
    .run();

var contextId = result.getContextId();
var outputs = result.getOutputs();

Execute actions:

javascript
var result = sn_fd.FlowAPI.getRunner()
    .action('global.markapproved')
    .inForeground()
    .inDomain('TOP/ACME')
    .withInputs(inputs)
    .run();

Execute subflows:

javascript
var result = sn_fd.FlowAPI.getRunner()
    .subflow('my_app.process_request')
    .withInputs(inputs)
    .run();

var success = result.wasSuccessful();

Builder pattern

  1. FlowAPI: Creates a getRunner() builder
  2. ScriptableFlowRunner: Configure flow/action/subflow:
    • flow(), action(), subflow(), or datastream()
    • withInputs() - Pass parameters
    • inForeground() or inBackground()
    • inDomain() - For domain-separated instances
  3. ScriptableFlowRunnerResult: Inspect results:
    • getContextId(), getOutputs(), getDomainId()
    • wasSuccessful(), getDate()

Best practices

  • Use foreground execution for immediate results
  • Use background for long-running flows
  • Always check wasSuccessful() before accessing outputs
  • Domain execution runs as System User in that domain
  • Avoid async BR calls; use scheduled jobs instead

Key APIs

APIPurpose
FlowAPIEntry point; manages runner lifecycle
ScriptableFlowRunnerBuilder for flow execution
ScriptableFlowRunnerResultResult container and output handler

Reference

For complete API documentation and advanced patterns, see BEST_PRACTICES.md