Display Omnichannel chat widget in the footer of your portal

The combination of PowerPortals, Dynamics 365 Omnichannel and Power Virtual Agents increases the level of customer engagement for customers, in this post I'm going to guide you how to add your Omnichannel chat widget that you configured to your portal.
First, below are the pre-requisites to follow the blog,
- You have at least one Portal
- Omnichannel is installed
- Power Virtual Agent bot is configured to hand of chat conversations to Omnichannel
After having the above pre-requisites done, follow the below steps,
- From the "Omnichannel admin center" model-driven application
- Go to Workstreams and create and configure a new workstream based on your channel
- Enter your stream record, and click on "Copy code snippet"
- Switch to "Portal Management" model-driven app
- Create a new content snippet and past the copied snippet from Omnichannel work steam
- Go to "Web Templates" and enter the "Footer" record
- Search for the footer tag and add the widget using the below code
{% include 'snippet' snippet_name:'Your Chat Widget Name' %}
The footer tag will look like this
<footer role="contentinfo">
<div class="footer-top hidden-print">
<div class="container">
<div class="row">
<div class="col-md-6 col-sm-12 col-xs-12 text-left">
{% editable snippets 'About Footer' type: 'html' %}
{% include 'snippet' snippet_name:'Your Chat Widget Name' %}
</div>
</div>
</div>
</div>
- Clear your portal cache by navigating to "<< Your portal URL >>/_services/about"
You need to be logged in to your portal with a contact that has administrator portal role
click on "Clear Cache" button
- Refresh your portal and you will see the chat widget displayed!
That's it!
You want to add it to more web templates? follow the steps from step number 5 on the web template you like.
Published on:
Learn moreRelated posts
Reusable Validations for Power Pages Development: Code Once, Use Everywhere (Part 2)
In the previous blog, we explored a collection of essential, reusable validation scripts for Power Pages — ranging from simple input checks to...
Reusable Validations for Power Pages Development: Code Once, Use Everywhere (Part 1)
Validating user input is one of the most important — yet often overlooked — aspects of Power Pages development. Whether you’re building a publ...
Announcing the AI-Powered Search and Summary Components in Power Pages Component Library
We’re excited to announce the addition of AI-powered Search and Summary components to the Power Pages Component Library. These components are ...
Announcing the AI-Powered Search and Summary Components in Power Pages Component Library
We’re excited to announce the addition of AI-powered Search and Summary components to the Power Pages Component Library. These components are ...
5 Tips for Smart Data Handling in Power Pages
Effective data handling is critical in Power Pages, ensuring secure, reliable, and user-friendly experiences across customer portals, registra...
Understanding Advanced Settings in Power Pages (Preview)
Power Pages is a strong tool that helps you create and run websites. One key feature of the Advanced Settings helps improve the security of yo...
[Step by Step] Power Pages | Configure Multiple Languages
Power Pages allows you to build a website that supports multiple languages using a single content structure. This helps deliver a consistent e...
5 Quick Tips on Performance & Optimization Techniques for Power Pages Developers
Microsoft Power Pages empowers developers to build dynamic, data-rich sites quickly, but performance tuning is essential to ensure a smooth us...
Power Pages Fundamentals #21: Power Pages CRUD Operations Guide with WebAPI: Quick Read Series
In Power Pages CRUD operations is a common scenario for any implementation with WebAPI. I will explain this step by step process with the exam...
Clean and Maintainable Power Pages: 5 Tips for Writing Modular Code (JavaScript, Liquid, and FetchXML Efficiently)
In Power Pages development, efficiency and scalability is important. Whether you’re building multi-step forms, handling dynamic validati...