Writing today to let you all know about two new features for the Company Communicator community fork.

If you update to the latest version, your users will be able to react to messages sent by the bot and their opinion will be recorded back into the database. You can use the new feature to measure the impact of a notification in your user population and evaluate the pulse of your organization.

You will also have a new option to report not only the reactions, but the reads and button clicks not only using Power BI, but analyzing the excel file that is exported when you click on sent messages.

Reaction Tracking

To record user reactions the CC send function was extended to record the ActivityID of all messages sent by the platform. Then the bot activity handler was extended to override the OnReactionsAddedAsync event and correlate the reaction to the appropriate message record on the database. When a new reaction is added to the message, the code stores the appropriate value back on the database.

That results in a new column on the SentNotificationData table that now contains the user reaction for messages. The new database column can be incorporated to the Company Communicator Insights template report, your customized report created from the data or exported to a text file for posterior analysis.

Please be aware that only messages sent to users can have the reaction recorded at this moment. Messages posted by the bot on the General channel don’t have the reactions tracked yet (it is planned for the future).

Easy Reporting

Back in 2021 I implemented a framework to track reading operations. Together I released a Power BI template file with a sample report that can be generated connecting directly to the Azure data table used by Company Communicator.

Now I’m providing a new way to report on the data. From the author’s Teams application, you can just click on the message sent and push the “Export detailed results” button. Company Communicator will process the request and the Author’s bot will send a file to you on a specific chat with the Authors bot. You can then save the file locally on your PC and use Excel to report on the data.

The file will have a line for each message from the notification created by the author. You will have the user identification together with the delivery status, read status, information on the buttons clicked and of course the reaction the user had over that specific message.

How to update my deployment and get those new features?

First you need to be at least with version 5 deployed. If you are still running one of the previous versions, you will need to follow steps documented here to upgrade. The upgrade process following the link I’m providing here will bring you to the latest version of the community fork, already with the features I described here and on the previous articles.

If you already have v5 running (can be the official CC version of any of the v5 based forks/versions) you just need to update the repository for the App Service and each one of the Azure Functions to point to the community fork repository. Here are the steps:

  1. Open your Azure Portal and authenticate using admin credentials.
  2. Open the resource group where you installed Company Communicator.
  3. Select the App Service being used by CC and click on Deployment Center, under Deployment.
  4. In Settings, click Disconnect under External Git.
  1. Click OK to disconnect your deployment.
  2. Under Source, select External Git.
  1. In Repository, type https://github.com/cristianoag/microsoft-teams-apps-company-communicator.git
  2. In Branch, type master
  3. Leave the Repository Type as Public, and click Save.
  4. Click Sync.
  5. The whole update process will take a few minutes. Make sure you see Success (Active) on the logs tab.
  6. Now repeat that for each one of the Azure Functions you have on the same resource group. Those are the resources listed as:
    • <ccname>-data-function
    • <ccname>-function
    • <ccname>-prep-function

Stay safe! Cristiano.

Disclaimer – The information contained in this blog post doesn’t represent the official Microsoft guidance or best practices. It is just the view of the author on current alternatives, implementations and workarounds for common issues and/or business needs. Please refer to official Microsoft documentation and evaluate carefully any steps, code or procedures documented herein. The author doesn’t offer any warranty. Use this information at your own risk.