- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-25-2017 04:37 AM
Hi All,
I have an inbound request action, and what I am trying to do is get the the inbound action to check the inbound email for an Email Address within the body of the email itself. Then use this email address to set it as the 'Requested for" of the Request.
Now excuse me as I am completely new to development and Javascript so I'm probably a mile off but this is what I have so far, I'm not sure how I go about using the variable 'emails' to essentially check the user table and set this as the requester
createRequest();
function createRequest() {
//Create Request
var grRequest = new GlideRecord ("sc_request");
grRequest.initialize();
var content = email.body_text;
var emails = content.match(/[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/ig);
gs.log('Email is ' + emails); NOTE: This prints the email address from the body of the email fine
var userObject = gs.getUser().getRecord().getValue('emails');
grRequest.requested_for.setDisplayValue(emails);
grRequest.short_description = email.subject.toString();
grRequest.description = "received from: " + email.origemail + "\n\n" + email.body_text;
var requestSysId = grRequest.insert();
//Create Request Item, substitute your requested for
//current.requested_for = '52aa1965db4ef2006de0f3731d9619e1';
current.requested_for.setDisplayValue('emails');
current.short_description = email.subject.toString();
current.description = "received from: " + email.origemail + "\n\n" + email.body_text;
//substitute your cat item
current.cat_item = '73a67d42db248300aefef3731d961917';
current.parent = requestSysId;
current.request = requestSysId;
current.insert();
//Workflow Trigger
var w = new Workflow();
wfSysId = w.getWorkflowFromName("Test");
w.startFlow(wfSysId, current, current.operation());
}
Any points or help would be much appreciated.
Solved! Go to Solution.
- Labels:
-
Integrations
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-25-2017 09:22 AM
it would be best to call a function doing the job.
Something like:
grRequest.requested_for = getRequestedForID(emails);
and create the new function after or inside your "createRequest" function:
function getRequestedForID(retrievedEmail){
var grUser = new GlideRecord("sys_user");
grUser.addQuery("email", retrievedEmail);
grUser.query();
if(grUser.next()){
return grUser.sys_id.toString();
}
else {
gs.log("Couldn't find user based on email: " + retrievedEmail + " in Inbound Email Action Create Request","Inbound Email log");
}
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-25-2017 08:04 AM
Could you check for system log>> all & search for message mail is & it's
outcome.
Thanks,
Jaspal Singh
+919022506309
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-25-2017 08:07 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-25-2017 08:07 AM
I am using Cart API to generate request, and i have reference icon to populate manager's info. Like suppose in my email, i am using Manager:Test User
So it will check the user and correctly populating in the reference field.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-25-2017 08:11 AM
Hi Sri,
Does your email body include the word 'email:' and then the email address?
As I don't have the word email within my email body unfortunately.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-25-2017 08:15 AM
Hey Nabeel,
Is it possible to help with the format of mail you would be sending to
Servicenow..
Thanks,
Jaspal Singh
+919022506309