Send an Email Notification with Associated Attachments

It’s very common to send out an email notification at different stages of a task. There are great example notifications out-of-box in the Service-now platform that show you how to set these up. In some cases, you may wish to send more than the standard information in your email. The ‘mail_script’ tag can be used to do some more advanced script processing and then print out the results using the ‘template.print’ command. Here’s a sample script that you could use in an outbound email notification. The sample script is designed to send out information about a particular task. It also includes a ‘mail_script’ function to perform some advanced processing and include links to all of the associated attachments for the task. This script can be pasted directly into the ‘Message’ field on an email notification or email template record.

Short description: ${short_description}
Click here to view: ${URI}
function attachLinks() {
   //Check for any attachments and add attachment links if they exist
   var gr = new GlideRecord('sys_attachment');
      template.print('Attachments: \n');
         while ( {
            var attachLink = '<a href="' + gs.getProperty("glide.servlet.uri") + gs.generateURL(gr.getTableName(),gr.sys_id) +  '">' + gr.file_name + '</a>';
            template.print(attachLink +  '\n');
As of the June 2011 release of ServiceNow you now have the ability to actually attach a record’s attachments to an outgoing email simply by checking the ‘Include Attachments’ checkbox on the notification form. You may have to personalize the notification form to add this field.

Date Posted:

March 12, 2010

Share This:


  1. Jim Coyne October 28, 2010 at 2:52 am

    I have this working for incident notifications, but for some reason the attachments will not appear in a change request notification. Added the code to the email template but it simply will not display the attachments.

    • Mark Stanger October 28, 2010 at 3:16 am

      Just tested this at and it seems to work fine there on the change request table. I’ve got a notification set up there called ‘Test change attachments email’ that you can use for comparison purposes. The other thing I would try would be to put some ‘gs.log’ statements in the script to see if it is being executed, ‘current.sys_id’ matches the sys_id of the change request, and if your GlideRecord query is returning any attachments.

      • Jim Coyne October 28, 2010 at 3:18 pm

        Of course – “current.sys_id” is not what I want, but the sys_id of the actual request.

        • Martijn March 14, 2013 at 3:41 am

          Did you update the url?
          the “getTableName” may send you the wrong table, so the URL will not be determined properly (make sure it is “change_request ” and not “incident”).

          A question that I have: how do I really send out attachments? These are just links and the user receiving these emails still has to log into ServiceNow to read them. There are cases where you don’t want this.

          • Mark Stanger March 14, 2013 at 6:46 am

            Check out the green notice in the article above. You can define this with a per-notification checkbox if you want to include the actual attachments.

  2. Martijn March 14, 2013 at 8:25 am

    Yes, I found that. In Notifications you can select if you want attachments to be sent, too (“include attachments option”… who would guess ;-))
    However, another option I found is to copy the attachment to the sys_email record before it is sent and then the attachment will be added to the email, too.

  3. Scott July 3, 2013 at 9:50 pm

    sort along the same lines but…. is there a way to configure an email notification that has an attachment on it. when the email notification is triggered dependent on its conditions, it sends the email notification and the attachment to the recipient.
    storyline to this is, a record producer on the Service Cat, user fills out the form and submits it, this triggers an email notification (that has a built in attachment) to the “send to:” person or group.

    im not looking for the user to attach anything to the record producer at the time of filling it in and I’m not trying to send any attachment that may be on the “INC” or “REQ”, just want to configure an email notification that has a built in attachment and send that.

Comments are closed.




Fresh Content
Direct to Your Inbox

Just add your email and hit subscribe to stay informed.