Cireson Partners, Customers and Community members share your customizations and examples here to help benefit the community as a whole to earn Kudos and badges.
DISCLAIMER
All files and projects located here are provided and come "as-is" and without any warranty or support. Use at your own risk. Your use of Community Uploads is subject to our Terms of Use.
Cireson does not and will not support or maintain these enhancements, extensions, and scripts.
For Team Cireson uploads click here.
Comments
I think that my issue is that it was just forwarded and not actually redirected. I spoke with the exchange admin briefly Friday afternoon but he was focused on another more pressing patching issue. I hope to get this resolved this morning.
Well it worked once, but now it does not pick the right template.
Is there a log file created anywhere?
Will I be able to use this to use with GroupWise email?
We do not use exchange and my knowledge regarding Mail, SMTP, IMAT etc is extremely limited.
I will try and read the code but thought I will ask here before I start digging.
Regards
Gerhard
@Gerhard_Goossens
I think it depends only how a Groupwise Mailbox can be accessed from powershell.
Maybe there is a SOAP/WebService Interface to Groupwise mailboxes - but of course, this needs some adjustments to the smlets powershell script
regards
Roland
Thanks
@Alan_Foster - There currently isn't but it has been suggested. Testing, troubleshooting, and QA-ing happens with breakpointing those areas in question and running the script as the workflow account/Service Manager email. All of this said, I'll try and set some time aside in the next week or so to start writing up documentation on the specifics of this feature from an Exchange perspective on the Wiki.
The problem I have is that our email is sent as name.surname@domain1.com and the AD accounts inside SCSM is 123456@domain2.com. This causes the script to not add the email comment, it does, however, add the email as an attachment created by name.surname@domain1.com. It also creates a new SCSM user name.surname@domain1.com. I have turned off the option to create a new user, so that is not an issue anymore.
I guess I can change the staff email address inside SCSM to reflect the name.surname email but for students this will not be possible because we provision them with Gmail addresses or they can use their own email provider.
I was thinking of changing the script so that it searches for the relationship that the email belongs to and then adding that user as the affected user, we have 60k users so that might take a while. And there might be an issue if the mail is sent from an email address that does not belong to a user ie. user changed his email address and it has not synced through yet.
I suspect that I will have the same issue if I use the stock SCSM exchange connector.
Another problem I have is that we will be using some service email accounts to send the email and thus the affected user will always be the wrong user. I was thinking of using SCORCH to grab the newly created IR or SR and searching inside the description for the affected user ie. 12345678 and then changing the relationship of the affected user. This approach will add more action logs though.
This all seems like an uphill battle for me and the lack of standards ie. multiple domains and different email providers on our side is killing me.
If the request is a Service Request and the end user responds back to an email sent to them, the reply never gets logged as an "End User Comment". We have been missing all replies back from users when they are Service Requests.
Incident Requests seems to function just fine.
Please help,
Naz
It's that time again!
1.4.5 has arrived on GitHub:
Azure Cognitive Services, Priority Scoring: This goes back to an idea I had awhile ago then recently raised by @NazOsman. If you're using ACS to dynamically create an Incident or Service Request based on some minimum sentiment score then why not further leverage this score to define the Impact, Urgency, and Priority on said New Work Item? Now you can define custom integer ranges wherein these enums will be set based on the Affected User's perceived sentiment returned from ACS.
Suggestion Email's Suggestions Sort by Relevance: Instead of grabbing Knowledge Articles and/or Request Offerings and then just sending them out to the Affected User. They will now sort based on words matched before going out.
Custom Suggestion Email Templates: Up until this point, if you enabled Suggest RO/KA from the Cireson SCSM Portal the email was hardcoded into the connector and required editing every single upgrade. Now they've been set free in their own distinct files enabling you to customize these HTML based templates to your organization's content.
Redact Sensitive Information: For the security conscience amongst us, we can't control what Affected Users will send in an email. But now we can control what actually makes it into SCSM, Cireson Analytics, and the DW by leveraging an optional regex text file that will scan emails before they are committed into SCSM replacing sensitive information with [redacted]. Thanks go out to nradler2 for wholly executing on this feature request!
While a minor update, perhaps a feature or two here is something you're interested in but you aren't sure the best way to upgrade your connector short of writing down and resetting various $true/$false values? No worries because the SMLets Exchange Connector blog has got you covered showing you how to quickly spot check between your customized connector and the latest version. Maybe you have an idea how to make the connector more awesome? Submit a Feature Request with your GitHub account today!
Creating the Incident initially seems to be okay but I can't find where to apply a template when it's updated.
That said - you're correct in your observation. There isn't an update template in the connector. However if the only end game here is to set the Incident's Status property to Active (again, I'm assuming only going off of the Title of your Template) that can be achieved rather easily with a single addition to the connector. But ultimately, probably something worth adding. If you have a GitHub account can you raise this request on the repo?
I configured this value here
But it would not use that template and if I tried others I had the same result it would default to the new template settings.
After tracing the ps command to Get-SCSMObjectTemplate -DisplayName $DefaultIRTemplateName
I ran this command by itself and was getting multiple names returned.
I had a 'Default Incident Template' and 'Default Incident Template - Portal' - it didn't know which one to choose and was failing.
As a quick fix I created a template with a unique name that the command above would only return a single result and this fixed the issue.
Love your work with this addon.
To work in our environment, I had to make a few changes, but nothing too major.
However, some of the following adjustments I made could be added into future versions if you feel they are worthwhile.
These changes included:
1. Being able to disable the "auto creating workitems" feature based on a template when there is no associated work item ID found, or no work item ID specified. We did not want this feature switched on, as we do not want jobs being automatically created via email. (as is the case with your code and the default exchange connector). For us we require our Help Desk to intervene and review the email before it is logged.
2. If disabling the "auto creating workitems" feature (as described above), specify an alternate email address where these emails without work item ID's will be forwarded to (such as the Help Desk Inbox), so that non-processed emails can still be dealt with by the Service Desk via the standard email request process and don't get missed.
3. Instead of only putting the body of the email in the notes field, include the "From, To, CC, Subject and Date Sent" fields in the notes also. This prevents us from having to attach the emails separately, which provides a better audit trail, and saves on DB storage requirements.
4. Email Error reporting.. We can specify an administrator email address (or log file) so that admins can be alerted of when code errors occur, what the error was, what the line of code was (+line number) etc. and can address these issues before getting complaints from the Help Desk or users.
Further,
I did find the code a little confusing to follow.
Although I didn't have time to do this myself, it might be an idea to make the code slightly more modular so that its a little easier to read and modify etc. Especially considering how many lines of code there are.
Hope this helps.
Adrian
1 & 2: Certainly sounds like an organizational specific process. In which case I'm not sure (at least off the top of my head) how this could be addressed for everyone using the smlets exchange connector given this is the crux of what it and the stock Microsoft one does.
3: What if this was the default action when you aren't attaching emails to Work Items? I'd be curious to know from others using this if there was a larger need to do this regardless of the feature being enabled or not.
4: You're certainly not the first to bring up a logging feature, but you are the first to bring up this way of doing it. I must admit there has been a lack of action here on my part as I don't know where people will take this and end up running the connector. I originally wanted to do logging in the Windows Event Log on the WF server but if you're running this in SMA the output per job also satisfies the request. Which means we're at about 3 different proposed ways to do logging. All valid. All great. All different. If this is something you can wire up and contribute, I'd be open to reviewing it to at least get some mechanism of logging in place. It seems like it could lead to a lot of overlap, but maybe it just needs to be a external logging script and everyone gets to pick how the logging is done between the various means of performing it on the connector? Lot of good and interesting discussion to be had here for sure.
In regards to following along through the code, myself and others have certainly tried to leverage functions where at all possible to keep this modular. I'd like to think we've made a lot of great progress since the first version released over a year ago but that said, there is always room for improvement. Whether it be more inline comments, more succinct ways of writing some PowerShell, or raising Issues on Github. I am certainly welcoming of any contributions you'd be willing to make on the repo in the name of cleaner code or less lines.
(line 376 in unedited/latest version of script)
$defaultIRTemplate = Get-SCSMObjectTemplate -DisplayName $DefaultIRTemplateName @scsmMGMTParams
cmd : Get-SCSMObjectTemplate : Value cannot be null.
NOTE: I then changed the command to use -Name rather than -DisplayName (and hard-coded the template names) and got around the error but discovered the returned value is blank in $defaultIRTemplate:
$defaultIRTemplate = Get-SCSMObjectTemplate -Name "EmailDefaultIRTemplateName" @scsmMGMTParams
The script now runs through with no errors but does not read the mail from the mailbox.
Any ideas?
Ben
As far as the script runs but does not read from the mailbox I'd suggest you try an incredibly trimmed down version of the connector I wrote whose sole purpose is to demonstrate connectivity by simply looping through the messages within a PowerShell window. It doesn't alter the inbox in anyway, so any subsequent run of the actual connector isn't destined for failure. You can grab it here on the SMLets Exchange Connector blog.
AI without Azure Cognitive Services: This past year, ACS was introduced as an option to create an Incident or Service Request based on the Affected User's perceived attitude. In doing so, this curbed a long standing issue that the original connector exposed - you must create either Incidents or Service Requests by default. Regardless of what you choose, it inevitably leads to the conversation that Analysts most often bring up and that's "Why can't I convert Incidents to Service Requests and vice versa?" Recognizing that ACS may not be for everyone but the feature still warranted, @Tom_Hendricks has introduced an alternative to ACS that allows you to define a list of keywords (e.g. error, problem, fail, crash, etc.) that will trigger the creation of an Incident otherwise a Service Request will be created.
Multiple Mailbox Routing enhancements: @Tom_Hendricks continues to expand this feature out that now supports processing multiple mailboxes that are BCCed on the original email by using PowerShell to interrogate the email headers before the connector performs additional processing.
Change Incident Status on Update: Now you can now change the Status of Incidents when the Affected User, Assigned To, or Related User replies. This helps better reflect time within a specific status as Analysts flip to Pending and potential Pending subcategories. As an example, this means you can configure the connector so that the Assigned To updates it to Pending and the Affected User updates it to Active. Thus further complimenting the Cireson Send Email feature on the portal. Thanks to @Kenneth_McMichael for raising this process feature request!
general optimizations: This release was rather heavy on optimizations, so the feature list above isn't as large as previous updates. These optimizations include items such as introducing new functions, combining/simplifying others, leveraging others introduced on previous releases more and performing things like moving away from Invoke-WebRequest to Invoke-RestMethod. A full list of these optimizations can be seen on the 1.4.6 milestone here.
The SMLets Exchange Connector has grown quite a bit this past year and even more so since its first release in April of 2017. All of it leading to an ever increasing adoption across SCSM deployments of all shapes and sizes. The latest adopter? It's one many of us here in the community know as I recently co-authored a blog post with @Joe_Burrows as he's deployed it for Cireson on Azure Automation for their SCSM deployment. You can read more about it here - Cireson Support Deploys Open Source SMLets Based Exchange Connector