‹ All interview questions

Architecture

What is the ServiceNow SDK (Now SDK) and Fluent, and when would you use it instead of App Engine Studio?

What the Interviewer Wants to Hear

They want to know you understand the modern, code-first way to build ServiceNow apps — the Now SDK and its declarative Fluent library — and that you can articulate when it beats clicking through App Engine Studio. Strong candidates frame it as source-control-first development, not a replacement for the platform.

The Answer

The ServiceNow SDK (Now SDK) lets you build a scoped application as TypeScript source on your own machine, using Fluent — a declarative library where each platform artifact (table, business rule, script include, ACL, REST API, flow, ATF test) is a typed function call. You then run a build that transforms that code into deployable metadata and pushes it to an instance.

The point is engineering discipline: your app lives in Git, so you get real diffs, pull requests, code review, and repeatable CI/CD builds — instead of shuttling Update Sets between instances.

import { BusinessRule } from '@servicenow/sdk/core'
import { setOrderPriority } from '../server/set-order-priority'

BusinessRule({
    $id: Now.ID['set_order_priority'],
    name: 'Set Order Priority',
    active: true,
    table: 'x_myapp_order',
    when: 'before',
    action: ['insert', 'update'],
    script: setOrderPriority, // preferred: JS module (Now.include still works)
})

The declarative "when it runs" lives in the .now.ts file; server logic preferably lives in a src/server module with typed Glide APIs. A project has now.config.json (scope + scopeId), src/fluent, and now-sdk build / now-sdk install steps.

SDK vs App Engine Studio

  • Choose the SDK/Fluent for engineering-led teams that want Git, code review, TypeScript types, and CI/CD across environments.
  • Choose App Engine Studio / the platform UI for fast low-code work by admins and citizen developers, or small single-instance apps.
  • They coexist — an SDK-built app still opens in the platform.
Score points: mention that Now.ID['...'] maps to stable sys_ids in src/fluent/generated/keys.ts (never hand-edit; never invent sys_ids), that JS modules are preferred over inlined Now.include scripts, that now-sdk install pushes the build to an instance, and that ServiceNow/sdk-examples plus now-sdk explain are the canonical references.