Middleware

Ellucian Banner to ServiceNow ITSM Identity and Incident Sync

BNS Ellucian Banner ──▶ ServiceNow

A middleware layer syncing Ellucian Banner student and employee identities to ServiceNow ITSM user provisioning and bidirectional ITSM ticket management.

TypeMiddleware
Indicative timeline4–8 weeks
ComplexityHigh
DeliveryFixed-scope
  • Eliminate manual ServiceNow user provisioning from Banner HR and student tables via automated SCIM-style provisioning
  • Keep ServiceNow CMDB current with student enrollment status and department changes for accurate asset ownership
  • Enable bidirectional ITSM ticket sync so Banner-linked incidents surface in ServiceNow without duplicate entry
banner servicenow itsm identity provisioning cmdb middleware elt student system it service management
How it works

This middleware integration connects Ellucian Banner to ServiceNow, automating identity provisioning from Banner's HR (NBAJOBS, NBBESTRUN) and student (SPRIDEN, SGASTDN) tables into ServiceNow's user and CMDB models while syncing ITSM incidents bidirectionally.

The primary challenge is that Banner uses a flat, non-normalized table structure with cryptic column names and no native REST or SCIM interface, while ServiceNow expects relational user profiles with group memberships and CI ownership tied to organizational hierarchies.

The middleware layer—built on MuleSoft, Dell Boomi, or SnapLogic—must perform complex field mapping, enrollment-status-to-role translation, and deduplication logic to prevent duplicate user creation when students also appear in Banner's employee tables.

Free reference snippet

Yours to use

A working piece from this integration — no sign-up. The full build handles the edge cases, safeguards, and cutover.

/* Banner SIS → ServiceNow Identity Sync Mapping */
/* Middleware transform (Banner Oracle → ServiceNow REST) */

/* Source: Banner SPRIDEN (person identity) + SGBSTDN (student status) */
SELECT
  p.spriden_pidm          AS banner_pidm,
  p.spriden_soundex_last_name,
  TRIM(p.spriden_nation_code) AS nation,
  p.spriden_orig_reg_ind
FROM spriden p
WHERE p.spriden_change_ind IS NULL;

/* Output payload to POST /api/now/table/sys_user */
{
  "user_name": "${banner_pidm}",
  "user_id":   "${banner_pidm}",
  "first_name": "${spriden_first_name}",
  "last_name":  "${spriden_last_name}",
  "email":      "${spriden_email}",
  "title":       "${sgbstndn_stst_code}",  /* Banner student status code */
  "department": "${tbbglvl_leve_code}",
  "source":     "Banner SIS",
  "u_banner_pidm": "${banner_pidm}",       /* custom ref field */
  "u_student_status": "${sgbstdn_stst_code}"  /* mapping: AC=active */
}

/* Banner student status → ServiceNow role mapping */
AC → student         | UGRD → undergrad_student
GR → graduate_student | MED → medical_student

Implementation pathway

Step by step

How we'd take this from discovery to a production-safe cutover — the phases, the canonical mapping, and the edge cases that bite.

This integration synchronizes Ellucian Banner identities (students and employees) to ServiceNow ITSM for automated user provisioning and manages bidirectional incident lifecycle data. The middleware (recommended: MuleSoft or Boomi) sits between Banner's Oracle database and ServiceNow's REST APIs, handling transformation, deduplication, and error recovery.

Implementation Phases

  1. Discovery & Requirements Gathering — Interview Banner functional analysts and ServiceNow admins; document source tables (SPRIDEN, SPBPERS, BANSAPER), target tables (sys_user, incident), and integration triggers. Confirm Banner environment (production vs. test) access, Oracle wallet credentials for middleware, and ServiceNow OAuth2 app registration scope.
  2. Architecture Design — Define integration topology: middleware extracts from Banner via scheduled SQL queries (or CDC via Oracle GoldenGate), transforms data, then calls ServiceNow REST POST/PATCH. For bidirectional incidents, configure ServiceNow outbound REST webhooks (or Flow Designer) to POST ticket changes back to a middleware endpoint that writes to Banner via PL/SQL packages. Document retry queues and dead-letter handling.
  3. Development — Identity Sync — Build Banner extraction connector using parameterized SQL: SELECT spriden_pidm, spriden_surname, spriden_first_name, spbpers_email, stvstyp_code FROM spriden JOIN spbpers ON spriden_pidm = spbpers_pidm WHERE spriden_entity_ind = 'PERSON'. Map to sys_user payload; use u_banner_pidm as correlation key. Implement upsert logic (insert if not exists, update if sys_updated_on changed).
  4. Development — Incident Bidirectional Sync — Configure ServiceNow Integration Hub or scripted REST API to POST incident changes (create, state change, close) to middleware endpoint. Middleware maps ServiceNow number, state, and short_description to Banner's ticket tracking table (typically custom: GLBSVC_TICKETS). Ensure idempotency by storing number in Banner with a unique constraint.
  5. Testing — Execute unit tests for each transform map; perform integration tests in a non-production ServiceNow instance using Banner test data. Validate 50 concurrent user provisioning scenarios and incident round-trip latency (target: <5 min end-to-end). Test deactivation flows when STVSTYP changes to 'W' (withdrawn).
  6. Staging Validation & Data Reconciliation — Run parallel sync for 2 weeks; compare Banner record counts against sys_user counts. Identify orphaned ServiceNow users (Banner PIDM not found) and resolve. Validate incident mapping completeness (no dropped state transitions).
  7. Cutover — Execute blue-green switch: disable legacy manual provisioning, enable middleware scheduler at low-traffic window (weekend). Monitor first 48 hours closely; retain rollback capability by keeping Banner extraction logs for manual replay.

Field Mapping: Banner → ServiceNow User Provisioning

Banner FieldBanner TableServiceNow FieldServiceNow TableNotes
spriden_pidmSPRIDENu_banner_pidmsys_userCustom correlation key; indexed
spriden_surnameSPRIDENlast_namesys_userDirect map
spriden_first_nameSPRIDENfirst_namesys_userDirect map
spbpers_emailSPBPERSemailsys_userPrefer spbpers_email over goraduid_email_addr
stvstyp_codeSTVSTYP/FTVSSTUu_student_type + rolesys_userMap to ServiceNow groups: Student, Faculty, Staff
baninst1.employee_statusBANSAPERactivesys_userActive if = 'A', inactive if = 'T' or 'R'
nbipnme_pref_first_nameNBIPNMEmiddle_namesys_userOptional; join via PIDM

Edge Cases

  • Duplicate PIDM — Banner sometimes holds multiple spriden rows per PIDM (history/alias records). Filter by spriden_user = current user indicator or spriden_add_date to avoid creating duplicate sys_user entries.
  • Name Changes Without PIDM Change — If a student legally changes their name in Banner, the middleware must detect the surname change and update sys_user.last_name, not create a new user.
  • Hyphenated Email Domains — Banner may store emails without normalization (uppercase, extra spaces). Middleware must TRIM(LOWER()) before writing to sys_user.email to avoid ServiceNow uniqueness violations.
  • Terminated Employees Re-hired — When bansaper.employee_status flips from 'T' back to 'A', middleware must reactivate the existing sys_user record rather than creating a duplicate, using the same PIDM correlation key.
  • ServiceNow Instance Clone to Test — Integration endpoint URLs will differ between Production and Test instances; middleware config must be environment-specific to avoid writing incidents to wrong ServiceNow instance.
  • Incident Close Race Condition — If Banner closes a ticket simultaneously with ServiceNow, the bidirectional sync may produce conflicting state writes. Implement optimistic locking using incident.sys_updated_on timestamp comparison before writing.

Cutover

The cutover must be fully reversible for at least 72 hours post-go-live. Maintain Banner extraction log files (or database audit table) for the duration of hypercare. Before switching, run a reconciliation report: total Banner PIDM count vs. total sys_user records with populated u_banner_pidm. Any mismatch indicates missed upserts requiring manual catch-up via the middleware replay queue. Disable any legacy manual user-provisioning workflows at the moment of cutover to prevent dual writes. Designate a rollback trigger: if error rate exceeds 1% or latency exceeds 15 minutes in the first hour, halt the scheduler and restore Banner-only provisioning while investigating.

What a full implementation includes

  • Canonical mapping between Ellucian Banner and ServiceNow, to the field level.
  • The edge cases that corrupt data at cutover — identified, handled, and tested.
  • Production-safe rollout: reversible, phased, with reconciliation checks.
  • Handover documentation your team can operate from.

Build this against your estate

Reading the reference is free. Delivering it under liability — with the safeguards that keep production running through the cutover — is what we do.

$15,000–$45,000
Contact us