HR Leave · Australia

App Engine — Creator Workflows / Low-Code

ServiceNow Australia · Custom app · Arabic + English readable · scripts copy/paste ready

App typeCustom
Scopex_786686_hr_leave
sys_idc84db0e8839f0b509f02b0d6feaad3c9
Replace{BASE} = your instance
Instance URLs Application Leave requests Business Rules Studio

App Engine — Creator Workflows / Low-Code

اقرأ أولاً: ../MASTER_ALL_IN_ONE_SUMMARY.md · ../html/MASTER_ALL_IN_ONE_SUMMARY.html
الدليل الشامل: ../MASTER_ALL_IN_ONE.md · ../html/MASTER_ALL_IN_ONE.html
ممارسة الشاشات: ../html/MASTER_PRACTICE_GUIDE_ALL_TOPICS.html
Australia · Scope x_786686_hr_leave

Australia Instance — نسخة أستراليا

Setting Value
Region / Datacenter ServiceNow Australia
Release train Zurich (Sep 2026 EA) · next EA: Brazil
URL base {BASE}
Scope note HR Leave app: x_786686_hr_leave
Guided Setup {BASE}/now/guided-setup

Direct Navigation URLs — روابط التنقل المباشرة

Page / Tool Navigation Path Direct URL Purpose
App Engine Studio All > App Engine > App Engine Studio {BASE}/now/app-engine-studio/home Low-code builder
Workflow Studio All > Process Automation > Workflow Studio {BASE}/now/workflow-studio/home Visual workflows
Mobile Studio All > Mobile Studio {BASE}/now/mobile-studio/home Mobile applets
UI Builder All > Now Experience > UI Builder {BASE}/now/ui-builder Workspace pages
Application Repository All > System Applications > Application Repository {BASE}/sys_repo_application_list.do Internal app store
Tables All > System Definition > Tables {BASE}/sys_db_object_list.do Data model
Service Portal Configurator All > Service Portal > Configurator {BASE}/now/sp-configurator/home Portal builder
App Scan All > App Engine > App Scan {BASE}/now/app-scan/home Quality & security
Delegated Development All > System Applications > Delegated Development {BASE}/sys_delegated_development_list.do Citizen dev roles
Guided Setup App Engine All > Guided Setup {BASE}/now/guided-setup Initial configuration

Platform target: ServiceNow Australia (Sep 2026) · next EA: Brazil
URLs: ../../SERVICENOW_DIRECT_URLS_CATALOG.md · 1-week: ../../SERVICENOW_ONE_WEEK_STUDY_DEPLOY_AUSTRALIA.md
HR Leave: Scope x_786686_hr_leave

App Engine — تطوير منخفض الكود

Comprehensive guide for building custom apps with App Engine Studio, Mobile Studio, Workflow Studio, and Now Assist for Creators (Zurich 2025).

دليل شامل لبناء تطبيقات مخصصة باستخدام App Engine Studio، Mobile Studio، Workflow Studio، و Now Assist للمطورين منخفضي الكود.


§1 — What is App Engine? / ما هو App Engine؟

App Engine is ServiceNow’s low-code/no-code platform for citizen developers and pro developers to build custom applications quickly. It bundles:

1.1 Licensing tiers

Tier Description Use cases
App Engine Standard Base apps, no AI Internal tools, simple workflows
App Engine Plus Adds Process Optimization, UI Builder advanced Department apps
Pro Builders Pro dev + admins Cross-functional apps
Creators (Citizen) Business users with template gallery Personal productivity, simple forms

§2 — Plugin Activation / تفعيل الإضافات

- com.glide.app_engine_studio (AES)
- com.glide.process_automation (PAD/Workflow Studio)
- com.snc.app_engine_management (Admin)
- com.glide.mobile_studio (Mobile Studio)
- com.glide.ui_builder (UI Builder)
- com.glide.now_assist_creator (AI assist)

§3 — App Engine Studio (AES) Walkthrough

3.1 Launching AES

All > App Engine > App Engine Studio (or /now/app-engine-studio). — Open direct

3.2 Three creation paths

Path When to use
Start from blank Maximum control
Start from template Common patterns (Asset request, Approvals, Site visits)
Start with AI (Now Assist) Describe in natural language → AI generates app skeleton

3.3 The 5 building blocks

┌─────────────────────────────────────────────────────────┐
│ 1. DATA ──▶ tables (master, transactional, lookup) │
│ 2. UI ──▶ forms, lists, mobile, portal │
│ 3. LOGIC ──▶ workflows, business rules, scripts │
│ 4. EXPERIENCES ──▶ workspaces, portals, mobile │
│ 5. CONNECTIONS ──▶ integrations to external systems │
└─────────────────────────────────────────────────────────┘

3.4 Worked example: Visitor Management App

Step 1 — Create app

AES > Create App > "Visitor Management" > Scope: x_acme_visitor

Step 2 — Add Data table

Table x_acme_visitor_visit:
- first_name (String)
- last_name (String)
- email (Email)
- host_employee (Reference → sys_user)
- visit_date (Date)
- visit_purpose (Choice: Meeting | Interview | Delivery | Tour | Other)
- badge_number (String, auto-numbered)
- check_in_time (Date/Time)
- check_out_time (Date/Time)
- state (Choice: Pending | Approved | Checked In | Checked Out | Cancelled)

Step 3 — Add UI (form layout)

Form sections: Visitor Info | Visit Details | Check-In/Out

Step 4 — Add Logic (Workflow Studio)

Flow: “Visitor Approval”

Trigger: Visitor record created
Step 1: Send email to host with approve/reject link
Step 2: Wait for response (max 4 hours)
Step 3a (approve): Set state = Approved + generate QR badge
Step 3b (reject): Set state = Cancelled + notify visitor
Step 4: Day-of arrival reminder (email + SMS)

Step 5 — Add Experiences

Step 6 — Add Connections

Step 7 — Publish + share

AES > Publish > Set roles > Add to Application Repository


§4 — Workflow Studio Deep Dive

Workflow Studio = Flow Designer + Decision Builder + Process Automation Designer (PAD).

4.1 Component comparison

Component Best for Example
Flow Designer Background automation, integration Auto-create user from HRIS
Subflow Reusable logic “Send branded email”
Action Atomic step “Look up CMDB CI”
Decision Table Business rules in matrix Tax calculation per region
Decision Builder Visual decision tree Routing per criteria
Process Automation (PAD) User-facing playbooks Onboarding playbook
Robotic Process Automation (RPA Hub) Legacy system automation Screen scrape

4.2 Flow with error handling

[Trigger: Record Created on x_acme_visitor_visit]
 ↓
[Action: Look Up Record — sys_user where email = visitor.email]
 ↓
[If Record Found]
 ↓
 [Action: Send Email — Welcome back]
[Else]
 ↓
 [Action: Create Record on x_acme_guest_user]
 ↓
[Try/Catch]
 ↓
[Action: Door System REST — activate badge]
 ↓
[On Error → Notify Reception via Teams]

4.3 Subflow example

Subflow: NotifyHostMultiChannel
- Inputs: host (User), message (Text), priority (Choice)
- Step 1: Send email
- Step 2: If priority = High → also send Teams DM
- Step 3: If priority = Critical → also call host phone (Twilio)

4.4 Custom Action (Action Designer)

Action: Generate QR Badge
- Inputs: text (String)
- Step 1: Script

(function execute(inputs, outputs) {
 var text = inputs.text;
 // Use QRickit API or generate inline
 var qrUrl = 'https://api.qrserver.com/v1/create-qr-code/?data=' +
 encodeURIComponent(text) + '&size=300x300';
 outputs.qr_url = qrUrl;
 outputs.encoded = text;
})(inputs, outputs);

4.5 Process Automation Designer (PAD) — Playbook

User-facing checklist with lanes for different roles.

Playbook: New Hire Onboarding

Lane Step Trigger Assignee
HR Personal info Day 0 HR Coordinator
IT Provision laptop Day -3 IT
IT Provision accounts Day -1 IT
Manager Welcome meeting Day 1 Manager
Compliance Sign policies Day 1-7 New Hire
Training Orientation Day 1 L&D
Manager 30-day check-in Day 30 Manager

§5 — Mobile Studio

5.1 Architecture

ServiceNow Mobile = native iOS/Android shell + JSON-driven content. You design once, the app renders adaptively.

5.2 Building a screen

Mobile Studio > New App Configuration > Add Applet
- Applet type: List | Form | Map | Calendar | Carousel
- Data source: table, with filters
- Item template: title, subtitle, icon, badge color

5.3 Offline capability

Capability Configuration
Cache tables Mobile App Config → Offline tables list
Sync schedule Every 15 min when online
Conflict resolution Last-writer-wins or manual
Max records 1,000 per table per user

5.4 Mobile-specific features


§6 — UI Builder

6.1 When to choose UI Builder

Need Tool
Pixel-perfect employee/customer portal Service Portal Designer
Native workspace experience for power users UI Builder
Native mobile app Mobile Studio

6.2 UX Theme tokens

{
 "name": "Acme Theme",
 "tokens": {
 "color": {
 "brand": { "primary": "#0066cc", "secondary": "#00a3a3" },
 "neutral": { "100": "#ffffff", "900": "#1a1a1a" }
 },
 "typography": {
 "font_family_sans": "Inter, system-ui, sans-serif",
 "scale": { "xs": "12px", "sm": "14px", "md": "16px", "lg": "20px", "xl": "28px" }
 },
 "spacing": { "1": "4px", "2": "8px", "3": "12px", "4": "16px", "6": "24px", "8": "32px" }
 }
}

6.3 Custom Macroponent

A Macroponent = a reusable UI component built in UI Builder with state, properties, and events.

// Macroponent: AcmeStatCard
// Properties: title (String), value (Number), trend (Number), trendUnit (String)
// Slots: action (optional CTA button)

// Render template (JSX-like)

{{title}}
{{value | format:'number'}}
{{trend}}{{trendUnit}}

§7 — Service Portal Configurator

For lightweight portals (vs. full custom Service Portal):

AES > App > Add Experience > Portal > Configure

Features:
- Brand + logo + theme
- Pages: Home, Catalog, Forms, My Records, KB
- Widgets pre-built
- Branded URL


§8 — Now Assist for Creators (AI)

8.1 What it can generate

AI capability Example prompt
Generate app “Build a fleet vehicle reservation app”
Generate table + fields “Add a table for fuel logs with date, gallons, cost”
Generate Flow “When reservation approved, calendar invite host + driver”
Generate form layout “Lay out the reservation form in 2 columns”
Generate ACL “Drivers see only their reservations”
Generate dashboard “Dashboard for fleet manager: utilization, cost, top drivers”
Suggest improvements “Audit my app for best practices”

8.2 How it works

Now Assist calls a fine-tuned LLM grounded with ServiceNow metadata (table schemas, role catalog, OOTB actions) to generate Update Set artifacts.

// Example: programmatic generation via API
var rm = new sn_ws.RESTMessageV2('NowAssistCreator', 'generateFlow');
rm.setStringParameter('app_scope', 'x_acme_visitor');
rm.setStringParameter('prompt',
 'When visitor created, email host with approval link; on approve, generate QR badge');
var resp = JSON.parse(rm.execute().getBody() || '{}');
gs.info(JSON.stringify(resp.flow_definition));

§9 — Application Repository (Internal Marketplace)

9.1 What it is

Your private marketplace where teams publish and share apps across the org.

9.2 Lifecycle

Develop → Test in pre-prod → Publish to Repo → Version → Deploy to other instances

9.3 Versioning best practice


§17 — Power User Playbook (App Engine)

17.1 Personas

Persona Primary actions
Citizen Developer Build personal/team apps from templates
Department Power User Build dept apps with limited scope
Pro Developer Build cross-functional apps with full code
Platform Architect Govern scopes, review patterns, set guardrails
App Owner (Business) Define requirements, validate, train users
Center of Excellence (CoE) Curate templates, audit apps, publish patterns

17.2 Day-in-Life — Citizen Developer

  1. Open AES → “I want to build” → describe in plain English.
  2. AI proposes table + form + flow.
  3. Adjust fields visually (drag-drop).
  4. Preview in mobile + portal.
  5. Share with 5 colleagues.
  6. Iterate based on feedback.

17.3 Top 15 App Engine Scripts

1. AES app inventory + compliance scanner

var AESComplianceScanner = Class.create();
AESComplianceScanner.prototype = {
 initialize: function {},

/* Scans all citizen-built apps and rates compliance /
scan: function {
var apps = new GlideRecord(‘sys_app’);
apps.addQuery(‘source’, ‘app_engine_studio’);
apps.addActiveQuery();
apps.query();
var results = [];
while (apps.next()) {
var report = this._auditApp(apps.getUniqueValue());
results.push({
app: apps.getValue(‘name’),
scope: apps.getValue(‘scope’),
score: report.score,
issues: report.issues
});
}
return results;
},

_auditApp: function (appSysId) {
var score = 100;
var issues = [];

// Check 1: explicit roles defined
var roles = new GlideAggregate(‘sys_user_role’);
roles.addQuery(‘sys_scope’, appSysId);
roles.addAggregate(‘COUNT’);
roles.query();
if (roles.next() && parseInt(roles.getAggregate(‘COUNT’), 10) === 0) {
score -= 20;
issues.push(‘no_explicit_roles’);
}

// Check 2: ACLs defined
var acls = new GlideAggregate(‘sys_security_acl’);
acls.addQuery(‘sys_scope’, appSysId);
acls.addAggregate(‘COUNT’);
acls.query();
if (acls.next() && parseInt(acls.getAggregate(‘COUNT’), 10) < 3) {
score -= 15;
issues.push(‘insufficient_acls’);
}

// Check 3: ATF tests exist
var atf = new GlideAggregate(‘sys_atf_test’);
atf.addQuery(‘sys_scope’, appSysId);
atf.addAggregate(‘COUNT’);
atf.query();
if (atf.next() && parseInt(atf.getAggregate(‘COUNT’), 10) === 0) {
score -= 25;
issues.push(‘no_atf_tests’);
}

return { score: Math.max(0, score), issues: issues };
},

type: ‘AESComplianceScanner’
};

2. App-level role provisioning

function provisionAppRoles(appScope, roleNames, userSysIds) {
 roleNames.forEach(function (roleName) {
 var roleId = _ensureRole(appScope, roleName);
 userSysIds.forEach(function (userId) {
 var has = new GlideRecord('sys_user_has_role');
 has.addQuery('user', userId);
 has.addQuery('role', roleId);
 has.setLimit(1);
 has.query();
 if (!has.hasNext()) {
 has.initialize();
 has.setValue('user', userId);
 has.setValue('role', roleId);
 has.insert();
 }
 });
 });

function _ensureRole(scope, name) {
var r = new GlideRecord(‘sys_user_role’);
r.addQuery(‘name’, scope + ‘.’ + name);
r.setLimit(1); r.query();
if (r.next()) return r.getUniqueValue();
r.initialize();
r.setValue(‘name’, scope + ‘.’ + name);
r.setValue(‘description’, ‘Auto-provisioned role for ’ + scope);
return r.insert();
}
}

3. App migration between scopes — copy artifacts to new scope while remapping refs.

4. Mass-update App Properties — for env-specific properties (DEV/UAT/PROD).

5. App health check API — returns last-modified, ATF coverage, error count, performance.

6. Audit log: who edited what in AES — Read sys_metadata_versioning filtered by app scope.

7. Citizen dev sandbox provisioning — create sub-scope per citizen dev.

8. Template generator — convert existing app into a template.

9. App engagement analytics — track usage per app from PA.

10. Cross-app dependency mapping — find which apps depend on which scopes/tables.

11-15. Quick recipes

# Pattern
11 Auto-add scoped app to Application Repo after passing ATF
12 Send weekly digest to CoE about new apps
13 Deprecation notice (apps unused 90+ days)
14 Component reusability tracker
15 License usage cost per app

17.4 Common Templates

Template Use case
Asset Request Internal asset booking (laptops, parking, rooms)
Approval Workflow Generic approvals with N levels
Site Visit Visitor mgmt, escort, badges
Inspection Field checklist with photos, signatures
Survey Custom surveys w/ scoring
Resource Booking Conference rooms, equipment
Event Registration Internal events / training
Project Tracker Lightweight project mgmt
Issue Tracker Bug tracking
Idea Box Suggestion box w/ voting

§18 — From-Scratch Implementation (Day 0 → Day 30)

18.1 Strategy (Day 0)

18.2 Day-by-day

Day 1 — Plugin activation + AES navigation tour

Day 2-3 — CoE formation
- Charter
- Governance model (review board)
- Standards doc (naming, error handling, accessibility)
- Template library seed

Day 4-5 — Sandbox per citizen dev
- Dev instance with app_creator role
- Sub-scope per user (or per team)
- Update Set discipline

Day 6-7 — Curate templates (10 templates from §17.4)

Day 8-10 — Citizen Dev Wave 1 training
- 2-day workshop
- Build sample app together
- Q&A office hours

Day 11-15 — Wave 1 app development (3 apps)
- Daily 30-min stand-up
- CoE mentor pairing
- Code review against guardrails

Day 16-18 — Wave 1 deployment
- ATF coverage check (target ≥ 50% for citizen apps)
- Security review
- Move to UAT
- UAT scenarios

Day 19-20 — Wave 1 go-live + retro

Day 21-24 — Wave 2 starts (5 more apps)

Day 25 — Application Repository launch
- Publish wave 1 apps
- Versioning
- Catalog page

Day 26 — Mobile + Portal experiences for top apps

Day 27 — Now Assist for Creators enabled
- Train citizen devs on AI-assisted creation

Day 28 — Analytics dashboard for CoE
- App count, usage, error rate, engagement

Day 29 — Comms + scale-out plan
- Internal newsletter
- Showcase wave 1 apps
- Open call for wave 2 nominations

Day 30 — Operating cadence
- Monthly CoE board
- Quarterly hackathon
- Annual citizen dev awards

18.3 KPIs Month 1

KPI Target
Citizen devs trained ≥ 10
Apps launched ≥ 3
Apps in pipeline ≥ 5
App engagement (DAU) ≥ 50
ATF coverage average ≥ 50%
CoE office hour attendance ≥ 60% of citizens
Time-to-first-app (per dev) ≤ 5 days

§19 — Sign-off Checklist


§19 — CAD / App Engine / Citizen Dev Exam & Z-to-Hero Feature Labs (20 inline Q)

19.1 Z-to-Hero Feature Labs (10 labs)

Lab Feature
L1 App Engine Studio (AES): create new app from scratch
L2 Table + Forms designed in AES
L3 Workflow Studio: build approval flow
L4 Mobile Studio: applet for the new app
L5 Service Portal Configurator widget
L6 Now Assist for Creators: generate flow from prompt
L7 Application Repository publish
L8 Citizen Dev role assignment (Delegated Dev)
L9 App permissions + ACLs auto-generation
L10 App scan: best-practice + security check

19.2 20 App Engine / CAD Practice Questions

  1. AES URL: A. /now/app-engine-studio/home | B. /$studio.do | C. /aes.do | D. None — Answer: A
  2. AES creates apps in scope: A. Scoped (auto x_) | B. Global | C. Random | D. None — Answer: A*
  3. Workflow Studio is: A. Modern flow engine (Process Automation Designer) | B. Legacy Workflow | C. Flow Designer alone | D. None — Answer: A
  4. Mobile Studio: A. Visual builder for Now Mobile applets | B. Native iOS/Android code | C. None | D. Random — Answer: A
  5. Service Portal Configurator: A. Visual page builder w/o code | B. SCSS editor | C. Random | D. None — Answer: A
  6. Now Assist for Creators: A. AI prompt → suggest flows/tables/widgets | B. None | C. Random | D. Manual — Answer: A
  7. Citizen Dev role: A. x_.user_dev or platform delegated_developer | B. admin | C. Random | D. None — Answer: A*
  8. App Repo location: A. ServiceNow Store + internal Application Repository | B. GitHub only | C. Random | D. None — Answer: A
  9. App template: A. Pre-built starter (Issue Tracker, Approval Request, etc.) | B. None | C. Random | D. Manual — Answer: A
  10. App permissions: A. Roles auto-created on table create (e.g., x_.user, x_.admin) | B. Manual only | C. Random | D. None — Answer: A
  11. App scan results categories: A. Code quality, security, performance, best practice | B. Just errors | C. Random | D. None — Answer: A
  12. AES vs Classic Studio: A. AES is no-code/low-code first; Classic Studio for full dev | B. Same | C. Random | D. None — Answer: A
  13. Decision Table in Workflow Studio: A. Data-driven rules as table rows | B. Just decision tree | C. Random | D. None — Answer: A
  14. Subflow: A. Reusable flow called from another | B. Same as Flow | C. Random | D. None — Answer: A
  15. Custom Action: A. Reusable action with inputs/outputs/script | B. Just script | C. Random | D. None — Answer: A
  16. Spoke: A. Bundle of actions for a 3rd-party (Slack, Jira, etc.) | B. Random | C. Just one action | D. None — Answer: A
  17. App publishing types: A. Internal (Application Repository) + Store (ServiceNow Marketplace) | B. One only | C. Random | D. None — Answer: A
  18. App version mgmt: A. Application versions tracked + dependency mgmt | B. Just one version | C. Random | D. None — Answer: A
  19. App testing: A. ATF + manual + app scan | B. Manual only | C. Random | D. None — Answer: A
  20. CAD certification scope: A. Tables, scripts, BR, CS, ACL, SP widgets, Catalog, Flow, ATF, Update Sets | B. Just tables | C. Random | D. None — Answer: A

19.3 What “Hero” looks like for App Engine

Owns Citizen Dev CoE. Publishes templates. Trains business builders. Reviews app submissions for quality + security. Drives 50+ apps to production in first year via App Repository. Passes CAD with ≥85%.


Hands-on Labs — مختبرات عملية

Step-by-step labs for PDI / Australia instance. Replace {BASE} with your instance URL.
مختبرات خطوة بخطوة — استبدل {BASE} برابط نسختك.

  1. Lab 1 — New scoped app / تطبيق scoped — Create app in {BASE}/now/app-engine-studio/home.

  2. Lab 2 — Table & form / جدول ونموذج — Add table with fields; generate roles automatically.

  3. Lab 3 — Workflow Studio flow / Flow — Build approval flow at {BASE}/now/workflow-studio/home.

  4. Lab 4 — UI Builder page / صفحة UI — Create workspace list page at {BASE}/now/ui-builder.

  5. Lab 5 — Mobile applet / تطبيق جوال — Build applet in {BASE}/now/mobile-studio/home.

  6. Lab 6 — App Scan / فحص التطبيق — Run scan at {BASE}/now/app-scan/home; fix findings.

  7. Lab 7 — Publish to Repository / نشر — Publish version to {BASE}/sys_repo_application_list.do.

  8. Lab 8 — Delegated dev / مطور موكل — Assign citizen dev role via {BASE}/sys_delegated_development_list.do.


Best Practices — أفضل الممارسات

Area Best practice (EN) أفضل ممارسة (AR)
Scope Always scoped apps (x_*) — avoid global tables تطبيقات scoped دائمًا
Security Run App Scan before every publish App Scan قبل كل نشر
Citizen dev CoE governs templates and review CoE يحكم القوالب والمراجعة
Upgrade Track app versions and dependencies تتبع الإصدارات والتبعيات

Deployment Checklist — قائمة النشر

# Task (EN) المهمة (AR) Verify
1 App Engine / AES licensed ترخيص AES Active
2 Citizen Dev CoE & roles CoE + أدوار Delegated dev set
3 App templates published قوالب Builders use templates
4 App Scan policy سياسة App Scan No critical findings
5 Application Repository Repository Apps installable
6 Workflow Studio standards معايير Flow Reusable subflows
7 Mobile profiles (if needed) Mobile Applet works
8 Production promotion process نشر إنتاج Update Set / pipeline

Direct URLs Quick Reference

Page Navigation URL
App Engine Studio All > App Engine {BASE}/now/app-engine-studio/home
Workflow Studio All > Process Automation {BASE}/now/workflow-studio/home
Mobile Studio All > Mobile Studio {BASE}/now/mobile-studio/home
UI Builder All > UI Builder {BASE}/now/ui-builder
App Repository All > Applications {BASE}/sys_repo_application_list.do
Tables All > System Definition {BASE}/sys_db_object_list.do
SP Configurator All > Service Portal {BASE}/now/sp-configurator/home
App Scan All > App Engine {BASE}/now/app-scan/home
Delegated Development All > Applications {BASE}/sys_delegated_development_list.do
Guided Setup All > Guided Setup {BASE}/now/guided-setup