Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

How to add an attachment to an email vial script

Mark94
Kilo Expert

Hi,

I have a workflow, that having done bits and bobs creates a PDF file, and attaches it to the ticket (a purchase order ticket). The next step I have been asked to build is to attach that PDF to an email and send it externally.

I've tried one method which was detailed in another post -

Attempt 1 -

1. Go to System Notification > Email > Notification Email Scripts
2. Create email script called 'attachfile'
3. Add this line to the script -    
template.print('Attachment: <a href="sys_attachment.do?sys_id=b32dec79db2dd450c646f5461d9619d6">Attachment</a>');
4. Add the following line to the workflow's Notification step in the message -
${mail_script:attachfile};

Sadly, this only adds a link to the PDF, and doesn't attach it to the email (I hard coded the sys_id only as a test).

 

Attempt 2 -

I've started to create a script inside the workflow. This was again taken from another post.

var gr = new GlideRecord('sys_attachment');
  var table = '';
  gr.addQuery('table_sys_id',current.instance);
  gr.query();
  while(gr.next()) {
      table = gr.table_name;
  }
  if (table != '') {
      GlideSysAttachment.copy(table,current.instance,'sys_email',current.sys_id);
      gs.print('Creating attachment');
  }
 

I've now got a bit stuck, I'm not sure where to go from here. This in itself isn't doing anything, and I'm not sure if it's going to. Can anyone point me in the right direction. Am I on the right track?

Many thanks,

Mark.

1 ACCEPTED SOLUTION

Mark,

Excellent, yes please see the attached for 5.4 & 5.41 which shows the setup.

Please let me know once this is working, otherwise please feel free to show your setup and happy to compare.

 

Kind regards

Steve

View solution in original post

16 REPLIES 16

Hi Gaurav,

Would this also work in a business rule to attach attachments to a record when sending the record, something like:

 gr.addQuery('table_sys_id',current.sys_id);
   gr.query();
   if(gr.hasNext()){
      template.print('Attachments: \n');
         while (gr.next()) {
            var attachLink = '<a href="' + gs.getProperty("glide.servlet.uri") + gs.generateURL(gr.getTableName(),gr.sys_id) +  '">' + gr.file_name + '</a>';
            template.print(attachLink +  '\n');
         }
      template.print('<hr/>');
   }
}

 

Thanks

Steve

Hi Gaurav,

The "include attachment" may work, but I can't find a way of customising the form in that way - I can customise it and add more fields, but that one isn't in there. I'll keep searching though, thanks.

The script you provided places a link to the attachment in the email, but does not attach the attachment sadly.

Kind Regards,

Mark.