Journal field type

  • 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 Journal field type

    ServiceNow provides three types of journal fields—journal,journalinput, andjournallist—each serving different purposes for capturing and displaying record-related notes and comments within forms and notifications. Understanding these types helps you manage how information is entered, stored, and displayed for effective communication and record-keeping.

    Show full answer Show less

    Journal Field Types and Their Uses

    • journal: Allows users to input and store multiple entries, displaying all combined inputs below the input box. These entries appear both in the activity stream on the form and in list views, making it useful for ongoing commentary visible to many users.
    • journalinput: Permits input and storage of entries but does not display previous inputs in the activity stream or list view. Entries are only visible on the associated record, ideal for notes that should not clutter the activity stream.
    • journallist: Does not accept input but displays combined contents of one or more related journal fields in chronological order. This field type shows entries in a separate block rather than the activity stream, useful for consolidated viewing of multiple journal inputs.

    Managing Journal Entries in Notifications

    Administrators can control how many journal entries are included in email notifications using the system property glide.email.journal.lines. Setting this integer property determines the number of journal entries (such as Additional comments or Work notes) that are sent with notification emails. A value of -1 includes all entries, while the default value is 3.

    Working with Journal Fields in Scripts

    To process journal field entries programmatically, you can retrieve all entries as a string and split them into an array for iteration. For example, retrieving all work notes entries and iterating through each:

    var notes = current.worknotes.getJournalEntry(-1);var na = notes.split("\n\n");for (var i = 0; i < na.length; i++) { gs.print(na[i]);}

    Note that the setValue() method is not supported for journal fields. Instead, assign values directly to the journal field property in a GlideRecord object before updating the record, as shown:

    var gr = new GlideRecord('incident');gr.addQuery('priority', 1);var qc = gr.addQuery('state', 1);qc.addOrCondition('state', 2);gr.query();while(gr.next()) { gs.print(gr.number); gr.worknotes = "This is a high-priority incident. Please prioritize."; gr.update();}

    Practical Benefits for ServiceNow Customers

    • Choose the appropriate journal field type to control visibility and input behavior for record comments and work notes.
    • Optimize notification content by limiting journal entries included in emails, reducing noise while ensuring important updates are communicated.
    • Leverage scripting techniques to programmatically read and update journal fields, enabling automation of comments and notes based on record conditions.

    There are three types of journal field: journal, journal_list, and journal_input.

    Table 1. Journal field types
    Journal field types Description
    journal Allow and store input, and display the combined inputs below the input box. Journal fields display in the activity stream in the form and in the list view.
    journal_input Allow and store input, but do not display the combined inputs. Journal input fields only display with the record they are associated with, so they do not display in the activity stream on the list view.
    journal_list Do not allow or store input; they merely display the contents of other Journal fields upon which the journal_list field is dependent. If a journal_list field is dependent on more than one Journal field, it will chronologically interweave those fields' inputs. The journal_list field does not display content within the activity stream, but rather in a separate block.
    Figure 1. Journal fields on a form
    Journal field types

    The example image contains the three available journal field types. The first is a journal field, with its inputs displayed below the field. The second is a journal input field, which does not show its previous inputs. The third is Journal list field, which is configured to show the input from the journal input field above it.

    Restricting journal entries sent in a notification

    Administrators can control the number of journal entries notifications include with the following system property.

    Property Label Description
    glide.email.journal.lines Number of journal entries (Additional comments, Work notes, etc.) included in email notifications (-1 means all).

    Specifies the number of entries from a journal field (such as Additional comments and Work notes) included in email notifications. A value of -1 includes all journal entries.

    • Type: integer
    • Default value: 3
    • Location: System Properties > Email

    Code for getting the contents of a journal field into an array

    To put the contents of a journal field into an array so that you can iterate through each entry, you can use the code in this page.

    var notes = current.work_notes.getJournalEntry(-1);
    //gets all journal entries as a string where each entry is delimited by '\n\n'
    var na = notes.split("\n\n");
    
    //stores each entry into an array of strings
     for (var i = 0; i < na.length; i++)                 
      gs.print(na[i]);

    Journal field script values

    The setValue() method is not supported for journal fields. Instead, assign values in script as in the following example.

    var now_GR = new GlideRecord('incident');
     
    //query priority 1 incidents in the state of either 'new' or 'active'.
    gr.addQuery('priority', 1);
    var gc = gr.addQuery('state', 1);
    gc.addOrCondition('state', 2);
    gr.query();
     
    while(gr.next())
    {
     
    //print a list of the incident numbers updated
    gs.print(gr.number);
     
    //add an entry to the 'work notes' journal field for each incident
    gr.work_notes = "This is a high-priority incident. Please prioritize.";
    gr.update();
    }