Create ServiceNow Table Record

Action ID: servicenow:now:table:createRecord
NPM Package:

@backstage-community/plugin-scaffolder-backend-module-servicenow

Description

Inserts one record in the specified table. Multiple record insertion is not supported by this method

Input Schema

PropertyTypeDescriptionRequired
tableNamestring-
requestBodyany-
sysparmViewstring-
sysparmFieldsarray-
sysparmDisplayValuestring-
sysparmInputDisplayValueboolean-
sysparmExcludeReferenceLinkboolean-
sysparmSuppressAutoSysFieldboolean-

Output Schema

No output schema defined for this action.

Usage Examples

Create an Incident with selected response fields

Creates a new Incident in ServiceNow and returns only key fields. Use this when you want a minimal response payload to pass to later steps in your pipeline after fetch:template.

Copy
steps:
  - id: create-incident
    action: servicenow:now:table:createRecord
    input:
      tableName: incident
      requestBody:
        short_description: "Provision service ${{
          parameters.serviceName
        }} for team ${{
          parameters.owner
        }}"
        description: "Requested by ${{
          parameters.requesterEmail
        }}. Repo: ${{
          parameters.repoUrl
        }}"
        urgency: "2"
        impact: "2"
        category: "software"
        caller_id: "${{ parameters.requesterSysId }}"
        assignment_group: "${{ parameters.assignmentGroupSysId }}"
        contact_type: "self-service"
      sysparmFields:
        - number
        - sys_id
        - short_description
        - state
      sysparmDisplayValue: "false"
      sysparmExcludeReferenceLink: true

Create a Change Request using display values

Creates a Normal Change Request and allows passing human-readable reference values. Use this when your template collects names rather than sys_ids and you want the response with display values.

Copy
steps:
  - id: create-change-request
    action: servicenow:now:table:createRecord
    input:
      tableName: change_request
      requestBody:
        short_description: "Deploy ${{
          parameters.serviceName
        }} v${{ parameters.version }} to staging"
        description: "Change window ${{
          parameters.changeWindow
        }}. Requested by ${{
          parameters.requesterName
        }}"
        type: "normal"
        category: "software"
        risk: "3"
        assignment_group: "${{ parameters.assignmentGroupName }}"
        requested_by: "${{ parameters.requesterName }}"
        justification: "Automated deployment via Backstage scaffold"
      sysparmInputDisplayValue: true
      sysparmDisplayValue: "true"
      sysparmFields:
        - number
        - sys_id
        - short_description
        - state
        - type
        - assignment_group

Create a custom onboarding request record

Inserts a record into a custom table for service onboarding. Use this to track onboarding metadata alongside repository creation and catalog registration steps.

Copy
steps:
  - id: create-onboarding-request
    action: servicenow:now:table:createRecord
    input:
      tableName: x_acme_onboarding_request
      requestBody:
        u_service_name: "${{ parameters.serviceName }}"
        u_owner_email: "${{ parameters.ownerEmail }}"
        u_team: "${{ parameters.owner }}"
        u_environment: "${{ parameters.environment }}"
        u_repo_url: "${{ parameters.repoUrl }}"
        u_catalog_entity_ref: "${{ parameters.catalogEntityRef }}"
        u_notes: "Bootstrap created by Backstage"
      sysparmDisplayValue: "all"
      sysparmExcludeReferenceLink: true
      sysparmView: "sp"

Create a CMDB service record with custom view and suppressed sys fields

Creates a CI Service entry in the CMDB and returns values using the Service Portal view. Use this when registering a new microservice in CMDB during scaffolding.

Copy
steps:
  - id: create-cmdb-ci-service
    action: servicenow:now:table:createRecord
    input:
      tableName: cmdb_ci_service
      requestBody:
        name: "${{ parameters.serviceName }}"
        description: "Business service for ${{
          parameters.serviceName
        }} owned by ${{
          parameters.owner
        }}"
        used_for: "production"
        owned_by: "${{ parameters.ownerUserSysId }}"
        support_group: "${{ parameters.supportGroupSysId }}"
      sysparmDisplayValue: "true"
      sysparmFields:
        - sys_id
        - name
        - owned_by
        - support_group
      sysparmView: "sp"
      sysparmSuppressAutoSysField: true

Create a Problem record with strict sys_id response

Creates a Problem record to track recurring issues discovered during provisioning. Use this when downstream steps need sys_ids for precise linkage.

Copy
steps:
  - id: create-problem
    action: servicenow:now:table:createRecord
    input:
      tableName: problem
      requestBody:
        short_description: "Investigate flaky pipeline for ${{
          parameters.serviceName
        }}"
        description: "Observed failures in CI pipeline during scaffold"
        impact: "2"
        urgency: "2"
        priority: "2"
        assignment_group: "${{ parameters.assignmentGroupSysId }}"
        watch_list: "${{ parameters.watchListSysIds }}"
      sysparmFields:
        - number
        - sys_id
        - short_description
        - priority
      sysparmDisplayValue: "false"
      sysparmExcludeReferenceLink: true