MSGraph Email Poller

Overview

Need to poll emails from your Exchange server? This smart service can be used in a poller process and extract the data from the Microsoft Exchange server. Messages are stored in the Appian Document System, as well as the attachments. Meta data is stored in a database table for further processing.

This plug-in provides an alternative to sending emails to an Appian process model when inbound email integration is requested. Instead of the email being forwarded to Appian, this plug-in reads the emails directly from the Exchange mailbox using the MS Graph API as described below:

  • Reads the mailbox using the MS Graph API
  • Convert the email to an EML file stored as an Appian document; Item attachments (calendar invites, messages) are kept in the eml file, File attachments removed from it and stored separately in the document management system.
  • Store all email file attachments as separate Appian documents
  • Store all email metadata (subject, author, recipients, etc...) into a set of tables in the database

Key Features & Functionality

All information how to deploy, configure and use the smart service is in the 'MS Graph Mail Poller.pdf' document in the downloaded zip. Extract the files in the ZIP and follow the instructions in the document.

Anonymous
  • Hi Raymond, 
    No, it seems not to have any characters suspicious, we did some test, to send new emails following same content (subject/body) and they were integrated. There is nothing apparent that prevent these emails to be integrated. 

    And especially that those are recurrent emails and in the past we didn't had any issues with those. 

    Thanks for providing more guidance, issue seems to have appeared after the upgrade release we made for the MS Graph Poller but to be confirmed. 

    Thank you

  • Hi,

    Is there anything on those emails that is suspicious? Like characters that are not supported in the database (emoticons can sometimes be an issue), or an html body that is extremely large?

  • Hello,

    We checked this error in tomcat-stdOut.log:

    ____________________________________________________________________________________________________________________

    2024-03-13 10:43:43 SEVERE [Appian Work Item - 1278037 - WorkID 197 - execution01 - process 6593101 - model 1283 : UnattendedJavaActivityRequest] com.microsoft.graph.logger.DefaultLogger.logError CoreHttpProvider[sendRequestInternal] - 408Error during http request

    2024-03-13 10:43:43 SEVERE [Appian Work Item - 1278037 - WorkID 197 - execution01 - process 6593101 - model 1283 : UnattendedJavaActivityRequest] com.microsoft.graph.logger.DefaultLogger.logError Throwable detail: com.microsoft.graph.core.ClientException: Error during http request

    2024-03-13 10:43:43,962 [Appian Work Item - 1278037 - WorkID 197 - execution01 - process 6593101 - model 1283 : UnattendedJavaActivityRequest] ERROR com.appiancs.msgraphmail.MSGraphMailPoller - Error during email processing, exiting all

    com.microsoft.graph.core.ClientException: Error during http request

    ____________________________________________________________________________________________________________________

    These error was detected in QAS and PRD, during the process of polling emails from outlook, using MSGraph Email Poller plugin.

      We need to know what is causing this error, as emails that fall into these situations are not being integrated into Appian, but rather sent to the "exception" folder in Outlook.

      This error occurs only with a small subset of emails.

      Regards

    1. Don't think you can handle this automatically. Sounds like you already have logic to recognize replies - instead of merging the POs, kick it out to a human for exception handling.

    2. To close the loop here - together with Appian Support we have proved that the issue was on the Microsoft side. For some reason their graph.microsoft.com endpoint was limiting the size of the response packets to max 4KB, which significantly slowed down eml and attachment downloads. Seems MS has done something over this past weekend to rectify the issue and performance returned to normal.

    3. We had a scenario on order processing management. Customer is sending his PO and appian is receiving this PO and Appian is sending ack and we are merging all this to and fro communication to one order id.

      But now customer is using reply and sending another PO. It is merging with prev PO based on internet messaging id. How can I create another order though end user uses reply from his mail box.

      Thanks

    4.   The only thing I can think of for the slowdown are the MS Graph APIs, they can throttle these with higher traffic and the plugin makes a lot of calls per email. That said, I would expect an occasional 429 response from MS, are you getting more errors? Do you see some emails moved to the "not processed" folder, and the total number of emails processed from the node lower than what you would expect?

      Also, is this slowdown noticeable in a lower environment as well?

    5. This plugin can monitor a specific mailbox/folder combination. The documentation on plugin use is included in the download.

    6. The Advanced Rich Text component is able to handle this specific scenario. Please refer to the docs of that component for guidance.

    7. This is not possible with this component, this component is to read emails that arrive at the mailbox from appian.