# ServiceNow SDK > TypeScript SDK for developing ServiceNow applications in source code using ServiceNow Fluent — a domain-specific language for creating application metadata as code. Import functions from `@servicenow/sdk/core` to define platform records (ACLs, Business Rules, etc.) that are deployed to ServiceNow instances. ## Overview - [cli](https://servicenow.github.io/sdk/cli?embed=true): Reference documentation for every `now-sdk` command - [intro](https://servicenow.github.io/sdk/intro?embed=true): The ServiceNow SDK lets you develop applications in source code using **ServiceNow Fluent** — a domain-specific language for creating application metadata as code. ## Guides - [alias-guide](https://servicenow.github.io/sdk/guides/alias-guide?embed=true): Guide for creating ServiceNow Connection & Credential Aliases (`sys_alias`) using the Fluent API. Use when the user mentions connecting to external systems, storing or managing credentials, integrating with external databases, managing connections across multiple environments, authentication configuration, or shared integration settings with parent-child inheritance. Do NOT use system properties or custom tables to store connection details or credentials — use aliases instead. - [alias-template-guide](https://servicenow.github.io/sdk/guides/alias-template-guide?embed=true): Guide for creating Connection & Credential Alias Templates (`sys_alias_templates`) using the - [application-menu-guide](https://servicenow.github.io/sdk/guides/application-menu-guide?embed=true): Guide for creating ServiceNow Application Menus and Modules using the Fluent API. Application menus define top-level sections in the ServiceNow navigator sidebar, and modules define the clickable items within them. - [assignment-rule-guide](https://servicenow.github.io/sdk/guides/assignment-rule-guide?embed=true): Guide for creating ServiceNow Assignment Rules using the Fluent API. Assignment rules automatically populate empty `assignment_group` or `assigned_to` fields on task or task-inherited tables after a record is saved to the database. **Assignment rules do not run if these fields already have values.** They execute after the insert or update operation completes. - [atf-guide](https://servicenow.github.io/sdk/guides/atf-guide?embed=true): Create ServiceNow Automated Test Framework (ATF) test cases using Fluent APIs across 13 ATF categories: server, form, REST, catalog, email, app navigator, reporting, responsive dashboard, uiTestScript (custom UI), list and related list operations, and Service Portal variants (form_SP, catalog_SP). This guide covers test strategy, category selection, step configuration, and the full API surface for each ATF namespace. - [atf-ui-test-script-guide](https://servicenow.github.io/sdk/guides/atf-ui-test-script-guide?embed=true): Author ATF tests for **custom UI components** using `atf.uiTestScript.runTest()` and the TestingLibrary API. Use this when a UI cannot be tested through the standard `atf.form.*` or `atf.catalog.*` steps — Angular/React widgets embedded in workspaces, custom SPAs or UI-page apps, and `now-*` web components. The test body runs in the client test runner with all API globals injected, so no imports are needed inside the script. - [building-ai-agents-advanced-guide](https://servicenow.github.io/sdk/guides/building-ai-agents-advanced-guide?embed=true): Advanced patterns for AI Agent and Agentic Workflow development: instructions authoring, authentication and ACL configuration, validation rules, error recovery, deployment procedures, and anti-patterns to avoid. - [building-ai-agents-guide](https://servicenow.github.io/sdk/guides/building-ai-agents-guide?embed=true): Build and configure ServiceNow AI Agents and AI Agentic Workflows using the Fluent SDK. AI Agents perform tasks with tools (CRUD, script, OOB, reference-based), while AI Agentic Workflows orchestrate multiple agents as a team. This guide covers agent structure, authentication, triggers, ACL deployment, and workflow configuration. Requires SDK 4.4.0 or higher. - [building-ai-agents-tools-guide](https://servicenow.github.io/sdk/guides/building-ai-agents-tools-guide?embed=true): Configure and select tools for ServiceNow AI Agents and AI Agentic Workflows using the Fluent SDK. Covers tool types (CRUD, script, OOB, reference-based, RAG), tool discovery, execution mode, output transformation, and multi-tool composition patterns. - [business-rule-guide](https://servicenow.github.io/sdk/guides/business-rule-guide?embed=true): Guide for creating ServiceNow Business Rules using the Fluent API. Business rules are server-side scripts that run automatically when records are queried, updated, inserted, or deleted. - [choiceset-guide](https://servicenow.github.io/sdk/guides/choiceset-guide?embed=true): Guide for adding choices to table fields using the `ChoiceSet` API. Use this when your app needs to extend choices on a field it does not own — typically a globally-defined field inherited by an app-scoped table that extends a global table. - [client-script-guide](https://servicenow.github.io/sdk/guides/client-script-guide?embed=true): Guide for creating ServiceNow Client Scripts using the Fluent API. Client scripts run JavaScript in the browser on form events to configure forms, fields, and field values while the user is interacting with them. - [client-side-api-guide](https://servicenow.github.io/sdk/guides/client-side-api-guide?embed=true): Reference for ServiceNow client-side APIs available in the browser. These APIs are shared across all Fluent APIs that execute client-side scripts — Client Scripts, UI Policy scripts (`scriptTrue`/`scriptFalse`), UI Actions (client-side), Catalog Client Scripts, and Catalog UI Policies. - [creating-workspaces-guide](https://servicenow.github.io/sdk/guides/creating-workspaces-guide?embed=true): Guide for creating ServiceNow Workspaces -- complete out-of-the-box solutions for managing business entities through standardized CRUD workflows. A workspace automatically generates a dashboard page, list management views, and detailed forms following ServiceNow's standard UX patterns. - [cross-scope-privilege-guide](https://servicenow.github.io/sdk/guides/cross-scope-privilege-guide?embed=true): Guide for creating ServiceNow Cross-Scope Privileges using the Fluent API. Cross-scope privileges declare that your application needs to access resources (tables, script includes, scriptable objects) owned by a different application scope. - [data-lookup-guide](https://servicenow.github.io/sdk/guides/data-lookup-guide?embed=true): Guide for creating ServiceNow Data Lookup definitions (`dl_definition`) using the Fluent API. A Data Lookup connects a source table to a configurable matcher table and defines which source fields are used to find a matching row and which values are copied back to the source record. In simple terms: “when field A has value X and field B has value Y, set field C to value Z.”. Use Data Lookup when a user wants to auto-fill, auto-populate, or automatically set one or more fields on a record based on a combination of other field values — for example, automatically setting Priority from Impact and Urgency — and the mapping should be admin-maintainable as configuration records without scripting. Data Lookup covers all three triggers natively: form field change, record insert, and record update. If you find yourself reaching for a Business Rule (for insert/update) plus a Client Script (for onChange) to implement the same deterministic field-population logic, use Data Lookup instead. - [data-policy-guide](https://servicenow.github.io/sdk/guides/data-policy-guide?embed=true): Guide for creating ServiceNow Data Policies (`sys_data_policy2`) using the Fluent API. Data policies enforce field mandatory and read-only rules server-side across all interfaces — forms, imports, web services, and APIs — and cannot be bypassed, unlike client-side UI Policies. - [developing-apps-guide](https://servicenow.github.io/sdk/guides/developing-apps-guide?embed=true): Guide for ServiceNow app development using the Now SDK: project setup, fluent authoring, build/deploy workflow, and CLI reference. Start here when working on a new ServiceNow application or with the Now SDK before consulting artifact-specific guides. - [email-notification-guide](https://servicenow.github.io/sdk/guides/email-notification-guide?embed=true): Create ServiceNow Email Notifications (`sysevent_email_action`) to send automated emails based on database operations, custom events, or manual triggers. This guide covers trigger types, content formats, recipients, digest emails (batched notifications), templates, styles, scripts, access restrictions, and notification categories. Supported in SDK 4.3.0 or higher. - [encoded-query-guide](https://servicenow.github.io/sdk/guides/encoded-query-guide?embed=true): How to build well-formed ServiceNow encoded query strings — the compact field-operator-value syntax used by most `condition` and `filter` fields across the Fluent APIs (Business Rules, ACLs, SLAs, Data Policies, UI Policies, Email Notifications, Flow triggers, and more) and by `now-sdk query --query`. - [external-services-guide](https://servicenow.github.io/sdk/guides/external-services-guide?embed=true): Guide for configuring external LDAP directory connections in ServiceNow, including LDAP Server Configs (`ldap_server_config`) and LDAP Server URLs (`ldap_server_url`) for failover and load balancing. Use when the user mentions LDAP server configuration, directory servers, Active Directory, OpenLDAP, LDAP failover, or LDAP SSL. For LDAP data imports (staging tables, data sources, transform maps), see the `importing-data-guide` topic instead. Supported in SDK 4.2.0+. - [field-styles-guide](https://servicenow.github.io/sdk/guides/field-styles-guide?embed=true): Guide for creating ServiceNow Field Styles using the Record API. Field styles apply CSS styling to fields in list and form views based on field values or scripted conditions. - [fluent-overview](https://servicenow.github.io/sdk/guides/fluent-overview?embed=true): ServiceNow Fluent is a domain-specific language (DSL) based on TypeScript for defining the metadata files [sys_metadata] that make up applications. It includes APIs for tables, roles, ACLs, business rules, Automated Test Framework tests, and more. - [form-formatters-guide](https://servicenow.github.io/sdk/guides/form-formatters-guide?embed=true): Guide for adding formatters to ServiceNow forms using the Form API. Formatters display special UI components (activity streams, process flows, knowledge panels, checklist, parent breadcrumb) that are not regular table fields. - [form-layout-guide](https://servicenow.github.io/sdk/guides/form-layout-guide?embed=true): Guide for creating ServiceNow form layouts using the Form API. Forms define which fields, annotations, formatters, and embedded lists appear on a record's form view and how they are arranged. - [graphql-api-guide](https://servicenow.github.io/sdk/guides/graphql-api-guide?embed=true): Guide for creating ServiceNow scripted GraphQL APIs using the Fluent API. A GraphQL API pairs an SDL schema with resolvers that fetch field data, secured by a schema-gate ACL for the whole API and field-level path-based ACLs enforced at query time. - [importing-data-guide](https://servicenow.github.io/sdk/guides/importing-data-guide?embed=true): Guide for importing external data into ServiceNow using the Fluent API. Covers Data Sources, staging tables, Import Sets (transform maps), and the three-component pattern required for every data import. - [inbound-email-action-guide](https://servicenow.github.io/sdk/guides/inbound-email-action-guide?embed=true): Guide for creating ServiceNow Inbound Email Actions using the Fluent API. Inbound email actions define how ServiceNow processes incoming emails — creating records, updating existing records, sending auto-replies, or running custom logic when emails are received. - [instance-scan-guide](https://servicenow.github.io/sdk/guides/instance-scan-guide?embed=true): Create ServiceNow Instance Scan checks using Fluent API. Covers all scan check types: `TableCheck`, `LinterCheck`, `ColumnTypeCheck`, and `ScriptOnlyCheck`. Instance scan checks evaluate an instance for upgradability, performance, security, manageability, and user experience issues. Supported in SDK 4.0.0 or higher. - [javascript-compatibility-guide](https://servicenow.github.io/sdk/guides/javascript-compatibility-guide?embed=true): Reference for ECMAScript features supported on the ServiceNow server-side JavaScript engine. For the full per-feature matrix, see the official [JavaScript engine feature support](https://www.servicenow.com/docs/r/scripts/javascript-engine-feature-support.html) documentation. - [knowledge-base-access-guide](https://servicenow.github.io/sdk/guides/knowledge-base-access-guide?embed=true): This guide explains how to configure **who can read** and **who can contribute** to a ServiceNow Knowledge Base using Fluent. It covers the four M2M tables that link knowledge bases to user criteria, with examples for granting, denying, and replacing access entries. - [list-control-guide](https://servicenow.github.io/sdk/guides/list-control-guide?embed=true): Guide for creating ServiceNow List Controls using the Record API. List controls configure the visibility and behavior of list UI elements — buttons (New, Edit), filters, links, inline editing, and pagination — based on roles or conditions. - [list-guide](https://servicenow.github.io/sdk/guides/list-guide?embed=true): Guide for creating ServiceNow list layouts using the `List` API. A list defines which columns appear when users view table records in list/table view. Each `List()` call creates a `sys_ui_list` record and its associated `sys_ui_list_element` records on the target instance. - [module-guide](https://servicenow.github.io/sdk/guides/module-guide?embed=true): JavaScript modules are the **modern, preferred approach** for all server-side code in Fluent projects. Modules support `import`/`export`, provide access to typed Glide APIs via `@servicenow/glide`, enable code reuse across your application, and integrate with third-party npm libraries. - [nowassist-skills-advanced-guide](https://servicenow.github.io/sdk/guides/nowassist-skills-advanced-guide?embed=true): Advanced configuration for AI Skills: provider and model discovery, security controls, deployment options, skill URL construction, validation rules, and troubleshooting. Read the companion [AI Skills Guide](nowassist-skills-guide.md) for core concepts (inputs, tools, prompts, complete examples). - [nowassist-skills-guide](https://servicenow.github.io/sdk/guides/nowassist-skills-guide?embed=true): Create and configure AI Skills using the `NowAssistSkillConfig` API in the Fluent SDK. Skills use configured prompts to generate AI responses from an LLM, optionally enriched by inputs and tools (script, inline script, web search, subflows, flow actions, decision branches). This guide covers skill structure, inputs, prompts, deployment, and naming conventions. Requires SDK 4.6.0 or higher. - [nowassist-skills-tools-guide](https://servicenow.github.io/sdk/guides/nowassist-skills-tools-guide?embed=true): Complete reference for configuring tools in NowAssist / GenAI Skills. Tools fetch or manipulate data before prompt processing — use them when a skill needs data beyond user inputs, such as querying records, searching the web, running business logic, or integrating with flows. - [npm-libraries-guide](https://servicenow.github.io/sdk/guides/npm-libraries-guide?embed=true): Reference of npm libraries tested in the Australia release of the ServiceNow platform. For the authoritative list, see the official [Third-party library support](https://www.servicenow.com/docs/r/application-development/third-party-library-support.html) documentation. Libraries are categorized into three tiers: supported, limited support, and unsupported. - [override-column-guide](https://servicenow.github.io/sdk/guides/override-column-guide?embed=true): Guide for using `OverrideColumn` to modify properties of columns inherited from a parent table. When you extend a table using `extends`, you inherit all columns from the parent. Use `OverrideColumn` to change how these inherited fields behave on the child table without modifying the parent table's definition. - [playbook-activities-guide](https://servicenow.github.io/sdk/guides/playbook-activities-guide?embed=true): An **activity** is a single step inside a playbook lane — present a form to a user, send an email, update a record, - [playbook-anti-patterns-guide](https://servicenow.github.io/sdk/guides/playbook-anti-patterns-guide?embed=true): Wrong/correct code examples for the most common playbook mistakes. Pair this with `playbook-guide` (mental model + execution errors and gotchas) — that doc covers the *conceptual* errors; this one shows the structural mistakes that cause silent failures or compile errors. - [playbook-datapills-guide](https://servicenow.github.io/sdk/guides/playbook-datapills-guide?embed=true): Practical guide for configuring datapills in playbook, which allows you to reference runtime values during playbook execution. - [playbook-guide](https://servicenow.github.io/sdk/guides/playbook-guide?embed=true): Conceptual guide for understanding how the Playbook DSL works, including execution ordering, decision branching, and common errors. For API signatures, interfaces, and type definitions see `playbook-api.md`. - [playbook-lanes-guide](https://servicenow.github.io/sdk/guides/playbook-lanes-guide?embed=true): Practical guide for configuring playbook lanes — covers restart rules, conditional execution, start delays, and common lane layouts. For the underlying type signatures see `playbook-api`; for execution-ordering concepts see `playbook-guide`. - [playbook-patterns-guide](https://servicenow.github.io/sdk/guides/playbook-patterns-guide?embed=true): Recipes for the most common playbook shapes — simple single-lane workflows, multi-lane sequential and parallel layouts, and decision-driven branching (including chained decisions and stage-level routing between lanes). Each pattern is shown end-to-end so it can be copied as a starting point. For activity and lane reference material see `playbook-activities-guide` and `playbook-lanes-guide`. - [playbook-permissions-guide](https://servicenow.github.io/sdk/guides/playbook-permissions-guide?embed=true): Practical guide for granting access to a playbook, its lanes, and its activities. Permissions control who can view, launch, restart, and manage a playbook and act on the stages/lanes and activities inside it at runtime, expressed declaratively in Fluent. - [playbook-triggers-guide](https://servicenow.github.io/sdk/guides/playbook-triggers-guide?embed=true): Practical guide to the trigger types that can start a playbook — covers record-driven triggers (`RecordCreate`, `RecordUpdate`, `RecordCreateOrUpdate`), the time-based `Scheduled` trigger, all their inputs, and how `parentRecord` works when the trigger table differs from the playbook's `parentTable`. For the underlying `wfa.playbook.trigger` signature see `playbook-api`. - [playbook-unsupported-features-guide](https://servicenow.github.io/sdk/guides/playbook-unsupported-features-guide?embed=true): This document covers playbook features the Fluent SDK doesn't yet support. For each limitation you'll find what works, what doesn't, and what needs to be handled directly in Workflow Studio. Whenever a limitation applies, see [Handling Unsupported Features](#handling-unsupported-features) at the bottom — it covers how to look up the playbook and provide a direct Workflow Studio link. - [property-guide](https://servicenow.github.io/sdk/guides/property-guide?embed=true): Guide for creating ServiceNow System Properties using the Fluent API. Properties store key-value configuration for applications, read at runtime using `gs.getProperty()`, and allow admins to tune behavior without code changes. - [query-guide](https://servicenow.github.io/sdk/guides/query-guide?embed=true): `now-sdk query` runs a read-only Table REST API query against the authenticated ServiceNow instance. Use it for live, instance-specific data — column metadata, existing sys_ids, choice values, role memberships, scope info, etc. - [registering-events-guide](https://servicenow.github.io/sdk/guides/registering-events-guide?embed=true): Guide for registering custom ServiceNow events in the Event Registry (`sysevent_register`) using the Record API, including custom queue configuration for high-volume event processing. Use when a custom event name is referenced, when building event-driven applications, or when the user mentions event registry, custom events, `gs.eventQueue()`, or custom queues. - [relationship-guide](https://servicenow.github.io/sdk/guides/relationship-guide?embed=true): Guide for creating ServiceNow relationships and related lists using the Record API. Related lists display child or associated records on a parent form — for example, showing incident tasks on an incident form. - [rest-message-guide](https://servicenow.github.io/sdk/guides/rest-message-guide?embed=true): Guide for creating ServiceNow Outbound REST Messages (`sys_rest_message`) to call external HTTP services using the Fluent SDK. REST Messages define reusable, authenticated integrations with one base URL, shared headers, and multiple named HTTP operations callable from server-side scripts via `sn_ws.RESTMessageV2`. - [retry-policy-guide](https://servicenow.github.io/sdk/guides/retry-policy-guide?embed=true): Guide for creating ServiceNow Retry Policies using the Fluent API. Retry policies control how outbound integration connections recover from transient failures by defining when to retry, how many times, and how long to wait between attempts. - [scheduled-script-guide](https://servicenow.github.io/sdk/guides/scheduled-script-guide?embed=true): Create ServiceNow Scheduled Script Executions (`sysauto_script`) to run server-side logic on a time-based schedule. This guide covers all 11 frequency types, script file patterns, timezone handling, conditional execution, business calendar integration, and best practices. - [script-include-guide](https://servicenow.github.io/sdk/guides/script-include-guide?embed=true): Guide for creating ServiceNow Script Includes using the Fluent API. Script includes bundle reusable server-side logic into classes or utilities that can be called from business rules, scheduled scripts, other script includes, and client-side code via GlideAjax. - [scripted-rest-api-guide](https://servicenow.github.io/sdk/guides/scripted-rest-api-guide?embed=true): Guide for creating ServiceNow Scripted REST APIs using the Fluent API. Scripted REST APIs define custom web service endpoints for external integrations, with support for versioning, parameters, headers, and ACL-based security. - [sdlc-guide](https://servicenow.github.io/sdk/guides/sdlc-guide?embed=true): End-to-end SDLC guide for building, testing, and releasing ServiceNow apps using the ServiceNow SDK, Git, ReleaseOps, and CI/CD pipelines. - [security-guide](https://servicenow.github.io/sdk/guides/security-guide?embed=true): Implement ServiceNow application security using ACLs (`sys_security_acl`), Roles (`sys_user_role`), Security Attributes (`sys_security_attribute`), and Security Data Filters (`sys_security_data_filter`). This guide covers the layered security model -- from defining roles, to creating ACL rules, to row-level filtering with data filters and reusable security predicates. - [service-catalog-client-script-guide](https://servicenow.github.io/sdk/guides/service-catalog-client-script-guide?embed=true): Guide for building ServiceNow Catalog Client Scripts (`catalog_script_client`) for service catalog items, record producers, and variable sets. These client-side scripts run in response to catalog form events such as `onLoad`, `onChange`, or `onSubmit`, enabling dynamic form behavior like field validation, visibility toggling, auto-populating fields from the current user, and user feedback messages. - [service-catalog-guide](https://servicenow.github.io/sdk/guides/service-catalog-guide?embed=true): Guide for building ServiceNow Service Catalog components using the Fluent API — catalog items [sc_cat_item], record producers [sc_cat_item_producer], variables [item_option_new], variable sets [item_option_new_set], UI policies [catalog_ui_policy], and client scripts [catalog_script_client]. **Whenever the requirement is a form that captures user input and creates a record in a table — e.g., `problem`, `incident`, `change_request`, or a custom table, including mapping mandatory fields, applying validation, and confirming submission — the correct metadata is a Record Producer (`CatalogItemRecordProducer`), NOT a UI Page or a Scripted REST API.** A Record Producer provides the form, field mapping (`mapToField`), validation (catalog UI policies + client scripts), and built-in submit/confirm behavior with no custom page or endpoint. Use a catalog item instead when ordering goods/services with approvals and fulfillment. Also use this guide when the user mentions service catalog, catalog items, record producers, variables, variable sets, UI policies, client scripts, form validation, dynamic fields, onChange, onLoad, onSubmit, ordering, or self-service. Includes property references, code examples, field mapping, scripting patterns, and best practices for end-to-end Service Catalog configuration. Only supported in SDK 4.3.0 or higher - [service-catalog-ui-policy-guide](https://servicenow.github.io/sdk/guides/service-catalog-ui-policy-guide?embed=true): Guide for building ServiceNow Catalog UI Policies (`catalog_ui_policy`) — conditionally shows, hides, or sets variables on a catalog item, record producer or variable set based on a condition. - [service-catalog-variables-guide](https://servicenow.github.io/sdk/guides/service-catalog-variables-guide?embed=true): Servicenow guide to create Service Catalog Variables and Variable Sets. Creates a Variable(`item_option_new`) - single variable and Variable Set(`item_option_new_set`) - reusable collection of variables that can - [service-portal-advanced-guide](https://servicenow.github.io/sdk/guides/service-portal-advanced-guide?embed=true): Advanced topics for Service Portal Fluent SDK: page route maps, widgetParameters serialization, platform constraints, OOTB widget and page references, scoped app restrictions, and troubleshooting. Every statement here is verified against the actual running example application. - [service-portal-components-guide](https://servicenow.github.io/sdk/guides/service-portal-components-guide?embed=true): Reference for SPTheme, SPHeaderFooter, SPMenu, SPAngularProvider, and SPWidgetDependency. These are the supporting components that surround a widget — they control visual identity, navigation, shared AngularJS logic, and external library loading. All five map to distinct ServiceNow tables. You MUST check for reusable OOTB records before creating custom ones. - [service-portal-guide](https://servicenow.github.io/sdk/guides/service-portal-guide?embed=true): Guide for building ServiceNow Service Portal experiences using the Fluent API. Service Portal is a portal framework for building user-facing self-service experiences using AngularJS and Bootstrap 3. This guide covers core portal concepts: portals, pages, widgets, and themes. - [service-portal-ootb-reference](https://servicenow.github.io/sdk/guides/service-portal-ootb-reference?embed=true): This file contains reference OOTB patterns from ServiceNow's global scope records, useful as a gold-standard starting point when creating custom headers, footers, or themes. - [state-model-guide](https://servicenow.github.io/sdk/guides/state-model-guide?embed=true): Guide for creating ServiceNow State Models using the Fluent API. A State Model defines the states a record can be in, the valid transitions between them, and the conditions that gate each transition — for example, blocking a Change from "Assess" to "Authorize" until an approval condition is met. A single `StateModel()` call creates the model record plus all of its state, transition, and condition records. - [table-augments-guide](https://servicenow.github.io/sdk/guides/table-augments-guide?embed=true): Guide for adding custom columns to a platform or cross-scope table using `augments`. Use this when your application needs to attach fields to a table defined in another scope. - [table-guide](https://servicenow.github.io/sdk/guides/table-guide?embed=true): Guide for creating ServiceNow Tables (`sys_db_object`), Columns (`sys_dictionary`), Column Overrides (`sys_dictionary_override`), and Relationships (`sys_relationship`) to define data models. Use when the user mentions tables, columns, column overrides, fields, schema, extending tables, relationships, related lists, or data modeling. - [ui-action-guide](https://servicenow.github.io/sdk/guides/ui-action-guide?embed=true): Guide for creating ServiceNow UI Actions using the Fluent API. UI Actions are buttons, links, or context menu items that execute server-side or client-side logic on forms and lists. - [ui-page-guide](https://servicenow.github.io/sdk/guides/ui-page-guide?embed=true): Guide for creating ServiceNow UI Pages using React and the Fluent DSL. UI Pages are custom React-based interfaces for building forms, dashboards, list views, multi-step wizards, and any custom web experience within ServiceNow. They use React 18.2.0, the `@servicenow/react-components` library, Table API integration, CSS styling, and SPA routing via URLSearchParams. - [ui-page-patterns-guide](https://servicenow.github.io/sdk/guides/ui-page-patterns-guide?embed=true): Development patterns and guidelines for ServiceNow UI Pages, covering dirty state management, field extraction, service layer architecture, CSS styling, build constraints, and file organization. - [ui-page-theming-guide](https://servicenow.github.io/sdk/guides/ui-page-theming-guide?embed=true): Horizon Design System theming reference for ServiceNow UI Pages, covering design foundations, layout patterns, controls, and component styling. - [ui-policy-guide](https://servicenow.github.io/sdk/guides/ui-policy-guide?embed=true): Guide for creating ServiceNow UI Policies using the Fluent API. UI Policies dynamically change form field properties (visibility, mandatory, read-only, cleared) and control related list visibility based on conditions evaluated when the form loads or field values change. - [user-criteria-examples-guide](https://servicenow.github.io/sdk/guides/user-criteria-examples-guide?embed=true): This guide provides comprehensive, scenario-based examples for working with User Criteria in Fluent. For basic API usage and field definitions, see the `usercriteria-api` topic. For common mistakes and troubleshooting, see the `user-criteria-guide` topic. - [user-criteria-guide](https://servicenow.github.io/sdk/guides/user-criteria-guide?embed=true): User Criteria (`user_criteria`) are named, reusable access conditions that determine which users can view catalog items, knowledge articles, service portal topics, and other platform content. **Required for controlling Service Catalog item visibility—always use instead of ACLs or the `roles` property for who can see/order catalog items.** Unlike ACLs—which control read/write/delete operations on database records—User Criteria define audience membership based on combinations of users, groups, roles, departments, locations, companies, and optional scripts. - [view-guide](https://servicenow.github.io/sdk/guides/view-guide?embed=true): Guide for creating ServiceNow UI Views using the Record API. Views define custom layout variants for forms and lists, controlling which fields/columns are shown and who can access the layout. - [view-rule-guide](https://servicenow.github.io/sdk/guides/view-rule-guide?embed=true): Guide for creating ServiceNow View Rules using the Record API. View rules automatically switch users to a specific view based on conditions, device type, or custom scripts — unlike manual view selection from the dropdown. - [wfa-custom-action-guide](https://servicenow.github.io/sdk/guides/wfa-custom-action-guide?embed=true): Guide for creating and invoking reusable custom actions using the Fluent SDK. Custom actions encapsulate a sequence of OOB steps with typed inputs and outputs, and are invoked from any Flow or Subflow via `wfa.action()`. - [wfa-flow-actions-guide](https://servicenow.github.io/sdk/guides/wfa-flow-actions-guide?embed=true): Action types, flow logic, and patterns for ServiceNow WFA flows. Covers record operations, communication actions, approvals, tasks, attachments, control flow, and complete flow patterns. - [wfa-flow-guide](https://servicenow.github.io/sdk/guides/wfa-flow-guide?embed=true): Comprehensive guide for creating and editing ServiceNow Workflow Automation (WFA) flows using the Fluent SDK. Covers Flow Designer flows including triggers, actions, flow logic, data pills, approvals, and service catalog integration. Use this when implementing event-driven automation, scheduled tasks, approval workflows, or any WFA component. - [wfa-flow-logic-guide](https://servicenow.github.io/sdk/guides/wfa-flow-logic-guide?embed=true): Flow logic constructs control how a flow executes -- branching, looping, and termination. They are invoked from inside a flow or subflow body via `wfa.flowLogic.*`. - [wfa-flow-stages-guide](https://servicenow.github.io/sdk/guides/wfa-flow-stages-guide?embed=true): Comprehensive guide for declaring and activating flow stages in ServiceNow workflows. Stages track progress of a Flow execution through named phases (e.g. Triage → Approval → Investigation). Two steps are needed: **declare** stages in the flow config header using `FlowStage()`, then **activate** them in the flow body using `wfa.stage()`. - [wfa-subflow-guide](https://servicenow.github.io/sdk/guides/wfa-subflow-guide?embed=true): Guide for creating and invoking reusable Subflows using the Fluent SDK. Subflows encapsulate flow logic with typed inputs and outputs, and can be invoked from any Flow or another Subflow via `wfa.subflow()`. - [wfa-trigger-guide](https://servicenow.github.io/sdk/guides/wfa-trigger-guide?embed=true): Triggers define when a Workflow Automation flow activates. They are the first argument to `wfa.trigger()` and fall into three categories: ## Fluent Language - [data-helpers-guide](https://servicenow.github.io/sdk/fluent/data-helpers-guide?embed=true): Fluent provides global helper functions for creating typed values in `Record()` data fields. - [now-attach-guide](https://servicenow.github.io/sdk/fluent/now-attach-guide?embed=true): `Now.attach()` attaches an image file to a record at build time. It reads the file, compresses it, and creates the corresponding `sys_attachment` and `sys_attachment_doc` records in the XML output. - [now-del-guide](https://servicenow.github.io/sdk/fluent/now-del-guide?embed=true): Marks a record for deletion. When the application is deployed, records marked with `Now.del()` will be removed from the target instance. - [now-id-guide](https://servicenow.github.io/sdk/fluent/now-id-guide?embed=true): `Now.ID['key-name']` gives a Fluent record a stable, human-readable identity. Use it to assign the `$id` property on any API that accepts one — the build system maps the key to a real sys_id and keeps it stable across builds. - [now-include-guide](https://servicenow.github.io/sdk/fluent/now-include-guide?embed=true): `Now.include()` populates a record field with the contents of a file at build time. It reads the file and inlines its text into the XML output, keeping source files separate for IDE support (syntax highlighting, IntelliSense, linting). - [now-ref-guide](https://servicenow.github.io/sdk/fluent/now-ref-guide?embed=true): `Now.ref()` creates a reference to a record in another table. Use it when a field needs to point to a record that isn't defined in the current file — for example, referencing a role, a flow, or any record identified by its sys_id or coalesce keys. - [override-guide](https://servicenow.github.io/sdk/fluent/override-guide?embed=true): `$override` is an escape hatch on Fluent API constructors. Use it to set fields that the typed API does not expose — typically customer-added columns (`x_`/`u_` prefixed), fields added by another application, or out-of-the-box columns that simply aren't in the API surface yet. ## API Reference - [acl-api](https://servicenow.github.io/sdk/api/acl-api?embed=true): Creates an Access Control List (ACL) record that secures parts of an application (`sys_security_acl`). - [aiagent-api](https://servicenow.github.io/sdk/api/aiagent-api?embed=true): Configure an AI Agent record. AI Agents are intelligent agents that execute tools, - [aiagenticworkflow-api](https://servicenow.github.io/sdk/api/aiagenticworkflow-api?embed=true): Configure an AI Agentic Workflow record. AI Agentic Workflows orchestrate multiple - [alias-api](https://servicenow.github.io/sdk/api/alias-api?embed=true): Creates a Connection & Credential Alias (`sys_alias`) — a named handle that integrations, Flow Designer actions, and scripts use to reference a connection and credential pair without hard-coding instance-specific values. Reference fields like `configurationTemplate`, `retryPolicy`, and `parent` accept a sys_id string, a `Record` reference, or the corresponding Fluent call (`AliasTemplate()`, `RetryPolicy()`, `Alias()`) directly. - [aliastemplate-api](https://servicenow.github.io/sdk/api/aliastemplate-api?embed=true): Creates a Connection & Credential alias template (`sys_alias_templates`): a reusable - [applicationmenu-api](https://servicenow.github.io/sdk/api/applicationmenu-api?embed=true): Creates an Application Menu (`sys_app_application`). Application menus define top-level sections in the ServiceNow navigator sidebar. Modules define the clickable items within them. - [businessrule-api](https://servicenow.github.io/sdk/api/businessrule-api?embed=true): Creates a Business Rule: logic that runs when database records are queried, updated, - [choiceset-api](https://servicenow.github.io/sdk/api/choiceset-api?embed=true): Adds choices to a table field by creating a `sys_choice_set` record. Use this API when the field is not owned by the current app — for example, a globally-defined field on an app-scoped table that extends a global table. For fields owned by the current app, define choices inline in the `Table` API instead. - [clientscript-api](https://servicenow.github.io/sdk/api/clientscript-api?embed=true): Creates a Client Script (`sys_script_client`) that runs JavaScript in the browser on form events (onLoad, onChange, onSubmit, onCellEdit) to dynamically configure forms, fields, and field values. - [crossscopeprivilege-api](https://servicenow.github.io/sdk/api/crossscopeprivilege-api?embed=true): Creates a Cross Scope Privilege — a declaration that your application needs runtime access to resources owned by a different application scope (`sys_scope_privilege`). Required when your scripts read/write tables, call script includes, or use scriptable objects from other scopes. - [datalookup-api](https://servicenow.github.io/sdk/api/datalookup-api?embed=true): Creates a Data Lookup definition (`dl_definition`) that automatically copies field - [datapolicy-api](https://servicenow.github.io/sdk/api/datapolicy-api?embed=true): Creates a Data Policy that enforces field mandatory and read-only rules server-side across all interfaces - [emailnotification-api](https://servicenow.github.io/sdk/api/emailnotification-api?embed=true): Creates an email notification configuration for ServiceNow. Email notifications are automated messages - [action-api](https://servicenow.github.io/sdk/api/flow/action-api?embed=true): Built-in action steps for use inside a Flow or Subflow via `wfa.action()`. - [custom-action-api](https://servicenow.github.io/sdk/api/flow/custom-action-api?embed=true): API reference for the `Action()` constructor, the `wfa.actionStep()` invocation helper for embedding OOB steps, and the `wfa.assignActionOutputs()` output helper. - [flow-api](https://servicenow.github.io/sdk/api/flow/flow-api?embed=true): Creates a Flow record (`sys_hub_flow`) that defines a series of actions to execute when triggered. - [flow-stages-api](https://servicenow.github.io/sdk/api/flow/flow-stages-api?embed=true): Declares a named stage for tracking Flow execution progress. Stages are defined in the Flow config `stages` property using `FlowStage()` and activated in the flow body using `wfa.stage()`. - [subflow-api](https://servicenow.github.io/sdk/api/flow/subflow-api?embed=true): API reference for the `Subflow()` constructor, the `wfa.subflow()` invocation helper, and the `wfa.flowLogic.assignSubflowOutputs()` output helper. - [trigger-api](https://servicenow.github.io/sdk/api/flow/trigger-api?embed=true): Trigger definitions for starting a Flow. Pass a trigger as the first argument to `wfa.trigger()`. - [wfa-api](https://servicenow.github.io/sdk/api/flow/wfa-api?embed=true): The `wfa` (Workflow Automation) namespace provides the core building blocks for defining Flows and Subflows. Use `wfa.trigger()` to start a flow, `wfa.action()` to execute built-in actions, and `wfa.flowLogic` for control flow (if/elseIf/else, forEach, doTheFollowing, doInParallel, tryCatch, appendToFlowVariables). - [wfa-flow-logic-api](https://servicenow.github.io/sdk/api/flow/wfa-flow-logic-api?embed=true): The `wfa.flowLogic` namespace provides control flow operators for branching, looping, and flow control within Flow and Subflow bodies. - [form-api](https://servicenow.github.io/sdk/api/form-api?embed=true): Creates a form definition (`sys_ui_form`) for a ServiceNow table with sections and layout blocks. - [graphqlapi-api](https://servicenow.github.io/sdk/api/graphqlapi-api?embed=true): Creates a scripted GraphQL API (`sys_graphql_schema`) with its resolvers and type resolvers, secured by schema-gate and field-level path-based GraphQL ACLs. - [importset-api](https://servicenow.github.io/sdk/api/importset-api?embed=true): Creates an Import Set: defines how rows in a staging/source table are transformed and loaded into a target table (`sys_transform_map`). - [inboundemailaction-api](https://servicenow.github.io/sdk/api/inboundemailaction-api?embed=true): Configure an Inbound Email Action record. Inbound email actions define how ServiceNow - [columntypecheck-api](https://servicenow.github.io/sdk/api/instance-scan/columntypecheck-api?embed=true): Creates a column type check that scans columns of a specific content type (`scan_column_type_check`). - [lintercheck-api](https://servicenow.github.io/sdk/api/instance-scan/lintercheck-api?embed=true): Creates a linter check that runs linting rules against instance code (`scan_linter_check`). - [scriptonlycheck-api](https://servicenow.github.io/sdk/api/instance-scan/scriptonlycheck-api?embed=true): Creates a script-only check that executes a standalone script with no table binding (`scan_script_only_check`). - [tablecheck-api](https://servicenow.github.io/sdk/api/instance-scan/tablecheck-api?embed=true): Creates a table check that scans records in a specific table (`scan_table_check`). - [list-api](https://servicenow.github.io/sdk/api/list-api?embed=true): Creates a list layout for a table (`sys_ui_list`) with column definitions (`sys_ui_list_element`). - [nowassistskillconfig-api](https://servicenow.github.io/sdk/api/nowassistskillconfig-api?embed=true): > **Branding note:** "Now Assist" has been rebranded to "ServiceNow Otto." These names refer to the same product. All technical identifiers (table names, field names, string literals like "Now Assist Panel", `now_assist_deployment`) remain unchanged — use them exactly as-is in code. - [playbook-api](https://servicenow.github.io/sdk/api/playbook-api?embed=true): Creates a ServiceNow Playbook: a guided multi-step process that operates on a record (`sys_pd_process_definition`). Composed of lanes, activities, triggers, inputs, and outputs with inline `startRule` ordering. - [property-api](https://servicenow.github.io/sdk/api/property-api?embed=true): Creates a System Property -- a key-value configuration setting read at runtime via `gs.getProperty()` (`sys_properties`). Properties allow admins to tune application behavior without code changes. - [record-api](https://servicenow.github.io/sdk/api/record-api?embed=true): Create a record in any table. This is a low-level function typically used as - [restapi-api](https://servicenow.github.io/sdk/api/restapi-api?embed=true): Creates endpoints, query parameters, and headers for a scripted REST service (`sys_ws_definition`). - [restmessage-api](https://servicenow.github.io/sdk/api/restmessage-api?embed=true): Creates outbound HTTP integrations (`sys_rest_message`) with a base URL, shared authentication, shared headers, and one or more callable HTTP method functions (`sys_rest_message_fn`) invokable from server-side scripts via `sn_ws.RESTMessageV2`. - [retrypolicy-api](https://servicenow.github.io/sdk/api/retrypolicy-api?embed=true): Creates a Retry Policy record (`sys_retry_policy`) that controls how outbound integration connections handle transient failures. A retry policy defines the strategy, attempt count, wait interval, maximum elapsed time, and the conditions under which retries apply. - [role-api](https://servicenow.github.io/sdk/api/role-api?embed=true): Creates a Role -- a named permission that can be assigned to users and groups to control access to application features, data, and APIs (`sys_user_role`). Roles are referenced by ACLs, UI Actions, and other access-controlled entities. - [scheduledscript-api](https://servicenow.github.io/sdk/api/scheduledscript-api?embed=true): Creates a Scheduled Script Execution: a server-side script that runs automatically - [scriptaction-api](https://servicenow.github.io/sdk/api/scriptaction-api?embed=true): Script Actions are used to execute server-side scripts when specific events occur. - [scriptinclude-api](https://servicenow.github.io/sdk/api/scriptinclude-api?embed=true): Script includes are used to store JavaScript that runs on the server. - [catalogclientscript-api](https://servicenow.github.io/sdk/api/service-catalog/catalogclientscript-api?embed=true): API reference and patterns for Catalog Client Scripts (`catalog_script_client`) for catalog items and record producers and variable sets. - [catalogitem-api](https://servicenow.github.io/sdk/api/service-catalog/catalogitem-api?embed=true): Creates a Service Catalog Item (`sc_cat_item`) — a requestable item in the ServiceNow Service Catalog. - [catalogitemrecordproducer-api](https://servicenow.github.io/sdk/api/service-catalog/catalogitemrecordproducer-api?embed=true): Creates a Record Producer (`sc_cat_item_producer`) — a catalog item that creates a record in a - [cataloguipolicy-api](https://servicenow.github.io/sdk/api/service-catalog/cataloguipolicy-api?embed=true): API reference and patterns for Catalog UI Policies (`catalog_ui_policy`) for catalog items and record producers and variable sets. - [attachmentvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/attachmentvariable-api?embed=true): A CatalogItem variable for an attachment field. - [breakvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/breakvariable-api?embed=true): A CatalogItem variable for a break field (used for adding line breaks in forms). - [checkboxvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/checkboxvariable-api?embed=true): Creates a checkbox (boolean) variable for service catalog forms. Use for yes/no or on/off toggles. Add a `CheckboxVariable` to a `CatalogItem` or `VariableSet` via the `variables` property. - [containerendvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/containerendvariable-api?embed=true): A CatalogItem variable for a container end field (used for closing a container group). - [containersplitvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/containersplitvariable-api?embed=true): A CatalogItem variable for a container split field (used for creating columns within a container). - [containerstartvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/containerstartvariable-api?embed=true): A CatalogItem variable for a container start field (used for grouping variables). - [customvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/customvariable-api?embed=true): A CatalogItem variable for a custom UI component field. - [customwithlabelvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/customwithlabelvariable-api?embed=true): A CatalogItem variable for a custom UI component field with a label. - [datetimevariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/datetimevariable-api?embed=true): Creates a date-time picker variable for service catalog forms. Use when both date and time are needed, such as scheduled appointments or event timestamps. Add a `DateTimeVariable` to a `CatalogItem` or `VariableSet` via the `variables` property. - [datevariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/datevariable-api?embed=true): Creates a date picker variable for service catalog forms. Use for date-only fields like start dates, deadlines, or target dates. Add a `DateVariable` to a `CatalogItem` or `VariableSet` via the `variables` property. - [durationvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/durationvariable-api?embed=true): A CatalogItem variable for a duration field. - [emailvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/emailvariable-api?embed=true): A CatalogItem variable for an email field. - [htmlvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/htmlvariable-api?embed=true): A CatalogItem variable for an HTML field. - [ipaddressvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/ipaddressvariable-api?embed=true): A CatalogItem variable for an IP address field. - [labelvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/labelvariable-api?embed=true): A CatalogItem variable for a label field (display-only text). - [listcollectorvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/listcollectorvariable-api?embed=true): Creates a list collector (multi-select) variable for service catalog forms. Use when users need to select multiple records from a reference table via a dual-pane picker. Add a `ListCollectorVariable` to a `CatalogItem` or `VariableSet` via the `variables` property. - [lookupmultiplechoicevariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/lookupmultiplechoicevariable-api?embed=true): A CatalogItem variable for a lookup multiple choice field. - [lookupselectboxvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/lookupselectboxvariable-api?embed=true): A CatalogItem variable for a lookup select box field. - [maskedvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/maskedvariable-api?embed=true): A CatalogItem variable for a masked field. - [multilinetextvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/multilinetextvariable-api?embed=true): Creates a multi-line text area variable for service catalog forms. Use for longer text input like descriptions, notes, or comments. Add a `MultiLineTextVariable` to a `CatalogItem` or `VariableSet` via the `variables` property. - [multiplechoicevariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/multiplechoicevariable-api?embed=true): Creates a radio button (multiple choice) variable for service catalog forms. Use when users must choose one option from a small set of visible choices. Add a `MultipleChoiceVariable` to a `CatalogItem` or `VariableSet` via the `variables` property. - [numericscalevariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/numericscalevariable-api?embed=true): A CatalogItem variable for a numeric scale field. - [referencevariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/referencevariable-api?embed=true): Creates a reference lookup variable for service catalog forms. Use when users need to select a record from another table (e.g., a user, group, or configuration item) via a searchable lookup field. Add a `ReferenceVariable` to a `CatalogItem` or `VariableSet` via the `variables` property. - [requestedforvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/requestedforvariable-api?embed=true): A CatalogItem variable for a requested for field (typically references a user). - [richtextlabelvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/richtextlabelvariable-api?embed=true): A CatalogItem variable for a rich text label field. - [selectboxvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/selectboxvariable-api?embed=true): Creates a dropdown select box variable for service catalog forms. Use when users must choose exactly one option from a predefined list. Add a `SelectBoxVariable` to a `CatalogItem` or `VariableSet` via the `variables` property. - [singlelinetextvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/singlelinetextvariable-api?embed=true): Creates a single-line text input variable for service catalog forms. Use for short text fields like names, titles, or identifiers. The value is a plain string with optional regex validation and placeholder text. Add a `SingleLineTextVariable` to a `CatalogItem` or `VariableSet` via the `variables` property. - [uipagevariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/uipagevariable-api?embed=true): A CatalogItem variable for a UI page field. - [urlvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/urlvariable-api?embed=true): A CatalogItem variable for a URL field. - [widesinglelinetextvariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/widesinglelinetextvariable-api?embed=true): A CatalogItem variable for a wide single line text field. - [yesnovariable-api](https://servicenow.github.io/sdk/api/service-catalog/variables/yesnovariable-api?embed=true): Creates a Yes/No dropdown variable for service catalog forms. Use when the user must explicitly choose between Yes and No (unlike a checkbox which defaults to unchecked). Add a `YesNoVariable` to a `CatalogItem` or `VariableSet` via the `variables` property. - [variableset-api](https://servicenow.github.io/sdk/api/service-catalog/variableset-api?embed=true): Creates a Variable Set (`item_option_new_set`) — a reusable collection of variables that can - [serviceportal-api](https://servicenow.github.io/sdk/api/service-portal/serviceportal-api?embed=true): Creates a Service Portal — a self-service web experience for end users built with AngularJS and Bootstrap 3 (`sp_portal`). Portals aggregate pages, widgets, themes, knowledge bases, and service catalogs into a branded, responsive interface. - [spangularprovider-api](https://servicenow.github.io/sdk/api/service-portal/spangularprovider-api?embed=true): Creates an AngularJS provider for Service Portal — a directive, factory, or service that extends widget functionality (`sp_angular_provider`). Providers are shared across widgets and enable reusable client-side logic. - [spheaderfooter-api](https://servicenow.github.io/sdk/api/service-portal/spheaderfooter-api?embed=true): API used to create a Service Portal header or footer (`sp_header_footer`). - [spmenu-api](https://servicenow.github.io/sdk/api/service-portal/spmenu-api?embed=true): Configures a Service Portal menu with hierarchical navigation items (`sp_instance_menu`). Menus define the navigation structure within a portal, supporting page links, knowledge base links, catalog items, filtered lists, and scripted menu items. - [sppage-api](https://servicenow.github.io/sdk/api/service-portal/sppage-api?embed=true): Creates a Service Portal page — a layout of widget instances organized into containers, rows, and columns (`sp_page`). Pages are the top-level navigation targets in a portal and define the visual structure users interact with. - [sppageroutemap-api](https://servicenow.github.io/sdk/api/service-portal/sppageroutemap-api?embed=true): Creates a Service Portal page route map — a redirect rule that automatically routes users from one page to another within a portal (`sp_page_route_map`). Route maps can be scoped to specific portals and roles, and support priority ordering when multiple rules match the same source page. - [sptheme-api](https://servicenow.github.io/sdk/api/service-portal/sptheme-api?embed=true): API used to create a Service Portal theme (`sp_theme`). - [spwidget-api](https://servicenow.github.io/sdk/api/service-portal/spwidget-api?embed=true): Creates a Service Portal widget — a self-contained AngularJS component with its own server script, client controller, HTML template, and CSS (`sp_widget`). Widgets are the building blocks of Service Portal pages, handling data fetching, user interaction, and rendering. - [spwidgetdependency-api](https://servicenow.github.io/sdk/api/service-portal/spwidgetdependency-api?embed=true): Creates a widget dependency — a bundle of CSS and JavaScript includes that widgets and themes can reference (`sp_dependency`). Dependencies ensure that shared libraries and stylesheets are loaded when needed. - [sla-api](https://servicenow.github.io/sdk/api/sla-api?embed=true): Creates an SLA definition (`contract_sla`): a timer that tracks service commitments - [statemodel-api](https://servicenow.github.io/sdk/api/statemodel-api?embed=true): Creates a State Model that defines states, transitions, and gating conditions for a table. A single `StateModel()` call produces the model record plus all of its state, transition, and condition records. The plugin auto-detects the model table from the target `table` (`change_request` → `chg_model`, `problem` → `prb_model`, `problem_task` → `prb_task_model`, any other table → the base `sttrm_model`). - [approvalrulescolumn-api](https://servicenow.github.io/sdk/api/table/columns/approvalrulescolumn-api?embed=true): A Column for an approval rules field. - [basicdatetimecolumn-api](https://servicenow.github.io/sdk/api/table/columns/basicdatetimecolumn-api?embed=true): A Column for a basic date time type field. - [basicimagecolumn-api](https://servicenow.github.io/sdk/api/table/columns/basicimagecolumn-api?embed=true): A Column for a basic image type field. - [booleancolumn-api](https://servicenow.github.io/sdk/api/table/columns/booleancolumn-api?embed=true): Defines a true/false column rendered as a checkbox on forms. Use `default` to set the initial checked state when a new record is created. - [calendardatetimecolumn-api](https://servicenow.github.io/sdk/api/table/columns/calendardatetimecolumn-api?embed=true): A Column for a calendar date time type field. - [choicecolumn-api](https://servicenow.github.io/sdk/api/table/columns/choicecolumn-api?embed=true): Defines a column that restricts input to a predefined set of options rendered as a dropdown, radio buttons, or other selection widget. Use `choices` to declare the allowed values and `default` to set the initial selection. - [conditionscolumn-api](https://servicenow.github.io/sdk/api/table/columns/conditionscolumn-api?embed=true): A Column for a conditions type field. - [datecolumn-api](https://servicenow.github.io/sdk/api/table/columns/datecolumn-api?embed=true): A Column for a date type field. - [datetimecolumn-api](https://servicenow.github.io/sdk/api/table/columns/datetimecolumn-api?embed=true): Defines a column that stores a combined date and time value, rendered with a calendar picker on forms. Use this for fields like due dates, scheduled start times, or any timestamp the user needs to set. - [dayofweekcolumn-api](https://servicenow.github.io/sdk/api/table/columns/dayofweekcolumn-api?embed=true): A Column for a day of week field. - [daysofweekcolumn-api](https://servicenow.github.io/sdk/api/table/columns/daysofweekcolumn-api?embed=true): A Column for a days of week field. - [decimalcolumn-api](https://servicenow.github.io/sdk/api/table/columns/decimalcolumn-api?embed=true): A Column for a decimal type field. - [documentidcolumn-api](https://servicenow.github.io/sdk/api/table/columns/documentidcolumn-api?embed=true): A Column for a document ID type field. - [domainidcolumn-api](https://servicenow.github.io/sdk/api/table/columns/domainidcolumn-api?embed=true): A Column for a domain ID type field. - [domainpathcolumn-api](https://servicenow.github.io/sdk/api/table/columns/domainpathcolumn-api?embed=true): A Column for a domain path type field. - [duedatecolumn-api](https://servicenow.github.io/sdk/api/table/columns/duedatecolumn-api?embed=true): A Column for a due date type field. - [durationcolumn-api](https://servicenow.github.io/sdk/api/table/columns/durationcolumn-api?embed=true): A Column for a duration field. - [emailcolumn-api](https://servicenow.github.io/sdk/api/table/columns/emailcolumn-api?embed=true): A Column for an email type field. - [fieldlistcolumn-api](https://servicenow.github.io/sdk/api/table/columns/fieldlistcolumn-api?embed=true): A Column for a field list type field. - [fieldnamecolumn-api](https://servicenow.github.io/sdk/api/table/columns/fieldnamecolumn-api?embed=true): A Column for a field name type field. - [floatcolumn-api](https://servicenow.github.io/sdk/api/table/columns/floatcolumn-api?embed=true): A Column for a floating-point number type field. - [genericcolumn-api](https://servicenow.github.io/sdk/api/table/columns/genericcolumn-api?embed=true): Escape hatch for any column type not defined elsewhere - [guidcolumn-api](https://servicenow.github.io/sdk/api/table/columns/guidcolumn-api?embed=true): A Column for a GUID (Globally Unique Identifier) type field. - [htmlcolumn-api](https://servicenow.github.io/sdk/api/table/columns/htmlcolumn-api?embed=true): A Column for an HTML type field. - [integercolumn-api](https://servicenow.github.io/sdk/api/table/columns/integercolumn-api?embed=true): A Column for an integer type field. - [integerdatecolumn-api](https://servicenow.github.io/sdk/api/table/columns/integerdatecolumn-api?embed=true): A Column for an integer date type field. - [jsoncolumn-api](https://servicenow.github.io/sdk/api/table/columns/jsoncolumn-api?embed=true): A Column for a JSON type field. - [listcolumn-api](https://servicenow.github.io/sdk/api/table/columns/listcolumn-api?embed=true): A Column for a list type field. - [multilinetextcolumn-api](https://servicenow.github.io/sdk/api/table/columns/multilinetextcolumn-api?embed=true): A Column for a multiple line small text area field. - [namevaluepairscolumn-api](https://servicenow.github.io/sdk/api/table/columns/namevaluepairscolumn-api?embed=true): A Column for a name-value pairs field. - [otherdatecolumn-api](https://servicenow.github.io/sdk/api/table/columns/otherdatecolumn-api?embed=true): A Column for an other date type field. - [overridecolumn-api](https://servicenow.github.io/sdk/api/table/columns/overridecolumn-api?embed=true): Define a dictionary override for an inherited column. - [password2column-api](https://servicenow.github.io/sdk/api/table/columns/password2column-api?embed=true): A Column for an encrypted password type field. - [radiocolumn-api](https://servicenow.github.io/sdk/api/table/columns/radiocolumn-api?embed=true): A Column for a radio type field. - [recordscolumn-api](https://servicenow.github.io/sdk/api/table/columns/recordscolumn-api?embed=true): A Column for a list type field. - [referencecolumn-api](https://servicenow.github.io/sdk/api/table/columns/referencecolumn-api?embed=true): Defines a reference (foreign key) column that links a record to a row in another table. Use `referenceTable` to specify the target table and `cascadeRule` to control what happens to referencing records when the target is deleted. - [scheduledatetimecolumn-api](https://servicenow.github.io/sdk/api/table/columns/scheduledatetimecolumn-api?embed=true): A Column for a schedule date time type field. - [scriptcolumn-api](https://servicenow.github.io/sdk/api/table/columns/scriptcolumn-api?embed=true): A Column for a script type field. - [slushbucketcolumn-api](https://servicenow.github.io/sdk/api/table/columns/slushbucketcolumn-api?embed=true): A Column for a slush bucket field. - [stringcolumn-api](https://servicenow.github.io/sdk/api/table/columns/stringcolumn-api?embed=true): Defines a text column on a table for storing variable-length string values such as names, descriptions, and labels. Use `maxLength` to control the field size and `choices` to restrict input to a predefined set of text values. - [systemclassnamecolumn-api](https://servicenow.github.io/sdk/api/table/columns/systemclassnamecolumn-api?embed=true): A Column for a system class name type field. - [tablenamecolumn-api](https://servicenow.github.io/sdk/api/table/columns/tablenamecolumn-api?embed=true): A Column for a table name type field. - [templatevaluecolumn-api](https://servicenow.github.io/sdk/api/table/columns/templatevaluecolumn-api?embed=true): A Column for a template value field. - [timecolumn-api](https://servicenow.github.io/sdk/api/table/columns/timecolumn-api?embed=true): A Column for a time field. - [translatedfieldcolumn-api](https://servicenow.github.io/sdk/api/table/columns/translatedfieldcolumn-api?embed=true): A Column for a translated field type field. - [translatedtextcolumn-api](https://servicenow.github.io/sdk/api/table/columns/translatedtextcolumn-api?embed=true): A Column for a translated text type field. - [urlcolumn-api](https://servicenow.github.io/sdk/api/table/columns/urlcolumn-api?embed=true): A Column for a URL type field. - [userimagecolumn-api](https://servicenow.github.io/sdk/api/table/columns/userimagecolumn-api?embed=true): A Column for a user image type field. - [userrolescolumn-api](https://servicenow.github.io/sdk/api/table/columns/userrolescolumn-api?embed=true): A Column for a user roles type field. - [versioncolumn-api](https://servicenow.github.io/sdk/api/table/columns/versioncolumn-api?embed=true): A Column for a version type field. - [table-api](https://servicenow.github.io/sdk/api/table/table-api?embed=true): Defines a database table (`sys_db_object`) in a scoped application with typed column schemas, auto-numbering, access controls, and table inheritance. - [test-api](https://servicenow.github.io/sdk/api/test-api?embed=true): Creates an Automated Test Framework test (`sys_atf_test`). - [testsuite-api](https://servicenow.github.io/sdk/api/testsuite-api?embed=true): Creates an Automated Test Framework test suite (`sys_atf_test_suite`) — a named, orderable collection of `Test(...)` records, optionally nested under a parent suite. This API is authoring only: it produces the suite/membership metadata, but does not trigger or schedule a run. Running a suite (on-demand, scheduled, or via CI/CD) is done through ATF's existing UI, scheduler, and CI/CD integration. - [uiaction-api](https://servicenow.github.io/sdk/api/uiaction-api?embed=true): Creates a UI Action — a button, link, or context menu item that executes server-side or client-side logic on forms and lists (`sys_ui_action`). UI Actions appear as buttons on forms, options in context menus, or links in related lists. - [uipage-api](https://servicenow.github.io/sdk/api/uipage-api?embed=true): Creates a UI Page — a standalone web page accessible via a `.do` endpoint that can contain HTML, CSS, client scripts, and processing scripts (`sys_ui_page`). UI Pages support both traditional Jelly/HTML content and modern React-based single-page applications. - [uipolicy-api](https://servicenow.github.io/sdk/api/uipolicy-api?embed=true): Creates a UI Policy that defines dynamic form behaviors to change field properties and control related list visibility based on conditions. - [usercriteria-api](https://servicenow.github.io/sdk/api/usercriteria-api?embed=true): Creates a User Criteria record -- a named, reusable access condition that determines which users can view catalog items, knowledge articles, service portal topics, and other platform content (`user_criteria`). - [userpreference-api](https://servicenow.github.io/sdk/api/userpreference-api?embed=true): Creates a User Preference (sys_user_preference). - [applicability-api](https://servicenow.github.io/sdk/api/workspace/applicability-api?embed=true): Creates an applicability configuration for controlling visibility based on roles - [dashboard-api](https://servicenow.github.io/sdk/api/workspace/dashboard-api?embed=true): Creates a Dashboard -- a configurable layout of widgets organized into tabs for data visualization and reporting (`par_dashboard`). Dashboards support drag-and-drop widget positioning, tab-based organization, role-based permissions, and group/user visibility controls. - [uxlistmenuconfig-api](https://servicenow.github.io/sdk/api/workspace/uxlistmenuconfig-api?embed=true): Configures list menus for workspaces, defining categories of lists with table bindings, column layouts, conditions, and applicability rules (`sys_ux_list_menu_config`). List menus power the navigation and data views within configurable workspaces. - [workspace-api](https://servicenow.github.io/sdk/api/workspace/workspace-api?embed=true): Creates a Workspace — a configurable agent or admin experience in ServiceNow's unified navigation framework (`sys_ux_page_registry`). Workspaces provide a standardized layout for managing business entities through dashboards, lists, and detail forms. ## Configuration - [ci-integration](https://servicenow.github.io/sdk/config/ci-integration?embed=true): Guide for running the Now SDK in CI/CD pipelines: non-interactive authentication for `now-sdk install`, validating that `keys.ts` is committed via `now-sdk build --frozenKeys`, and the conventions that keep pipeline runs reproducible. - [keys-file](https://servicenow.github.io/sdk/config/keys-file?embed=true): Every Fluent project has an auto-generated `keys.ts` file that maps human-readable identifiers to ServiceNow sys_ids. It's the registry that makes `Now.ID['my-record']` work. - [now-config-reference](https://servicenow.github.io/sdk/config/now-config-reference?embed=true): The `now.config.json` file is the project configuration for a Fluent SDK application. It lives at the project root and defines the application scope, build settings, source directories, dependencies, and runtime policies. Every Fluent project requires this file.