--- title: "Mark Email As Read" slug: "mark-email-as-read" updated: 2025-08-29T19:21:45Z published: 2025-08-29T19:21:45Z canonical: "documentation.decisions.com/mark-email-as-read" --- > ## Documentation Index > Fetch the complete documentation index at: https://documentation.decisions.com/llms.txt > Use this file to discover all available pages before exploring further. # Mark Email As Read | Step Details | | --- | | **Introduced in Version** | 4.0.0 | | **Last Modified in Version** | 9.10.0 | | **Location** | Integration > Microsoft365 > Exchange > Email | The **Mark Email as Read** step marks a specified email as read from a Microsoft365 Exchange email account. ### Prerequisites - This step requires the [Microsoft 365 Exchange](https://documentation.decisions.com/docs/microsoft365-exchange) module to be [installed](https://documentation.decisions.com/docs/installing-modules-decisions) before it will be available in the toolbox. - A [dependency](https://documentation.decisions.com/docs/project-dependencies) must be created after installing the module in order for the the steps to be properly used. --- ## Properties #### Inputs | Property | Description | Data Type | | --- | --- | --- | | Message Id | ID of message to mark as read. | String | | User Identifier | Identifier of user to associate with marking as read. | String | #### Settings | Property | Description | Data Type | | --- | --- | --- | | Settings Override | Optional settings to override default OAuth token. | InputExchangeSettings | #### Outputs | Property | Description | Data Type | | --- | --- | --- | | Output | The part of the string that was extracted. | String | ![](https://cdn.document360.io/6ef8bcc1-6489-4486-9ad1-83acff7e5df0/Images/Documentation/image-1753211655801.png) --- ## Common Errors ### Data Not Mapped Correctly If the inputs are incorrectly formatted, the step will cause an error. To correct this, input valid inputs to permit proper orderly operations. #### Exception Message: ```csharp Exception Stack Trace: DecisionsFramework.Design.Flow.ErrorRunningFlowStep: Error running step Substring 1[Substring] in flow [Display Steps]: Exception invoking method Substring on class StringSteps ---> DecisionsFramework.LoggedException: Exception invoking method Substring on class StringSteps ---> System.ArgumentOutOfRangeException: Index and length must refer to a location within the string. (Parameter 'length') at System.String.Substring(Int32 startIndex, Int32 length) --- End of inner exception stack trace --- at DecisionsFramework.Design.Flow.StepImplementations.InvokeMethodStep.Run(StepStartData data at DecisionsFramework.Design.Flow.FlowStep.RunStepInternal(String flowTrackingID, String stepTrackingID, KeyValuePairDataStructure[] stepRunDataValues, AbstractFlowTrackingData trackingData) at DecisionsFramework.Design.Flow.FlowStep.Start(String flowTrackingID, String stepTrackingID, FlowStateData data, AbstractFlowTrackingData trackingData, RunningStepData currentStepData) --- End of inner exception stack trace --- ``` ### The Request Was Unsuccessful. If the token defined cannot be used to access Microsoft Exchange, the step will cause an error. To correct this, ensure a correct and valid OAuth token has been established. #### Exception Message: ```csharp DecisionsFramework.BusinessRuleException: [BusinessRule] The request was unsuccessful. ---> System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized). at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode() at Decisions.Microsoft365.Exchange.GraphRest.SendHttpRequest(ExchangeSettings settingsOverride, String url, HttpContent content, HttpMethod httpMethod) --- End of inner exception stack trace --- at Decisions.Microsoft365.Exchange.GraphRest.SendHttpRequest(ExchangeSettings settingsOverride, String url, HttpContent content, HttpMethod httpMethod) at Decisions.Microsoft365.Exchange.GraphRest.CreateHttpRequest(ExchangeSettings settingsOverride, String urlExtension, HttpContent content, HttpMethod httpMethod) at Decisions.Microsoft365.Exchange.GraphRest.HttpResponsePost(ExchangeSettings settingsOverride, String urlExtension, HttpContent content) at Decisions.Microsoft365.Exchange.GraphRest.Post(ExchangeSettings settingsOverride, String urlExtension, HttpContent content) at Decisions.Microsoft365.Exchange.Steps.ExchangeCalenderSteps.CreateCalendarEvent(Microsoft365CalendarEvent microsoft365CalendarEvent, String userIdentifier, String calendarId, InputExchangeSettings settingsOverride) at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor) at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr) ``` --- Related Information Related Articles: [Exchange Web Services Module](https://documentation.decisions.com/docs/microsoft365-exchange)