add attachments to the table through email
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-15-2024 06:33 AM
Hi
How to attach any files to the incident record through inbound email action.
In the instance there is a OOTB create incident inbound email action but there is no any attachment related code over there.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-17-2024 06:19 AM - edited ‎03-17-2024 06:21 AM
Hi @averyscotts ,
I've made a couple of videos about it (for requests though), they may help, please check them out:
How to Automatically Create Requests from Inbound Emails using Email Inbound Actions in ServiceNow
How to Automatically Create Requests from Inbound Emails using Flow Designer in ServiceNow
Regards, Ivan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-17-2024 06:44 AM
Hi @averyscotts
1. Attachment Handling: ServiceNow automatically saves email attachments to the sys_attachment ttable and links them to the inbound email record. Your task is to write a script within your inbound email action to re-link these attachments from the email record to the appropriate incident record.
Below is a sample script you might add to your inbound email action to handle attachments. This assumes you’re working within the existing OOTB create incident action or a similar custom one designed for handling incoming emails intended to create or update incidents.
(function runAction(email, email_action, event) {
// Assuming ‘incident’ variable is your Incident GR from the earlier part of email action
var incidentGR = new GlideRecord('incident');
if (incidentGR.get('number', email.subject.trim())) { // Custom logic to find incident based on email subject or some other criteria
// Now handling attachments
var attachment = new GlideSysAttachment();
var emailAttachments = new GlideRecord('sys_attachment');
emailAttachments.addQuery('table_sys_id', email.sys_id); // ‘email.sys_id’ refers to the current inbound email record
emailAttachments.query();
while (emailAttachments.next()) {
// Move attachments from email record to the incident record
attachment.copy(emailAttachments.getTableName(), emailAttachments.getUniqueValue(), incidentGR.getTableName(), incidentGR.getUniqueValue());
}
} else {
// Your code to handle creating a new incident if not found
}
})(email, email_action, event);The sample script provided is a base template. You may need to adjust the logic for finding the correct incident record (e.g., using the email subject, body, or other criteria).
Note: Please Mark this Helpful and Accepted Solution. If this Helps you to understand. This will help us a lot.
Thanks & Regards
Deepak Sharma
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-17-2024 08:17 AM
Hi @averyscotts ,
Below is a simplified example of how you might modify the script to handle attachments. This example assumes that the attachments are included as part of the email body
// Extract attachments from email
var attachments = email.getAttachments();
// Iterate over attachments
for (var i = 0; i < attachments.size(); i++) {
var attachment = attachments.get(i);
// Create attachment record
var attachmentRecord = new GlideRecord('sys_attachment');
attachmentRecord.initialize();
attachmentRecord.table_name = 'incident';
attachmentRecord.file_name = attachment.getName();
attachmentRecord.content_type = attachment.getContentType();
attachmentRecord.file_size = attachment.getSize();
attachmentRecord.sys_created_by = gs.getUserID(); // Set the creator as needed
attachmentRecord.insert();
// Associate attachment with incident record
var incidentAttachment = new GlideSysAttachment();
incidentAttachment.write(incidentSysID, attachmentRecord.getUniqueValue());
}
(or)
Second approach:
Use flow designer to attach email attachments to incident:
https://www.youtube.com/watch?v=dVAEKCql4q4
If I could help you with your Query then, please hit the Thumb Icon and mark it as Correct !!
Thanks & Regards,
Sumanth Meda
