Thank you for your feedback.
Form temporarily unavailable. Please try again or contact docfeedback@servicenow.com to submit your comments.
Versions
  • London
  • Kingston
  • Jakarta
  • Istanbul
  • Helsinki
  • Geneva
  • Store
Close

Inbound email action examples

Inbound email action examples

Several examples of inbound email actions are available to help you build your own inbound email actions.

Inbound email action example: handling email replies

This example shows you how to set up inbound email actions to handle replies that users send back to the instance.

Before you begin

Role required: admin

About this task

The inbound email action parses the email and responds using a script. By default, an email received by the instance creates a new incident, and the body of the email is added to the Additional Comments text box. More refined Inbound Email Actions can create incident tickets with more data, thus saving the incident management team valuable time.

Normally, when a user responds to an email sent by the instance, the inbound email action matches the watermark to an existing incident, and updates the incident rather than creating a new record. However, if the watermark is missing, this inbound email action attempts to match a reply to the original incident.

Procedure

  1. Navigate to System Policy > Inbound Actions and click New.
  2. Populate the form as follows:
    Table 1. Inbound action field values
    Field Value
    Name Update Incident
    Type Reply
    Target table Incident [incident]
  3. In Script, enter this code.
    gs.include('validators');
     
    //Note: current.caller_id and current.opened_by are already set to the first UserID that matches the From: email address
     
    if (current.getTableName() == "incident") {
      current.comments = "reply from: " + email.origemail + "\n\n" + email.body_text;
     
      if (email.body.assign != undefined)
        current.assigned_to = email.body.assign;
     
      if (email.body.priority != undefined && isNumeric(email.body.priority))
        current.priority = email.body.priority;
     
      if (email.body.category != undefined)
        current.category = email.body.category;
     
      if (email.body.short_description != undefined)
        current.short_description = email.body.short_description;
     
      current.update();
    }

Inbound email action example: logging a problem

This example shows you how to set up inbound email actions to a create a problem record.

Before you begin

Role required: admin

About this task

Inbound email actions allow users to log or update incidents on an instance via email. The inbound email action parses the email and responds using a script.

Procedure

  1. Navigate to System Policy > Inbound Actions and click New.
  2. Populate the form as follows:
    Field Entry
    Name Log Problem
    Type New
    Active True
    Target Table Problem [problem]
    Condition
    email.subject.indexOf("Problem: ") == 0
    Script
    current.description = email.body_text;
      current.short_description = email.subject.toString().substring(9);
     
      current.assignment_group.setDisplayValue("Development");
     
      if (email.body.assign != undefined)
        current.assigned_to = email.body.assign;
     
      current.insert();

Inbound email action example: requesting a change

This example shows you how to set up inbound email actions to create a change request record.

Before you begin

Role required: admin

About this task

Inbound Email Actions allow users to log or update incidents on an instance via email. The inbound email action parses the email and responds using a script.

Procedure

  1. Navigate to System Policy > Inbound Actions and click New.
  2. Populate the form as follows:
    Field Entry
    Name Request Change
    Type New
    Active True
    Target Table Change Request [change_request]
    Condition
    email.subject.indexOf("Change Request: ") == 0
    Script
    current.comments = email.body_text;
      current.short_description = email.subject;
     
      current.notify = 2;
     
      if (email.body_text.assign != undefined)
        current.assigned_to = email.body_text.assign;
     
      if (email.body_text.priority != undefined)
        current.priority = email.body_text.priority;
     
      if (email.body_text.category != undefined)
        current.category = email.body_text.category;
     
      current.insert();

Inbound email action example: updating an incident

Inbound Email Actions allow users to log or update incidents on an instance via email. The Inbound Email Action parses the email and responds using a script.

Before you begin

Role required: admin

About this task

By default, an email received by the instance creates a new incident, sets the Contact type field to Email, and adds the body of the email to the Additional Comments field. More refined Inbound Email Actions can create incident tickets with more data, thus saving the incident management team valuable time.

The following Inbound Email Action applies to email replies. Normally, when a user responds to an email sent by the instance, the inbound email action will match the watermark to an existing incident, and update the incident rather than creating a new record. However, if the watermark is missing, this Inbound Email Action will attempt to match a reply to the original incident.

To define an inbound email action for replies:

Procedure

  1. Navigate to System Policy > Email > Inbound Actions and click New.
  2. Populate the form (see table).
    Name Update Incident
    Action type Reply Email
    Target table Incident [incident]
    Actions > Script Insert the following:
    gs.include('validators');
     
    if (current.getTableName() == "incident") {
      current.comments = "reply from: " + email.origemail + "\n\n" + email.body_text;
     
      if (email.body.assign != undefined)
        current.assigned_to = email.body.assign;
     
      if (email.body.priority != undefined && isNumeric(email.body.priority))
        current.priority = email.body.priority;
     
      if (email.body.category != undefined)
        current.category = email.body.category;
     
      if (email.body.short_description != undefined)
        current.short_description = email.body.short_description;
     
      current.update();
    }

Values automatically set from incoming email

The default inbound action for the Incident table automatically sets the following field values when it receives an incoming email.

Table 2. Values automatically set from incoming email
Field value set Value used from incoming email
current.caller_id User ID of the first user whose email address matches the email.from variable.
current.opened_by User ID of the first user whose email address matches the email.from variable.
If multiple users have the same email address, the instance first searches for an active user with the email address. Use unique email addresses for each user record whenever possible. If not, having only one active user with the shared email address guarantees that the instance always matches incoming email from this address to the active user.