Input workflow activity

  • Release version: Yokohama
  • Updated January 30, 2025
  • 2 minutes to read
  • Summarize
    Summarized using AI
    This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.

    Summary of Input workflow activity

    The Input workflow activity in ServiceNow’s Notify module enables the creation of interactive phone menus by presenting callers with a list of options. Callers can respond by entering digits on their phone keypad, allowing automated navigation through voice menus.

    Show full answer Show less

    Input Variables

    These variables control the behavior of the phone menu:

    • Number of digits: Sets the maximum digits the caller can enter; callers may enter fewer digits and then press the Finish key to complete their choice.
    • Finish key: Defines the key the caller presses to indicate they have finished entering their selection.
    • Timeout (in seconds): Specifies how long to wait before automatically closing the menu if no input is received.
    • Advanced option: When selected, allows the use of a custom JavaScript script to dynamically build the phone menu instead of using default activity conditions.
    • Script: Defines the JavaScript object structure that specifies the phone menu options, using either URLs to audio files (play attribute) or text-to-speech strings (speak attribute) with language codes. Additional custom data can also be included for each option.

    Menu Options and Conditions

    Menu options correspond to workflow conditions that define possible caller responses. Each condition’s name is read aloud to the caller and can be localized by prefixing with a language code (e.g., fr-CA:).

    • Conditions must be defined to create the menu options; the Input activity does not include default conditions.
    • Transitions depend on the digits entered by the caller, evaluated using expressions like parseInt(workflow.scratchpad.digits) == <expected digit>.
    • An error condition can be configured to handle invalid script outputs or empty messages.

    Scratchpad Usage

    The activity stores key data in the workflow scratchpad for persistence and access by subsequent activities:

    • workflow.scratchpad.digits: Stores the digits entered by the caller as a string.
    • workflow.scratchpad.menu<activity name>: When using the advanced script, stores the entire menu object, allowing later activities to reference the caller’s selection and any associated custom data.

    Practical Value for ServiceNow Customers

    This activity empowers customers to build flexible, multilingual phone menus within ServiceNow workflows, improving automated caller interaction without manual intervention. By leveraging either predefined conditions or custom scripts, customers can tailor menus to complex scenarios and capture caller input efficiently for downstream processing in their service workflows.

    The Input activity creates a phone menu by presenting a list of options on a Notify call.

    Input Variables

    Input variables determine the initial behavior of the activity.

    Table 1. Input Variables
    Variable Description
    Number of digits Specify the maximum number of digits the caller can enter. A caller can enter fewer digits than the maximum and press the Finish key to complete the entry.
    Finish key Specify the key a caller can press on their phone when finished selecting a menu option.
    Timeout (in seconds) Specify the amount of time to wait before closing the menu automatically when the caller does not select a menu option.
    Advanced Select this check box to use a script to build the phone menu, instead of using the activity conditions.
    Script Define the script to build the phone menu. The script must specify an answer variable as a JavaScript object with the following format:
     answer = {
      “1": {
          “play”: “https://some_url.com/options/one.mp3“,
          “myCustomData”: “some data here”
      },
      “2”: {
          “play”: “https://some_url.com/options/two.mp3”,
          “myCustomData”: “some other data here”
      },
    “3”: {
          “speak”: “type 3 to speak to a representative”,
          “language”: “en-US”,
          “myCustomData”: “some more data here”
      }
    };

    The script may specify either a text-to-speech string and language code using the speak attribute or URL of the music to be played using the play attribute. You can also add optional attributes to store related information, such as myCustomData in the example above.

    Note:
    The script object continues to support say attribute for backward compatibility.

    Conditions

    The conditions determine the transition that comes after this activity.

    The input activity does not specify any conditions by default. You must define conditions to build the phone menu. Each condition is one option on the phone menu. Notify reads the text from each condition Name to the caller, up to 100 characters per condition.

    You can specify a language for each condition by prefixing the message with the language code, in the format xx-XX:<Message>. For example, add fr-CA: for Canadian French. Available languages are stored on the Notify Language [notify_language] table.

    The condition that the activity transitions through depends on the digits entered by the caller. Set the condition Condition value to parseInt(workflow.scratchpad.digits) == <expected digits>. For example, to transition through a condition when the caller presses the number 3, set the Condition to parseInt(workflow.scratchpad.digits) == 3.

    You can add an error condition to this activity. The activity transitions through the error condition if the advanced script returns an invalid value, or if the text to say for a condition is empty.

    Scratchpad Entries

    The activity uses the workflow scratchpad to write persistent values.

    Table 2. Values written to scratchpad
    Entry Description
    workflow.scratchpad.digits The digits entered by the caller, as a string.
    workflow.scratchpad.menu<activity name> The entire answer variable, if using the advanced script option. You can access this menu from other activities after this activity successfully executes.
    For example, if the activity name is choices, you can access values from the menu using
    var previousActivity = "choices";
    var choicesMenu = workflow.scratchpad.menu[previousActivity];
    var menuItem = choicesMenu[workflow.scratchpad.digits];  // Selects the menu item based on the caller's input.
    var selectedValue = menuItem.myCustomData; //get the custom data for the selected menu item.