What This Table Is

The sys_hub_action_type_base table stores the master catalog of Flow Designer actions — reusable components that flows can execute to perform specific tasks. Each record defines an action's interface, inputs, outputs, and execution logic. This includes both ServiceNow's out-of-box actions (Create Record, Send Email, Wait for Condition) and custom actions built by developers.

This table belongs to Flow Designer and serves as the foundation for the entire action ecosystem. When you drag an action into a flow, Flow Designer reads this table to determine what inputs the action needs, what outputs it provides, and how to execute it. The table supports Flow Designer's visual interface by storing action categories, descriptions, and UI hints that appear in the action picker.

The table extends sys_metadata and has several child tables including sys_hub_action_type_script for script actions and sys_hub_action_type_subflow for subflow actions. Each child table stores type-specific configuration while inheriting the base action definition structure. Action instances (actual executions within flows) are stored separately in sys_hub_action_instance.

In a large enterprise, expect 200-500 action records — mostly out-of-box actions with 50-100 custom actions. Performance is generally good since this table is read-heavy (actions are defined once, executed many times) and relatively small. However, complex action input/output definitions stored in JSON fields can impact query performance when filtering on action capabilities.

When You'll Script Against This Table

You'll primarily script against this table in Flow Designer administrative contexts — building custom action pickers, validating action configurations, or creating dynamic flow builders. Most commonly in Script Includes that support Flow Designer UI components, Business Rules that govern action publishing, and background scripts for action migration or cleanup. Less commonly in client scripts for custom Flow Designer interfaces.

Access requires the flow_designer role for most operations. Custom action creation requires action_designer. Records are scoped, so cross-scope action access follows standard application scoping rules. Published actions become available globally, while draft actions remain scope-restricted.

Common scripting patterns:

  • Query published actions by category to build custom action catalogs
  • Validate action input/output schemas before flow execution
  • Find actions that reference specific tables or fields for impact analysis
  • Bulk update action metadata during upgrades or organizational changes
  • Generate action usage reports by cross-referencing with flow instances
  • Programmatically create or clone custom actions with standardized patterns
  • Synchronize action definitions across instances during deployment

Table Gotchas

⚠️

The `state` field uses non-obvious values: 'published' for active actions, 'draft' for development, 'retired' for deprecated. Don't assume 'active' exists.

  • The inputs and outputs fields contain complex JSON schemas that require parsing, not simple string matching
⚠️

Action types have inheritance chains. A script action record exists in both this base table AND `sys_hub_action_type_script`. Query the specific child table for type-specific fields.

  • The sys_package reference determines action scope and upgrade behavior — custom actions without proper package assignment can disappear during upgrades
  • Performance trap: avoid CONTAINS queries on JSON fields — use specific field matches or GlideRecord with JavaScript filtering instead
⚠️

The `annotation` field stores action descriptions and help text in XML format, not plain text. Parse it properly or use the Flow Designer APIs instead of direct field access.

  • Action versioning is implicit through the update process — there's no version field, so track changes through sys_updated_on and audit records
Free Newsletter

Enjoying this? Get one deep-dive per week.

Join 1,000+ ServiceNow pros — scripts, GlideRecord patterns, Flow Designer techniques, and career moves. Free.

No spam · Unsubscribe anytime

This table extends sys_metadata, inheriting standard metadata fields like sys_package, sys_scope, and sys_policy. The child tables sys_hub_action_type_script and sys_hub_action_type_subflow store action-type-specific configuration while pointing back to base action definitions here.

You'll frequently join with sys_hub_action_instance to find where actions are used in flows, and sys_hub_flow_context to understand execution contexts. The sys_hub_category table provides action categorization for the Flow Designer interface. When building comprehensive flow analysis, you'll often query sys_hub_flow alongside this table to understand which flows can execute which actions.

For action execution analysis, sys_execution_tracker records provide runtime performance data linked back to action definitions. The sys_log table captures action execution errors and debug information, making the combination essential for troubleshooting custom actions in production environments.