Breaking news from around the world
Get the Bing + MSN extension
The views and opinions expressed in this blog are those solely of the author(s) and do not necessarily reflect Microsoft’s current policy, position, or branding. For official announcements and guidance on Dynamics 365 apps and services, please visit the Microsoft Dynamics 365 Blog.
Choose your path Increase your proficiency with the Dynamics 365 applications that you already use and learn more about the apps that interest you. Up your game with a learning path tailored to today's Dynamics 365 masterminds and designed to prepare you for industry-recognized Microsoft certifications.
Visit Microsoft Learn
2019 release wave 2 Discover the latest updates and new features to Dynamics 365 planned through March 2020
Release overview guides and videos Release Plan | View virtual launch event
Ace your Dynamics 365 deployment with packaged services delivered by expert consultants. | Explore service offerings
Connect with the ISV success team on the latest roadmap, developer tool for AppSource certification, and ISV community engagements | ISV self-service portal
The FastTrack program is designed to help you accelerate your Dynamics 365 deployment with confidence.
FastTrack Program | Finance TechTalks | Customer Engagement TechTalks | Talent TechTalks | Upcoming TechTalks
Recently I gave a presentation regarding Omnichannel for Customer Service at 365 Saturday in Paris, afterwards I was asked a question about the files customers might send in webchat conversations. In this scenario a large volume of attachments were expected and these would need to be managed. Therefore they wanted to know where the attachments were stored. In this post I hope to answer that question and more!
After the event my flight back to Birmingham was delayed … meaning, thanks to “flybe” I had some unexpected spare time!
Whilst waiting for my plane I experimented with how attachments are stored. In the end my flight was delayed for longer than I expected …. so I also investigated other data relationships connected with Omnichannel for Customer Service. In this post I will answer the original question and give some additional insight into the entities behind Omnichannel for Customer Service.
So lets start with my original question “How are attachments stored from webchat conversations?“.
Within The Omnichannel Administration app we can define if file attachments are required. And if these can be sent by customers and / or agents.
I think the person speaking to me in Paris was right to ask a question about this! As in some scenarios customers might routinely send multiple pictures of issues. This could quickly consume large amounts of disk, so knowing the location of the attachments would allow us to monitor storage and delete the images after a period of time. (or maybe move them into a cheaper storage location.)
Below you can see a screen shot from my Omnichannel Administration app, this shows how I’ve configured the chat to allow file attachments to be sent by the customers and agents.
The simple answer to the original question is that a note is created regarding the conversation with the customer. This note will have an attachment that contains the file sent by the customer or the agent. I guess it would be a pretty simple task to create a bulk deletion job to remove all notes linked to conversations older than “n” weeks or months.
If you don’t know, within Omnichannel for Customer Service we have an entity called “conversation”. Its schema name has the more catchy name of “msdyn_ocworkitem”. After each chat is completed a conversation record will be created and this will link to other information. For example, the files transferred as part of a conversation.
But I also spotted additional notes being created! So whilst waiting for my delayed plane I started to dig a little deeper. Another entity called transcript is also linked to the conversation entity. Each transcript entity will have a note which contains an attachment called “message.txt”. This txt file contains some JSON which in turn holds the content (transcript) from my conversations. Knowing this exists and that you could therefore access the content of the conversations might be very useful.
Incidentally when I looked at the JSON it also contains the GUID of the note containing the attachment from my conversation. Meaning my transcript and any attachments are indirectly linked via this GUID.
Tip: You might also want to consider when to run a bulk delete against the notes containing conversation transcripts. Do you really want to store all the text from all your webchat conversations indefinitely!
With my delay worsening I bought a notepad and pen from a trusty airport stationery shop. I then completed multiple webchats and started to scribble details for any other entities that had been updated. You can see my carefully crafted and completely illegible notes below!
Obviously these scribbles were hard to understand and I’d quickly forget what they meant! So this morning I created a version of them using Visio, as a result I hope the diagram below will make a little more sense.
In addition to looking at how notes are used in connection with conversations I also investigated ongoing conversations, sessions, sentiment analysis and characteristics (skills).
Importantly: I never set out to document all of the entities / fields connected with omnichannel conversations! But I did end up reviewing more than I expected! So this post shouldn’t be considered a complete picture but will still hopefully give you some useful insights into how omnichannel conversations are stored.
– the ongoing conversations entity (msdyn_liveconversation) holds details for the current active conversations. Including the status of the conversation, when it started, current active agent and sentiment. I believe knowing this could be really useful if you wanted to report on the number of current conversations or maybe trigger alerts when very negative conversations happen.
– Each session is linked to one or more conversations. Often you will have just one session record and one conversation. But if the same conversation is opened and closed multiple sessions will exist. Sessions might be really useful as they link to another entity called session participants. The participants being the agents that were involved in that part of the conversation. Sessions could be complex! For example, Agent one might start the conversation, then consult agent two about the issue and finally transfer to agent three. And whilst this is happening a supervisor might monitor the chat. All of this complex process could be reviewed via the sessions entity.
– We have a conversation sentiment entity but additionally optionsets on other entities also highlight sentiment information. For example, it might be useful to know that the current sentiment of a live conversation is held in the ongoing conversation entity!
Characteristics (aka skills)
– skills based routing has been recently added to Omnichannel for Customer Service. We can define skills for agents and workstreams. This information is then used to match the best agents to the right incoming conversations. We also have a number of entities that record which sessions and conversations involved what skills. You might find this useful for reporting, as you could ask questions like “which conversations have happened that needed agents with xyz skill”.
Below are my rough notes for each entity; (Again this shouldn’t be considered complete documentation, these notes are just some pointers!)
Includes an optionset called Customer sentiment (msdyn_customersentimentlabel) which hold current sentiment. (Values include “Very negative”, “Neutral”, “Slightly Positive” etc.
Status reason can be open, active, waiting, closed or wrap-up.
Date time fields show when agent joined, left or was added into the session
Contains text field (msdyn_sentimentzone) to state if conversation was negative, positive etc.
The message.txt contains a JSON with all content from the conversation.
If the conversation included sending / receiving an attachment “message.txt” will include the GUID of a note containing the attachment. However the note for the attachment will actually be regarding the conversation.
In the end my flight left Paris and my “work” was cut short. Hence this post only covers a partial picture of the Omnichannel for Customer Service entities. I guess there will be more I could learn by digging even further …. maybe I’ll use Ryanair next time and “pray” for an even longer delay!!
Note: Other unreliable budget airlines are available!!
Until my next delayed flight I hope this information answers the question I was set and offers a few extra pointers!
Business Applications communities