Parcel 1.0.0

Welcome to the Parcel app - created and maintained by Sascha Wildgrube.

This app was built to help organizing the shipment of medical supplies to the Ukraine during the war that started in February 2022.

It is dedicated to the people of the Ukraine, their resistance and to everyone who invested their time and resources to help.


Manage and track parcel shipments.

Produce PDF shipping labels.


Parcel is NOT an officially supported ServiceNow product.

Parcel does NOT come with any kind of warranty. If you use it, you own it!

System Requirements


  1. Create an account on GitHub - if not done already.
  2. Create a personal access token for your GitHub account.
  3. Paris or later: Add credentials to access GitHub - use "Basic Auth".
  4. Fork the repository
  5. Go to Studio and import the DevTools application from source control.
  6. Fork the repository
  7. Go to Studio and import the Parcel application from source control.
  8. The x_snc_parcel.AppInstall() function must be executed.
    Run the following script as a background script in scope x_snc_parcel:
  9. x_snc_parcel.AppInstall();
  10. Define a default parcel profile.
  11. Configure event options for the default parcel profile.



  • x_snc_parcel.admin

    The Parcel admin can control the installation and setup of the parcel app. The role contains the manager and viewer role.

  • x_snc_parcel.manager

    The user can manage (i.e. modify) parcels, parcel events and parcel event options. The role contains the viewer role.

  • x_snc_parcel.viewer

    The user can view all parcels, but cannot make any changes.

Configuration Options

UI Actions

Script Includes

  • AppGetDependencies

    Retrieves information about the app's dependencies to other apps and required versions.

  • AppGetProperty

    Gets a system property of this application.

  • AppInstall

    This script installs Parcel.

  • AppSetDefaults

    Sets all system properties to default values.

  • AppSetProperty

    Sets a system property of this application.

  • CreateParcel

    Creates a new parcel based on a destination location and a task

  • CreateParcelLabel

    Creates a label for a parcel and stores it as an attachment.

  • CreateParcelLabelsFromTask

    Creates a pdf document containing all labels associated to a task and stores it as an attachment to the task.

  • Debug

    Produces a log output in the application log using the DevTools Debug function.

  • DevTools

    Implements the extension point for DevTools.

  • DevToolsGetFormatConfig

    The DevToolsGetFormatConfig function is called by the DevTools extension point instance class and returns an object with field formatting information.

  • DevToolsGetLinkDirectory

    The DevToolsGetLinkDirectory function is called by the DevTools extension point instance class and returns an extended (or modified) link directory object that serves as the basis for the DevTools Link page.

  • DevToolsGetParentRecord

    The DevToolsGetParentRecord function is called by the DevTools extension point instance class and returns a parent record for the given record if it can be determined.

  • GetCategoriesFromParcels

    Gets the names of all parcel categories associated with one or more parcels identified by their sys ids.

  • GetContactsFromParcels

    Gets contact details of all contacts associated with one or more parcels identified by their sys ids.

  • GetDefaultProfile

    Returns the sys id of the default profile if it exists.

  • GetParcelCountFromTask

    Returns the number of parcels associated to a given task.

  • GetParcelRecord

    Returns a parcel record based on a sys id or a parcel number.

  • GetProfileRecord

    Returns the parcel profile record based on the given sys id.

  • IsActive

    Returns true if the application is active, otherwise false.

  • Log

    Produces a log output in the application log.


Copyright 2022 by Sascha Wildgrube

Licensed under the Apache License, Version 2.0 (the "License")

You may not use Parcel except in compliance with the License.

You may obtain a copy of the License at:

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Release Notes

1.0.0 - 2022-10-07

First baselined version