How To Use Flow to Build Office Rich Card Solution w/Teams and Yammer - Part 2
Introduction
In my previous blog post I described how we increase team's productivity by leveraging Microsoft Teams to enable conversations around customer feedback from SharePoint list. Now if you can connect your team to drive solutions, imagine the impact you can drive by leveraging collective experience and insights from employees across your organization.
In this blog post we look at how Yammer helps in solving business challenges by bringing in insights from employees across organization.
Customer feedback – scenario recap
If you have not already done so, I recommend you read my previous article to get context of the business scenario. Following is a summarized recap:
- Contoso has a customer service team. This team focusses on improving customer satisfaction by capturing and addressing customer feedback. They have a solution that helps them maintain, brainstorm and triage feedbacks.
- Solution uses a SharePoint list that captures all the customer feedback
- Solution also uses Microsoft Teams to collaborate internally.
- We have integrated SharePoint list with Microsoft Teams using Flow. This integration helps team members to share ideas and have conversation around each customer feedback. Because of this integration, the team has accelerated their time to resolution on each feedback item
Building on insights from employees across organization
Contoso is a global organization with operations in all major regions – North America (NA), EMEA, and Africa. The customer service team in our scenario is from North America. Similarly, Contoso has 2 other customer service team each in EMEA and Africa. Our NA team shared their Teams solution with EMEA and Africa and now these 2 regions are using similar solution to work through their customer feedback.
Each of our 3 regional teams service their regional customers. However, there is a need for a region to reach out to other regional teams to get their insights and experience on a customer feedback. They would like to know how other regions are addressing similar challenges. For instance, NA team receives feedback that process of assembling the product needs significant simplification. Customers have complained that it is difficult to follow the instructions and they end up calling customer support to help with assembly. This is negatively impacting customer satisfaction and based on the survey the NA team realized that some customers are moving to competitor products because of this experience.
The NA team has some ideas on how they can simplify the product assembly process but would like to get insights from other regions on how they have addressed this feedback. Currently they reach out using emails, which works mostly but there is an efficient solution we will propose to this team.
Solution at a glance
We know Contoso has a Yammer network in their Office 365 tenant. In this solution we will use their existing solution components, which includes SharePoint, Teams and Flow, and extend this solution to include Yammer for organizational insight. Following are our solution components and their role
1. SharePoint list (existing): named customer feedback already exists. This is where the team keeps track of each customer feedback. Each region has its own instance of customer feedback SharePoint list.
2. Microsoft Teams (existing): named customer satisfaction already exists. This is where the team members collaborate and discuss solutions to address customer feedback. Each region has its own Team in Microsoft Teams for collaboration
3. Microsoft Flow – SharePoint to Teams (update): In my last article we created a Flow that posts new customer feedbacks created in SharePoint into Teams as conversation post. We will be updating this Flow such that the post that is made in Teams includes an user experience to post the question from Teams into Yammer
4. Microsoft Flow – Teams to Yammer (new):
We will build a new Flow that gets triggered when user posts their question from Teams conversation. This Flow will take the message from Teams and then post it into Yammer. Along with the message, this Flow will also include a topic #customersat into the Yammer message.
5. Microsoft Teams – Yammer Connector (new).
We will configure Yammer connector in our Teams for each region. This connector will bring in Yammer conversations that are tagged with topic #customersat into Teams conversation. This will help members across regions to get notified about the ask that was posted by a member in a region
Just to recap, with this solution now have achieved following:
- With our first part solution in my previous article, we connected team members within region to brainstorm ideas and address challenges
- With our second part solution in this article, we have connected all the regional teams across geography to learn from each other and share their learnings with each other.
Make it real!
In this section we will do a deep dive on the implementation aspect of the solution. We will start where we left in previous article.
1. Microsoft Flow – SharePoint to Teams (update)
We will update the Flow we created earlier to include a button that will allow user to enter message that gets posted into Yammer
This can be achieved by adding following to our HTTP Post body in the Flow
"potentialAction": [ { "@@type": "ActionCard", "name": "Post in Yammer", "inputs": [ { "@@type": "TextInput", "id": "comment", "isMultiline": true, "title": "Enter your Yammer post here" } ], "actions": [ { "@@type": "HttpPOST", "name": "Submit", "target": "https://<<webapi url>>/api/YammerFlow", "body": " {\"YammerPost\": \"{{comment.value}}\" }", "bodyContentType": "application/json" }]}]
You can refer to Office connector cards extensibility article here for more information on the JSON markup. One other great tool to help with markup is the message card playground.
What is essentially happening here is when user clicks on "Post in Yammer" button, a text input shows up with a multi-line text input and a button named Submit. When user clicks on the button the user input is sent through http POST to Web API hosted in Azure. Ideally, we would post the user input directly to Flow (described below), which would post this message to Yammer. However, currently invoking a Flow from Teams does not work because of a pending engineering work detailed here. I do not have any ETA, but until that happens you can create an intermediary Web API using .NET core and hose it in Azure. This Web API takes the user input and invokes the Flow described below.
If you want to know how to build a Web API using .NET core, take a look at channel 9 video here
2. Microsoft Flow – Teams to Yammer (new)
In this section we will create a new Flow that accepts HTTP Post request and passes it on to a Yammer flow action.
To learn more about this Flow, refer to this blog post here
You will notice that we are adding #customersat in our message text. This will ensure all the messages posted through Yammer is tagged with topic #customersat. In next section you will see how this is used to bring all Yammer messages tagged with #customersat is pulled into Teams conversation. This helps all of 3 regional customer satisfaction teams to be sync and share their questions and learnings. Microsoft Teams is our hub for teamwork and it is pushing and pulling relevant information from SharePoint and Yammer.
3. Microsoft Teams – Yammer Connector (new)
In this last step we will configure Yammer connector in each of our 3 regional Teams. This connector will bring in Yammer posts that are tagged with #customersat. Instead of me walking you through each step, I am going to redirect you this blog post by a colleague of mine. Only change you will make here is to configure the connector with #customersat in the screen below
Business value
Value to the business here is improved customer experience and thus growing the market share. This is possible by connecting people and allowing them to share their learnings and experience. Even without this solution, team members would have communicated, but this solution just made the process much more efficient. Now not only team members can brainstorm on customer challenges among themselves, they can reach out to their colleagues across their organization.
Why Yammer?
One question that usually gets asked is why we need Yammer at all for this solution. Couldn't we have leveraged another Team within Microsoft Teams? Yes we certainly could have and it probably would make sense to do that if you are in SMB (Small and Medium business) space. The reason I would recommend using Yammer for this solution is to reach out to employees across business functions and geography, reach out to folks you may not even know, and also to share your experience with organization. Some one some where may find your information useful and use it for purpose that you may not have anticipated.
I also get asked when to use Yammer and when to use Teams, and I think this blog post and the previous one helps us with that question. There is no one matrix that we can build to guide the decision tree, but there are these scenarios that will help us understand the role each one plays.
Why not use Teams action in Flow?
After I my previous blog post, I was asked why did I have to create a HTTP post action and use the JSON markup when I could have use the new Teams flow action. The answer is the extensibility that Office connector card provides. The Teams flow would have helped us to post a conversation in Teams from SharePoint list, but we could not have added a button and the user experience we have built in this scenario.
Hope this was helpful. Let me know your thoughts and feedback. You can reach me on twitter @arbindoc and my blog on https://aka.ms/acblog
*This post is locked for comments