Hi There!
Using Power Virtual Agents, is possible to reconnect the user to a conversation, retaining both the context and previous chat history?
For example,
The Azure bot service supports reconnecting to a conversation. Is this available for Power Virtual Agents?
Is the Conversation ID available as a property to the hosting website to store for the user?
Solved! Go to Solution.
Hi @LindaP ,
I created a workflow to solve your problem. (if you are using a Custom canvas)
Please, follow the steps below:
Power Automate steps
1. Download the template here: https://bit.ly/PVA-GetConversationTranscript
2. Open flow.microsoft.com
3. Open Solutions (left menu)
4. Import my solution in your environment
5. Open the solution and click on the workflow
6. Turn on the workflow
7. Edit the workflow
8. Find the action called "Compose - Filter days in the past", I inserted "-7" to search seven days in the past because if you are filtering more than 7, maybe your workflow will be loaded up to 2 minutes and Power Virtual Agents will be shown the error. If you want to search for conversations for more than 7 days, test before implementing this feature and remember to insert subtract value before your day like "-10" (ten days in the past).
9. Find the action called "List records - Conversation Transcript entity" and select your credentials (is not need to change the environment or entity)
10. Done.
Custom Canvas
Important: This solution will be work if you are using inside Custom Canvas, like Custom website, Power Apps Portals, SharePoint, or something like that.
1. Add this code inside your custom canvas: https://powervirtualagents.microsoft.com/en-us/blog/change-your-power-virtual-agents-default-canvas-...
2. Change the fetch method to my code below (only fetch code)
New fetch code
fetch(theURL)
.then(response => response.json())
.then(conversationInfo => {
window.WebChat.renderWebChat(
{
directLine: window.WebChat.createDirectLine({
token: conversationInfo.token,
}),
store: store,
styleOptions: styleOptions,
overrideLocalizedStrings: {
TEXT_INPUT_PLACEHOLDER: 'Type your message'
}
},
document.getElementById('webchat')
);
$("#webchat input").parent().parent().parent().append("<div id='conversationId'><span>"+conversationInfo.conversationId+"</span></div>")
})
.catch(err => console.error("An error occurred: " + err));
3. The idea is the user saves the current Conversation Id if he wants to restore this conversation in the future (like a code number). He can save in your notes and personal documents and in the future, if he wants to see the last conversation, he just sends this code.
4. Insert this CSS code to improve the layout
div#conversationId {
padding: 0 10px;
color: #888787;
font-size: 13px;
text-align: center;
}
5. Done.
Power Virtual Agents steps
Important: This solution will be work if you are using inside Custom Canvas, like Custom website, Power Apps Portals, SharePoint, or something like that.
1. Open Greeting topic or your Starter topic
2. Create a question with two options
Question: "Do you want to restore a conversation?"
Options: Yes/No
3. If Yes, create a question with identity type "User's entire response" and change the name of variable like "ConversationId". The idea is the user saves the current Conversation Id if he wants to restore this conversation in the future (like a code number).
5. Create an action calling my workflow (Power Automate) using the ConversationId variable like the input parameter.
6. Create a show message and select the variable ConversationHistory (Power Automate output)
7. Done.
I hope this solution helps you to do your scenario.
Hi @LindaP ,
Unfortunately, we can't do it yet.
You can maintain the history in some channels like Microsoft Teams and Facebook because the chat maintains the historical inside the channel. But if you are using the browser, demo website, or something like that, you will lose the conversation.
I created the idea here: https://powerusers.microsoft.com/t5/Power-Virtual-Agents-Ideas/Reconnect-the-conversation-with-user-...
Please, vote and make this answer as the solution to many users' votes.
---
Thanks!
Renato Romão
https://www.linkedin.com/in/renatoromao/
Thanks @renatoromao . You have confirmed what I thought was not possible yet. Thank you.
Have already cast my vote for the idea.
You're welcome! @LindaP
Please, Accept this answer as the solution.
---
Thanks!
Renato Romão
https://www.linkedin.com/in/renatoromao/
Hi @LindaP and @renatoromao
There is a ConversationHistory entity in CDS that stores information of the user interaction with the bot in json format.
Not sure about anonymous conversations but if user does authenticate I believe that token info is available and one could leverage flow to query the CDS entity to check the last conversation the bot had with the user.
@renatoromao thoughts?
--------------------------------------------------------------------------------
If this post helps answer your question, please click on “Accept as Solution” to help other members find it more quickly. If you thought this post was helpful, please give it a Thumbs Up.
Thanks,
Reza Dorrani, MVP
YouTube
Twitter
Great idea @RezaDorrani , but we have a limitation to restore the history to the user 😞
But if @LindaP follow your idea, she can use the authentication to get the user token during the conversation and if the connection has been lost, she can create automation using Power Automate when the record is created on Common Data Service entity called ConversationTranscript, she can read the JSON inside the "Content" field and get the token and identify which user has this token and send the email to him.
It's complex, but works (I think) 🙂
- Create Authentication inside your topic
- Create a workflow inside Power Automate with the trigger "When an item created" (something like that) inside Common Data Service, your bot environment, entity called "ConversationTranscript"
- Create Parse JSON action to get the user token inside the conversation
No doubt complicated but should provide the required results.
Key here is user authentication because without that it will not be possible to read the users last conversation data.
Also, I beleive conversation history stores data upto a Month only, so the user has to have made their last interaction with the bot within that timespan.
--------------------------------------------------------------------------------
If this post helps answer your question, please click on “Accept as Solution” to help other members find it more quickly. If you thought this post was helpful, please give it a Thumbs Up.
Thanks,
Reza Dorrani, MVP
YouTube
Twitter
Thanks for the idea @RezaDorrani. This could work for the scenario where the user is authenticated to the bot.
The scenario that I am trying to resolve is for a non-authenticated user.
It would be helpful to have the ConversationId exposed during the chat session so the website could store it in the user's cookies. For example, when the user revisits the website then the bot could try and retrieve the conversation using the stored ConversationId via a Flow and CDS lookup (if within the retention period). Otherwise, start a new conversation if a ConversationId is not stored. I am no website expert, but it was just my idea of how it could potentially work.
Hi @LindaP ,
I created a workflow to solve your problem. (if you are using a Custom canvas)
Please, follow the steps below:
Power Automate steps
1. Download the template here: https://bit.ly/PVA-GetConversationTranscript
2. Open flow.microsoft.com
3. Open Solutions (left menu)
4. Import my solution in your environment
5. Open the solution and click on the workflow
6. Turn on the workflow
7. Edit the workflow
8. Find the action called "Compose - Filter days in the past", I inserted "-7" to search seven days in the past because if you are filtering more than 7, maybe your workflow will be loaded up to 2 minutes and Power Virtual Agents will be shown the error. If you want to search for conversations for more than 7 days, test before implementing this feature and remember to insert subtract value before your day like "-10" (ten days in the past).
9. Find the action called "List records - Conversation Transcript entity" and select your credentials (is not need to change the environment or entity)
10. Done.
Custom Canvas
Important: This solution will be work if you are using inside Custom Canvas, like Custom website, Power Apps Portals, SharePoint, or something like that.
1. Add this code inside your custom canvas: https://powervirtualagents.microsoft.com/en-us/blog/change-your-power-virtual-agents-default-canvas-...
2. Change the fetch method to my code below (only fetch code)
New fetch code
fetch(theURL)
.then(response => response.json())
.then(conversationInfo => {
window.WebChat.renderWebChat(
{
directLine: window.WebChat.createDirectLine({
token: conversationInfo.token,
}),
store: store,
styleOptions: styleOptions,
overrideLocalizedStrings: {
TEXT_INPUT_PLACEHOLDER: 'Type your message'
}
},
document.getElementById('webchat')
);
$("#webchat input").parent().parent().parent().append("<div id='conversationId'><span>"+conversationInfo.conversationId+"</span></div>")
})
.catch(err => console.error("An error occurred: " + err));
3. The idea is the user saves the current Conversation Id if he wants to restore this conversation in the future (like a code number). He can save in your notes and personal documents and in the future, if he wants to see the last conversation, he just sends this code.
4. Insert this CSS code to improve the layout
div#conversationId {
padding: 0 10px;
color: #888787;
font-size: 13px;
text-align: center;
}
5. Done.
Power Virtual Agents steps
Important: This solution will be work if you are using inside Custom Canvas, like Custom website, Power Apps Portals, SharePoint, or something like that.
1. Open Greeting topic or your Starter topic
2. Create a question with two options
Question: "Do you want to restore a conversation?"
Options: Yes/No
3. If Yes, create a question with identity type "User's entire response" and change the name of variable like "ConversationId". The idea is the user saves the current Conversation Id if he wants to restore this conversation in the future (like a code number).
5. Create an action calling my workflow (Power Automate) using the ConversationId variable like the input parameter.
6. Create a show message and select the variable ConversationHistory (Power Automate output)
7. Done.
I hope this solution helps you to do your scenario.
Hi! Do you have a still active link for this, please?
Super Users – 2023 Season 1 We are excited to kick off the Power Users Super User Program for 2023 - Season 1. The Power Platform Super Users have done an amazing job in keeping the Power Platform communities helpful, accurate and responsive. We would like to send these amazing folks a big THANK YOU for their efforts. Super User Season 1 | Contributions July 1, 2022 – December 31, 2022 Super User Season 2 | Contributions January 1, 2023 – June 30, 2023 Curious what a Super User is? Super Users are especially active community members who are eager to help others with their community questions. There are 2 Super User seasons in a year, and we monitor the community for new potential Super Users at the end of each season. Super Users are recognized in the community with both a rank name and icon next to their username, and a seasonal badge on their profile. Power Apps Power Automate Power Virtual Agents Power Pages Pstork1* Pstork1* Pstork1* OliverRodrigues BCBuizer Expiscornovus* Expiscornovus* ragavanrajan AhmedSalih grantjenkins renatoromao Mira_Ghaly* Mira_Ghaly* Sundeep_Malik* Sundeep_Malik* SudeepGhatakNZ* SudeepGhatakNZ* StretchFredrik* StretchFredrik* 365-Assist* 365-Assist* cha_cha ekarim2020 timl Hardesh15 iAm_ManCat annajhaveri SebS Rhiassuring LaurensM abm TheRobRush Ankesh_49 WiZey lbendlin Nogueira1306 Kaif_Siddique victorcp RobElliott dpoggemann srduval SBax CFernandes Roverandom schwibach Akser CraigStewart PowerRanger MichaelAnnis subsguts David_MA EricRegnier edgonzales zmansuri GeorgiosG ChrisPiasecki ryule AmDev fchopo phipps0218 tom_riha theapurva takolota Akash17 momlo BCLS776 Shuvam-rpa rampprakash ScottShearer Rusk ChristianAbata cchannon Koen5 a33ik Heartholme AaronKnox okeks Matren David_MA Alex_10 Jeff_Thorpe poweractivate Ramole DianaBirkelbach DavidZoon AJ_Z PriyankaGeethik BrianS StalinPonnusamy HamidBee CNT Anonymous_Hippo Anchov KeithAtherton alaabitar Tolu_Victor KRider sperry1625 IPC_ahaas zuurg rubin_boer cwebb365 Dorrinda G1124 Gabibalaban Manan-Malhotra jcfDaniel WarrenBelz Waegemma drrickryp GuidoPreite If an * is at the end of a user's name this means they are a Multi Super User, in more than one community. Please note this is not the final list, as we are pending a few acceptances. Once they are received the list will be updated.
Episode Six of Power Platform Connections sees David Warner and Hugo Bernier talk to talk to Business Applications MVP Shane Young, alongside the latest news, product updates, and community blogs. Use the hashtag #PowerPlatformConnects on social media for a chance to have your work featured on the show! Show schedule in this episode: 0:00 Cold Open 00:24 Show Intro 01:02 Shane Young Interview 22:00 Blogs & Articles 22:20 Integrate FullCalendar.io with Power Pages 23:50 Text Data 25:15 Zero to Hero Power Apps Saga 25:44 Parent Hub Association 26:33 Using Custom Values for OneNote Power Automate References 28:04 Dynamics Power Israel 28:44 Create Beautiful Canvas Apps in Dataverse for Teams 30:36 Outro & Bloopers Check out the blogs and articles featured in this week’s episode: https://francomusso.com/integrate-fullcalendar-io-with-power-pages-from-json-basics-to-advanced-output-with-bootstrap-modal @crmbizcoach https://yerawizardcat.com/text/ @YerAWizardCat www.fromzerotoheroes.com/mentorship @thevictordantas https://www.expiscornovus.com/2023/03/16/parent-hub-association/ @Expiscornovus https://lindsaytshelton.com/2023/03/15/the-painful-process-of-custom-values-for-onenote-power-automate-references/ @lshelton_Tech https://never-stop-learning.de/create-beautiful-canvas-apps-in-dataverse-for-teams/ @MMe2K Action requested: Feel free to provide feedback on how we can make our community more inclusive and diverse. This episode premiered live on our YouTube at 12pm PST on Thursday 23rd March 2023. Video series available at Power Platform Community YouTube channel. Upcoming events: Business Applications Launch – April 4th – Free and Virtual! M365 Conference - May 1-5th - Las Vegas Power Apps Developers Summit – May 19-20th - London European Power Platform conference – Jun. 20-22nd - Dublin Microsoft Power Platform Conference – Oct. 3-5th - Las Vegas Join our Communities: Power Apps Community Power Automate Community Power Virtual Agents Community Power Pages Community If you’d like to hear from a specific community member in an upcoming recording and/or have specific questions for the Power Platform Connections team, please let us know. We will do our best to address all your requests or questions.
We are excited to share the ‘Power Platform Communities Front Door’ experience with you! Front Door brings together content from all the Power Platform communities into a single place for our community members, customers and low-code, no-code enthusiasts to learn, share and engage with peers, advocates, community program managers and our product team members. There are a host of features and new capabilities now available on Power Platform Communities Front Door to make content more discoverable for all power product community users which includes ForumsUser GroupsEventsCommunity highlightsCommunity by numbersLinks to all communities Users can see top discussions from across all the Power Platform communities and easily navigate to the latest or trending posts for further interaction. Additionally, they can filter to individual products as well. Users can filter and browse the user group events from all power platform products with feature parity to existing community user group experience and added filtering capabilities. Users can now explore user groups on the Power Platform Front Door landing page with capability to view all products in Power Platform. Explore Power Platform Communities Front Door today. Visit Power Platform Community Front door to easily navigate to the different product communities, view a roll up of user groups, events and forums.
Today, we are excited to unveil new features within Power Platform that incorporate next-generation AI, in including conversation boosters with Power Virtual Agents and AI Builder introducing a create text with GPT model. These features bring both a new way for developers to solve business problems and a new way for end-users to leverage AI in the flow of their work to be more productive. This is a glimpse of what’s to come as we continue to ramp up our investment in AI across Power Platform. We recognize the significance of both AI and low code for organizations and the benefits these technologies in union can have for all developers: a more intuitive, iterative experience for citizen developers and accelerated development for professional developers. We announced AI Builder 4 years ago as the first AI capability in Power Platform, followed by Power Apps Ideas 18 months ago, which was the first infusion of generative AI in a commercially- available product. And we have continued to invest, with the addition of express design in Power Apps, and description to flow in Power Automate late last year. Today, we’re taking another big step forward in this journey with the launch of next-generation AI features for Power Virtual Agents and AI Builder, enabled by Azure Open AI service. New! – Conversation booster in Microsoft Power Virtual Agents New! – Create text with GPT model in AI Builder AI Builder create text with GPT model Read the full Product blog here: https://aka.ms/PP-GPT **Tips & tricks for using the Power Virtual Agents Boost Conversational Coverage Preview: Solved: Tips & tricks for using the Power Virtual Agents B... - Power Platform Community (microsoft.com)
We are so excited to see you for the Microsoft Power Platform Conference in Las Vegas October 3-5 2023! But first, let's take a look back at some fun moments and the best community in tech from MPPC 2022 in Orlando, Florida. Featuring guest speakers such as Charles Lamanna, Heather Cook, Julie Strauss, Nirav Shah, Ryan Cunningham, Sangya Singh, Stephen Siciliano, Hugo Bernier and many more. Register today: https://www.powerplatformconf.com/
Following our recent release of Conversation Boosters for PVA, today we’re excited to go further and announce Copilot for Power Virtual Agents! With Copilot, using the power of Azure Open AI, you simply describe what you would like your bot to, using natural language, and Copilot will build an entire PVA topic - ready to use in seconds! What can the new Copilot in Power Virtual Agents do? CREATE entire topic from scratch with a simple description. REFINE content in an existing topic, such as asking for additional questions to be added or updating existing nodes (example: providing message variations). SUMMARIZE information collected from a user with adaptive cards. ITERATE over just part of a dialog with specific node selection. Try Copilot in Power Virtual Agents now: https://aka.ms/tryPVA Learn more in the full blog post: https://aka.ms/GPT-PP