{"id":13597591,"url":"https://github.com/AdhocAdam/smletsexchangeconnector","last_synced_at":"2025-04-10T05:33:08.149Z","repository":{"id":19780430,"uuid":"87887244","full_name":"AdhocAdam/smletsexchangeconnector","owner":"AdhocAdam","description":"SMLets PowerShell based Exchange Connector for controlling Microsoft System Center Service Manager 2016+","archived":false,"fork":false,"pushed_at":"2024-09-03T22:57:33.000Z","size":17842,"stargazers_count":29,"open_issues_count":8,"forks_count":19,"subscribers_count":14,"default_branch":"primary","last_synced_at":"2024-11-06T22:40:10.792Z","etag":null,"topics":["artificial-intelligence","azure-cognitive-services","azure-machine-learning","azure-machine-learning-studio","azure-speech-service","azure-translate","cireson","computer-vision","exchange-connector","exchange-web-services","microsoft","powershell","scom","scsm","scsm-administrators","sentiment-analysis","service-manager","speech-to-text","system-center"],"latest_commit_sha":null,"homepage":"https://adhocadam.github.io/smletsexchangeconnector/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AdhocAdam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-11T04:11:11.000Z","updated_at":"2024-06-28T04:36:58.000Z","dependencies_parsed_at":"2024-01-14T04:41:20.447Z","dependency_job_id":"a3e759ce-d9b1-4c6b-af9b-05d6057f77d1","html_url":"https://github.com/AdhocAdam/smletsexchangeconnector","commit_stats":null,"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdhocAdam%2Fsmletsexchangeconnector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdhocAdam%2Fsmletsexchangeconnector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdhocAdam%2Fsmletsexchangeconnector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AdhocAdam%2Fsmletsexchangeconnector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AdhocAdam","download_url":"https://codeload.github.com/AdhocAdam/smletsexchangeconnector/tar.gz/refs/heads/primary","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248163315,"owners_count":21057910,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artificial-intelligence","azure-cognitive-services","azure-machine-learning","azure-machine-learning-studio","azure-speech-service","azure-translate","cireson","computer-vision","exchange-connector","exchange-web-services","microsoft","powershell","scom","scsm","scsm-administrators","sentiment-analysis","service-manager","speech-to-text","system-center"],"created_at":"2024-08-01T17:00:36.861Z","updated_at":"2025-04-10T05:33:03.097Z","avatar_url":"https://github.com/AdhocAdam.png","language":"C#","funding_links":[],"categories":["C# #"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"512\" height=\"512\" src=\"psExchIconReadme.png\"\u003e\u003cbr /\u003e\n  \u003ch1 align=\"center\"\u003eSMLets Exchange Connector\u003c/h1\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/v/release/AdhocAdam/smletsexchangeconnector?logo=github\u0026logoColor=white\" alt=\"GitHub release\"/\u003e\n  \u003cimg src=\"https://github.com/AdhocAdam/smletsexchangeconnector/workflows/Primary%20Branch%20-%20Build/badge.svg?branch=primary\" /\u003e\n  \u003cimg src=\"https://github.com/AdhocAdam/smletsexchangeconnector/workflows/Dev%20Branch%20-%20Build/badge.svg?branch=dev\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/PowerShell/PSScriptAnalyzer\"\u003e\u003cimg src=\"https://img.shields.io/badge/Lint-PSScriptAnalyzer-magenta\" alt=\"Lint: PSScriptAnalyzer\"/\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/AdhocAdam/smletsexchangeconnector/actions/workflows/PSScriptAnalyzer.yml\"\u003e\u003cimg src=\"https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/AdhocAdam/a85ec65858e3065359d1d6a9d122e723/raw/errors.json\" alt=\"Lint: PSScriptAnalyzerErrors\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/AdhocAdam/smletsexchangeconnector/actions/workflows/PSScriptAnalyzer.yml\"\u003e\u003cimg src=\"https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/AdhocAdam/a85ec65858e3065359d1d6a9d122e723/raw/warnings.json\" alt=\"Lint: PSScriptAnalyzerWarnings\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/AdhocAdam/smletsexchangeconnector/actions/workflows/PSScriptAnalyzer.yml\"\u003e\u003cimg src=\"https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/AdhocAdam/a85ec65858e3065359d1d6a9d122e723/raw/info.json\" alt=\"Lint: PSScriptAnalyzerInfo\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://securitylab.github.com/tools/codeql\"\u003e\u003cimg src=\"https://github.com/AdhocAdam/smletsexchangeconnector/actions/workflows/codeql-analysis.yml/badge.svg\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.codefactor.io/repository/github/adhocadam/smletsexchangeconnector\"\u003e\u003cimg src=\"https://www.codefactor.io/repository/github/adhocadam/smletsexchangeconnector/badge\" alt=\"CodeFactor\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nThis PowerShell script leverages the [SMLets module](https://www.powershellgallery.com/packages/SMLets/) to build an open and flexible Exchange Connector for controlling Microsoft System Center Service Manager 2016+\n\n\n## So what is this for?\nThe stock Exchange Connector is a seperate download that enables SCSM deployments to leverage an Exchange mailbox to process updates to work items. While incredibly useful, some feel limited by its inability to be customized given its nature as a sealed management pack. This PowerShell script replicates all functionality of [Exchange Connector 4.1](https://www.microsoft.com/en-us/download/details.aspx?id=101579), introduces a host of new features, and most importantly enables SCSM Administrators to customize the solution to their needs.\n\n## Who is this for?\nThis is aimed at SCSM administrators looking to further push the automation limits of what their SCSM deployment can do with inbound email processing. As such, you should be comfortable with PowerShell and navigating SCSM via SMlets.\n\n## What new things can it do?\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eMultiple Keywords (v5.0)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/multipleKeywords.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eWhether you are handling different languages within your environment, looking to introduce \"secret\" keywords, or open up new avenues of automation. You can now configure multiple keywords per keyword such as approved, affirmative, okay, and yes for Review Activities and more!\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eAzure Government (v4.1)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/azGov.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eNo need to manage custom Azure URLs between upgrades. Azure Government customers can now quickly configure connectivity directly from the connector's Admin Settings to define connectivity to Exchange Online and/or Azure services.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eCustom Rules (v4.0)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/customRules.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eSync any external system with Service Manager entirely through email. Whether it's a vendor's ticketing system, Microsoft Azure Invoices, an alerting tool, a CRM that sends notifications, or even a project management tool. You can now manage all of it through Work Items or Config Items of any class. Looking for inspiration? Check out the \u003ca href=\"https://github.com/AdhocAdam/smletsexchangeconnector/wiki/Integrating-External-Ticketing-Systems\"\u003ewiki\u003c/a\u003e.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eFile Attachments for Activities (v3.4)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/activityFileAttachments.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eWhether you choose to Complete, Fail, Approve, Reject, or just leave notes on an Activity. Emails for Activities that have File Attachments, will now make their way to the parent Work Item.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eHistory Pane (v3.3)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"50%\"\u003e\u003cimg src =\"/FeatureScreenshots/history.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eWhether you're changing regex patterns, updating machine learning scores, or modifying any other configuration in the connector. Now just like any Work Item or Config Item you can view the complete history of changes you and your peers have set.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003e[pwsh] Keyword (v3.1)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/pwshKeyword.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eIt's now possible with digital signatures and custom events to call Rest APIs, invoke Webhooks, and execute PowerShell \u003ci\u003edirectly\u003c/i\u003e from email. This feature makes use of Mimekit to verify the sender and then calls your CustomEvents file to take further action. Looking for ideas to get started? Head over to the \u003ca href=\"https://github.com/AdhocAdam/smletsexchangeconnector/wiki/Custom-Events-Examples#invoke-validdigitalsignatureaction\"\u003ewiki\u003c/a\u003e.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eWorkflow Engine (v3.0)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/workflow.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eThe connector can optionally can be driven through the Service Manager workflow engine and leverage Run as Accounts. All while maintaining the customization and flexibility you've come to expect through a PowerShell based connector. Setup instructions can be found \u003ca href=\"https://github.com/AdhocAdam/smletsexchangeconnector/wiki/Configuration-Examples#scenario-4-native-service-manager\"\u003ehere\u003c/a\u003e.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eOAuth 2.0 for Exchange Online (v2.4)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/OAuth.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eThe connector supports OAuth 2.0 authentication via Azure AD Application registration to communicate with Exchange Online. Need help getting setup? The \u003ca href=\"https://github.com/AdhocAdam/smletsexchangeconnector/wiki/Configuration-Examples#scenario-3-exchange-onlineoffice-365-with-oauth\"\u003ewiki\u003c/a\u003e has your covered.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eTranscribe Audio Files to Text (v2.3)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/speech-api.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eYour SCSM environment can now hear! Translate incoming *.wav or *.ogg on emails to text with Azure Speech services. After enabling audio files will have their text transcriptions written to the File Attachment's Description. Get pricing details \u003ca href=\"https://azure.microsoft.com/en-us/services/cognitive-services/speech-services/\"\u003ehere\u003c/a\u003e.\n\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eDescribe and Extract Text from Images (v2.3)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/ACSVision.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eGive your SCSM environment eyes with integration into Azure Cognitive Services Vision API. Once enabled, any image attached to emails will be submitted to Azure and will be tagged with 5 words describing what the image is. In the event text is detected, Optical Character Recognition (OCR) will additionally be performed. These results are then written into the Description property of the attachment. Get pricing details \u003ca href=\"https://azure.microsoft.com/en-us/services/cognitive-services/computer-vision/\"\u003ehere\u003c/a\u003e.\n\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003ePredict Impacted Configuration Items with Azure Machine Learning (v2.2)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/machineLearningConfigItem.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eTake Azure Machine Learning even further and enable the connector the ability to relate Impacted Configuration Items to a New Work Item in addition to Work Item Decisioning, Classification, and Routing. This feature is compatible with Configuration Items of \u003ci\u003eany\u003c/i\u003e type whether it be:\n\u003cbr /\u003e\u003cbr /\u003e\n\u003cul\u003e\n  \u003cli\u003estock Service Manager classes\u003c/li\u003e\n  \u003cli\u003eimported Operations Manager classes\u003c/li\u003e\n  \u003cli\u003eANY 3rd party management pack classes\u003c/li\u003e\n  \u003cli\u003eor even your own custom in house developed classes\u003c/li\u003e\n\u003c/ul\u003e\nReady to go? Get started over \u003ca href=\"https://github.com/AdhocAdam/smletsexchangeconnector/wiki/Azure-Machine-Learning-setup\"\u003ehere\u003c/a\u003e.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eSupport for Cireson Watchlist (v2.1)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/watchlist.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eCireson customers can now use the new configurable [watch] and [stopwatch] keywords to control the watchlist directly from email. You can configure HTML links within your own notifications so these keywords function similiar to Announcements, Take, Review Activities, and more. Looking for \u003ca href=\"https://github.com/AdhocAdam/smletsexchangeconnector/wiki/HTML-Email-Keyword-Examples\"\u003eexamples\u003c/a\u003e?\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eSettings Management Pack (v2.0)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"50%\"\u003e\u003cimg src =\"/docs/images/CreateACustomMPSettingsPane/headerGraphicThumbnail.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eThe SMLets Exchange Connector features over 120+ configuration possibilities. With a brand new management pack, upgrades just easier! This new MP moves the configuration from the PowerShell script into a dedicated MP whose settings are preserved through upgrades. Interested to see how it was built? Check out the blog here on the repo. \u003ca href=\"https://adhocadam.github.io/smletsexchangeconnector/Building-a-Custom-Settings-UI-for-Service-Manager-(part-1)/\"\u003ePart 1\u003c/a\u003e and \u003ca href=\"https://adhocadam.github.io/smletsexchangeconnector/Building-a-Custom-Settings-UI-for-Service-Manager-(part-2)/\"\u003ePart 2 \u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eLanguage Translation for New Work Items with Azure Translation (v1.6)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/translate.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eRemove the barriers to communication from Affected Users with integration to Azure Translate. When enabled, New Work Items will see the immediate creation of an End User Comment on the Action Log in a default language of your choosing. Ready to close the loop so the Assigned User can work with the Affected User in their native language? A new complimentary project has arrived so Comments left on the Action Log area translated, and then the other party is notified of the translated comment. Get the Advanced Action Log Notify management pack over \u003ca href=\"https://github.com/AdhocAdam/scsmtranslate\"\u003ehere\u003c/a\u003e. Read up on Azure Translate pricing \u003ca href=\"https://azure.microsoft.com/en-us/pricing/details/cognitive-services/translator-text-api/\"\u003ehere\u003c/a\u003e and view the list of supported languages \u003ca href=\"https://docs.microsoft.com/en-us/azure/cognitive-services/translator/language-support\"\u003ehere\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eIntelligent Routing and Classification with Azure Machine Learning (v1.5)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/machineLearningClassification.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eFurther compliment \"Dynamic Work Item Analyst Assignment\" and \"Azure Cognitive Services\" features with integration for Azure Machine Learning. Using AML, you can now train Azure's artificial intelligence on your SCSM environment using your very own SCSM Data Warehouse to autonomously choose Work Item Type (Incident or Service Request), Work Item Classification, and Work Item Support Group on brand new Work Items that the connector creates. Azure pricing can be found \u003ca href=\"https://azure.microsoft.com/en-us/pricing/details/machine-learning-studio/\"\u003ehere\u003c/a\u003e and how to configure it for your environment/connector can be found \u003ca href=\"https://github.com/AdhocAdam/smletsexchangeconnector/wiki/Azure-Machine-Learning-setup\"\u003ehere\u003c/a\u003e.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eDynamic Work Item Analyst Assignment on New Work Item (v1.5)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/Assign.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eWhen New Work Items are created, you can optionally enable the connector to assign them out to Analysts contained within the Default Template's Support Group. This can be done through several means - completely random, least assigned open Work Items, or in conjunction with the \u003ca href=\"https://github.com/AdhocAdam/scsmoutofoffice\"\u003eSCSM Out of Office Management pack\u003c/a\u003e to prevent assignment when Analysts are out of the office. \u003ci\u003e(Requires at least the free Cireson SCSM Portal to establish the relationship between Support Groups and Analysts)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eChange Incident Status based on Who Replied (v1.4)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/changeIncidentSstatusOnReply.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eYou can now optionally enable this feature that changes 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.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eDynamic Priority based on Azure Sentiment Analysis (v1.4)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/ACSPriorityScoring.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eIf you're making use of Sentiment Analysis from Azure Cognitive Services, the returned score can now optionally dynamically drive the Impact, Urgency, and Priority on new Incidents or Service Requests. Sentiment boundaries can be edited via the Get-ACSWorkItemPriority function.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eCustom Theming for Suggested Knowledge Article or Request Offering emails (v1.4)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/HTMLSuggestionTemplate.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eNow when emails go out suggesting Knowledge Articles or Request Offerings based on the email's subject and body, you can theme them to match your organization's respective style. Customizations made to these HTML templates will be preserved throughout updates of the connector.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eRedact Sensitive Information (v1.4)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/redacted.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eUsing a custom defined regex file you can optionally have the connector replace words of your regex choice with [redacted] in New Work Item Descriptions or Comments. Customizations made to this regex list will be preserved throughout updates of the connector.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eEnhanced Action Logging (v1.4)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/enhancedActionlog.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eNow when using the [resolved], [closed], [take], and other relevant keywords the Work Item's Action Log matches the visual style of these actions as opposed to simply leaving an Analyst Comment.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n*More Keyword functionality for Manual Activites (v1.4)*\n- You can now use the [take] keyword against Manual Activites.\n\n*Set First Response Date on Request Offering/Knowledge Article Suggestion (v1.4)*\n- If you've enabled Suggested Request Offerings from your Service Catalog or Knowledge Articles from your Knowledge Base, this feature can now optionally set the First Response Date when the connector sends suggestions back to the Affected User giving you more data points to report against.\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eMicrosoft Azure Cognitive Services integration (v1.4)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"/FeatureScreenshots/ACSBrain.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eEver wish you could create an Incident or Service Request based on the nature of the email? How about using the suggested Knowledge Article/Request Offering feature of this connector, but achieve even faster processing times? Leveraging the power of Azure Cognitive Services emails can now be optionally run through Keyword Analysis for more concise search results and/or Sentiment Analysis for dynamic creation of an Incident or Service Request based on the Affected User's perceived attitude. \u003ca href=\"https://azure.microsoft.com/en-us/pricing/details/cognitive-services/text-analytics/\"\u003eMicrosoft pricing information can be found here.\u003c/a\u003e Not ready for Azure? You can alternatively define a list of keywords that will control whether or not an Incident or Service Request is created.\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n*Create Problems or Change Requests by Default (v1.4)*\n- Whether you're dealing with external vendors or streamlining process, you can now configure the connector to create either Problems or Change Requests by default.\n\n*Process multiple mailboxes with unique templates and default ticket types (v1.4)*\n- Redirect multiple mailboxes to a single inbox and this connector can process each message based on the default work item type and templates for the original mailbox, as though it was directly connected to each. This can be helpful for multiple teams that each have their own mailbox, for example, but does not require many instances of the connector running against all mailboxes as the MS Exchange Connector did. In addition, it can also process those mailboxes should be they be featured on the CC or BCC lines.\n\n*Generate a new, related work item when comments are emailed to closed tickets (v1.4)*\n- Was the affected user on vacation? Did they try to add to an old incident ticket for a new instance of the same issue? Now you can optionally generate Work Items when a user comments on a closed ticket. If enabled, a new work item will be generated that is related to the old work item and contains many of the same properties, but also contains the new details from their email message.\n\n*More Keyword functionality for Service Requests (v1.4)*\n- Service Requests can now use the [acknowledge] and [hold] keywords.\n\n*[take] Keyword can now optionally test for membership in the Support Group (v1.4)*\n- If this feature is enabled, the sender's membership in the current Support Group will be tested before they are assigned to a ticket (Incident, Service Request. Manual Activity and Change Request require a class extension). This requires the Cireson Analyst Portal and in turn Cireson Portal Group Mapping in order to establish relationship between Support Groups/Analysts.\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eVote on Behalf of Active Directory Group (v1.4)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"https://github.com/AdhocAdam/smletsExchangeConnector/blob/primary/FeatureScreenshots/voteOnBehalfOf.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eThe connector can now optionally process Active Directory Groups featured on Review Activities. Now, when a member of the group either approves or rejects the vote, their vote will be counted on behalf of the group through the \u0026quot;Voted By\u0026quot; relationship and their comment appended to the vote. \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n*File Attachment Limits (v1.4)*\n- Now you can optionally enforce settings for attachments per Work Item type as seen in the Administration -\u003e Settings pane for maximum size and attachment count\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eAnnouncement Integration with Core SCSM and Cireson Portal (v1.3)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"https://github.com/AdhocAdam/smletsExchangeConnector/blob/primary/FeatureScreenshots/announcements.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eUsing the configuable [announcement] keyword you can post announcements to core SCSM and/or the Cireson portal when this keyword is featured in the body of your message. The priority can be controlled through the optional and configurable #low or #high tags. Absence of these optional #hashtags will default to a normal priority announcement. If you're creating announcements in the Cireson Portal, an announcement will be created for each group discovered on the message's To or CC lines. Thus allowing you to email several distro groups and simultaneously create targeted announcements for them. Announcements created through either means (SCSM/Cireson Portal) can be updated in the future by simply keeping the [Work Item] in the subject of your [announcement] based messages. Finally, announcements can only be created when the Sender's email is in an allowed style list or the Sender is part of a configurable Active Directory group.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n*Search Cireson Portal Service Catalog (v1.3)*\n- When enabled this feature will email the Affected User suggested Cireson Portal Request Offerings within the Affected User's Service Catalog permission scope based on the content of their email when a New Work Item is generated. This feature has been tested and confirmed working with v7.x and v8.x of their SCSM portal. If both this and the \"Search Cireson HTML Knowledge Base\" feature are enabled, only a single summarized email will be sent to the Affected User containing links to Knowledge Articles and Request Offerings.\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eSend Outlook Meeting (v1.3)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"https://github.com/AdhocAdam/smletsExchangeConnector/blob/primary/FeatureScreenshots/sendOutlookMeeting.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eBuilding upon the previous version's \"Schedule Work Item\", this feature introduces a Cireson SCSM Portal Task (via CustomSpace/custom.js) that kicks open your local Outlook client to send meeting requests on Work Items to the Affected User and your workflow account (or just your workflow if no Affected User is present). In doing so, further rounding out the Schedule Work Item feature by setting Scheduled Start/End Dates when the connector processes Calendar items.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eDigitally Signed and Encrypted Emails (v1.3)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"https://github.com/AdhocAdam/smletsExchangeConnector/blob/primary/FeatureScreenshots/digitalCertificates.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eLeveraging the open source \u003cA href=\"https://github.com/jstedfast/MimeKit\"\u003eMimeKit\u003c/A\u003e project by Jeffrey Stedfast, the connector can now process digitally signed or encrypted emails just like regular mail. This requires an appropriate certificate in either the user's personal cert store or the local machine's personal cert store.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n*System Center Operations Manager (SCOM) Integration (v1.3)*\n- Using the configurable [health] keyword in the subject, authorized users (as defined individually or through an Active Directory group) can request the overall Health and Alert counts of a [Distributed Application] by placing it in the body of the email. Unauthorized users will have New Default Work Items created within SCSM.\n\n*Merge Replies from Related Users instead of Creating New Default Work Items (v1.2)*\n- If a user emails the SCSM Workflow Account and also adds additional users to the To/CC lines those related users are automatically added to the Related Items tab of a New Work Item. However in these scenarios, it's possible that one or more of those users could reply within the same processing loop of the Exchange Connector. As a result, they will queue more emails to be turned into New Default Work Items. This feature aims to address the scenario by querying Exchange Inbox/Deleted Items for matching Conversation Topics and ConversationIDs, finding the original item in the thread, searching for the Work Item that already exists in SCSM, and then appending their Reply to its Action Log\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eSchedule Work Items (v1.2)\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"https://github.com/AdhocAdam/smletsExchangeConnector/blob/primary/FeatureScreenshots/outlookMeeting.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eIt's now possible to interact with SCSM via Outlook Calendar Meetings! When a Calendar Meeting is sent, the Scheduled Start Date and Scheduled End Date will be set on the Work Item based on the start/end times of the meeting. If the work item cannot be found/does not exist, a new default work item is created and it's scheduled start/end times set accordingly. Upon success, the meeting will be accepted onto the workflow account's calendar and the requester will receive confirmation of the booking. This introduces the possibility of leveraging the workflow's calendar as a central place to see all Scheduled Work Items. Using \u003ca href=\"http://cireson.com/apps/outlook-console/\"\u003eCireson's Outlook Plugin\u003c/a\u003e. When setting a Work Item reminder in Outlook, you can now CC your workflow account to update values on the Work Item.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n*Minimum File Attachment Size*\n- You can set a minimum size in KB. In doing so, files less than the defined size will not be added to the work item (i.e. corporate signature graphics won't be added)\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eFile Attachment \u0026quot;Attached by\u0026quot;\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"https://github.com/AdhocAdam/smletsExchangeConnector/blob/primary/FeatureScreenshots/attachedBy.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003eWhen an email is sent with attachments, the \u0026quot;File Attachment Added By User\u0026quot; relationship will be set based on the Sender if the user is found in the CMDB\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eIncident, Service Request, Change Request, Problem\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"https://github.com/AdhocAdam/smletsExchangeConnector/blob/primary/FeatureScreenshots/take.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003e[Take] - When emailing your workflow account, it will assign the Incident, Service Request, Change Request, or Problem to you (from address) when this keyword is featured in the body of the email.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eService Request and Change Request\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"https://github.com/AdhocAdam/smletsExchangeConnector/blob/primary/FeatureScreenshots/cancel.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003e[Cancel] - Cancel the Service Request or Change Request when this keyword is featured in the body of the email\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eIncident\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"https://github.com/AdhocAdam/smletsExchangeConnector/blob/primary/FeatureScreenshots/reactivate.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003e[Reactivate] - When submitted to a Resolved Incident, it will be reactivated. When submitted to a Closed Incident, a New Incident will be created and the two related to one another.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eChange Request\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"https://github.com/AdhocAdam/smletsExchangeConnector/blob/primary/FeatureScreenshots/hold.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003e[Hold] - Place the Change Request On-Hold when this keyword is featured in the body of the email\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n*Manual Activity*\n- [Skipped] - Skip the activity when this keyword is featured in the body of the email\n- Misc - Anyone who is not the implementer will have their email appended to the \"Notes\" area of the MA\n- Misc - If the Implementer leaves a comment that is not [Skipped] or [Completed] the comment is added to the highest level Parent Work Item\n\n*Review Activity*\n- Any reviewer who leaves a comment that doesn't contain [Approved] or [Rejected] will have their comment added to the highest level Parent Work Item. This addresses a scenario where users not familiar with SCSM (i.e. departments outside of IT) respond back to the email thinking someone is reading the message on your workflow account. Now their comments aren't simply lost, but instead given the visibility they deserve!\n\n\u003ctable border=\"0\"\u003e\n  \u003ctr\u003e\n    \u003ctd colspan=\"3\"\u003e\u003ci\u003eIncident and Service Request\u003c/i\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"200\"\u003e\u003cimg src =\"https://github.com/AdhocAdam/smletsExchangeConnector/blob/primary/FeatureScreenshots/privateComment.png\" /\u003e\u003c/td\u003e\n    \u003ctd width=\"auto\"\u003e#private - When the message is attached to the Action Log, it will be marked as private if #private is featured in the body of the message. This keyword is configurable.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n*Assigned To/Affected User relationships on the Action Log*\n- When someone who isn't the Assigned To/Affected User leaves a comment on the Action Log the comment's \"IsPrivate\" flag is marked as null (this is a bug in the EC v3.0 and v3.1 that has yet to be addressed by Microsoft). As such Cireson's Action Log Notify has no qualifier to go of off. With this script, the same functionality is present but now can be altered to get in line with SCSM and Cireson's MP.\n\n*Search Cireson HTML Knowledge Base*\n- If you're a customer of Cireson and this feature is enabled, your respective Cireson Portal HTML KB will be searched when a New Work item is generated using its title and description. The Sender will be sent a summarized HTML email with links directly to those knowledge articles about their recently created Work Item using the Exchange EWS API defined therein. As an example email, I've included an email body that features a [Resolved] and [Cancelled] link should the Affected User wish to mark their Incident/Service Request accordingly in the event the KB addresses their request. It should be noted, this is using the Cireson Web API to get KB through a now deprecated function. While this works, it goes without saying if Cireson drops this in coming versions it would cease to work. It has been tested and confirmed working with v7.x of their SCSM HTML KB portal.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAdhocAdam%2Fsmletsexchangeconnector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAdhocAdam%2Fsmletsexchangeconnector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAdhocAdam%2Fsmletsexchangeconnector/lists"}