< All Topics
Print

User Stats Monthly

This scenario is a is a monthly report that displays stats regarding the users calls, meetings and messages.

Example


Top section: number of each type in the period (weekly or months), and the percentage is change since last time period – green for increase, red (with a – in front) for decrease.

Lower section:

P2P calls %

Value is CallsVsMeetingsPercentageChange, calculated as:

PL/SQLPL/SQL

round(CallsVsMeetingsPercentage - CallsVsMeetingsPercentageLastPeriod) * 100, 2) as CallsVsMeetingsPercentageChange

CallsVsMeetingsPercentage is 

PL/SQLPL/SQL

(CallsThisPeriod as float) / (CallsThisPeriod + MeetingsThisPeriod)

Meetings %

Value is MeetingsVsCallsPercentageChange, calculated as:

PL/SQLPL/SQL

round(MeetingsVsCallsPercentage * 100, 2) as MeetingsVsCallsPercentage    ,round((MeetingsVsCallsPercentage - MeetingsVsCallsPercentageLastPeriod) * 100, 2) as     MeetingsVsCallsPercentageChange

P2P vs Meetings

Takes CallsVsMeetingPercentage, MeetingsVsCallsPercentage and shows proportion of calls vs meetings

Chart is done in https://quickchart.io 

Required Settings

SettingValue
StoredProcedureNameautomation.SpGetUserStatsForMonth
IsSentOnceFalse

SQL Query

TextText

CREATE PROCEDURE [automation].[SpGetUserStatsForMonth]
AS
BEGIN
    EXEC automation.SpGetUserActivityStatsBase 28
END
GO

Example Data Model

TextText

{
  "RowsWithAdditionalProperties": [
    {
      "Value": {
        "UserFirstName": "Oliver",
        "CallCount": 176,
        "CallsLastPeriod": 35,
        "CallCountPercentageChange": 402.86,
        "MeetingCount": 33,
        "MeetingsLastPeriod": 42,
        "MeetingCountPercentageChange": -21.43,
        "TeamChatCount": 0,
        "TeamChatMessagesLastPeriod": 1,
        "TeamChatCountPercentageChange": -100,
        "PrivateChatCount": 1951,
        "PrivateChatMessageCountsLastPeriod": 1095,
        "PrivateChatCountPercentageChange": 78.17,
        "CallsVsMeetingsPercentage": 84.21,
        "CallsVsMeetingsPercentageChange": 38.76,
        "MeetingsVsCallsPercentage": 15.79,
        "MeetingsVsCallsPercentageChange": -38.76
      }
    }
  ]
}

Example Card Template

Basic format to be customised

TextText

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "version": "1.2",
  "type": "AdaptiveCard",
  "originator": "OriginatorIdPlaceholder",
  "body": [
    {
      "type": "Container",
      "backgroundImage": {
        "url": "https://cdn.modalitysystems.com/TeamworkAnalytics/Automation/Backgrounds/header_lightblue.png"
      },
      "items": [
        {
          "type": "ColumnSet",
          "columns": [
            {
              "type": "Column",
              "items": [
                {
                  "type": "Image",
                  "url": "https://cdn.modalitysystems.com/Icons/ic_fluent_people_team_filled.png",
                  "size": "Small"
                }
              ],
              "width": 30
            },
            {
              "type": "Column",
              "items": [
                {
                  "type": "TextBlock",
                  "text": "User Activity",
                  "horizontalAlignment": "Right",
                  "wrap": true,
                  "color": "Dark"
                },
                {
                  "type": "TextBlock",
                  "text": "MONTHLY REPORT",
                  "horizontalAlignment": "Right",
                  "spacing": "None",
                  "size": "Large",
                  "color": "Attention",
                  "wrap": true,
                  "weight": "Bolder"
                }
              ],
              "width": 70
            }
          ]
        }
      ]
    },
    {
      "type": "TextBlock",
      "text": "${RowsWithAdditionalProperties[0].Value.UserFirstName}, here's your Teams report:",
      "wrap": true,
      "size": "Large",
      "color": "Accent"
    },
    {
      "type": "ColumnSet",
      "separator": true,
      "spacing": "ExtraLarge",
      "columns": [
        {
          "type": "Column",
          "items": [
            {
              "type": "TextBlock",
              "text": "P2P Calls",
              "spacing": "Small",
              "size": "Medium"
            },
            {
              "type": "TextBlock",
              "text": "Meetings",
              "spacing": "Small",
              "size": "Medium"
            },
            {
              "type": "TextBlock",
              "text": "Channel Messages",
              "spacing": "Small",
              "size": "Medium"
            },
            {
              "type": "TextBlock",
              "text": "Chat Messages",
              "spacing": "Small",
              "size": "Medium"
            }
          ],
          "width": "stretch",
          "spacing": "Medium"
        },
        {
          "type": "Column",
          "items": [
            {
              "type": "TextBlock",
              "text": " ${RowsWithAdditionalProperties[0].Value.CallCount}",
              "size": "Medium"
            },
            {
              "type": "TextBlock",
              "text": " ${RowsWithAdditionalProperties[0].Value.MeetingCount}",
              "spacing": "Small",
              "size": "Medium"
            },
            {
              "type": "TextBlock",
              "text": " ${RowsWithAdditionalProperties[0].Value.TeamChatCount}",
              "size": "Medium",
              "spacing": "Small"
            },
            {
              "type": "TextBlock",
              "text": " ${RowsWithAdditionalProperties[0].Value.PrivateChatCount}",
              "spacing": "Small",
              "size": "Medium"
            }
          ],
          "width": "auto"
        },
        {
          "type": "Column",
          "width": "auto",
          "items": [
            {
              "type": "TextBlock",
              "text": "${if(RowsWithAdditionalProperties[0].Value.CallCountPercentageChange == 0, '\\-', if(RowsWithAdditionalProperties[0].Value.CallCountPercentageChange >= 1000, '1000+%', RowsWithAdditionalProperties[0].Value.CallCountPercentageChange + '%'))}",
              "color": "${if(RowsWithAdditionalProperties[0].Value.CallCountPercentageChange == 0, 'default', if(RowsWithAdditionalProperties[0].Value.CallCountPercentageChange > 0, 'good', 'attention'))}",
              "spacing": "Small",
              "size": "Medium"
            },
            {
              "type": "TextBlock",
              "text": "${if(RowsWithAdditionalProperties[0].Value.MeetingCountPercentageChange == 0, '\\-', if(RowsWithAdditionalProperties[0].Value.MeetingCountPercentageChange >= 1000, '1000+%', RowsWithAdditionalProperties[0].Value.MeetingCountPercentageChange + '%'))}",
              "color": "${if(RowsWithAdditionalProperties[0].Value.MeetingCountPercentageChange == 0, 'default', if(RowsWithAdditionalProperties[0].Value.MeetingCountPercentageChange > 0, 'good', 'attention'))}",
              "spacing": "Small",
              "size": "Medium"
            },
            {
              "type": "TextBlock",
              "text": "${if(RowsWithAdditionalProperties[0].Value.TeamChatCountPercentageChange == 0, '\\-', if(RowsWithAdditionalProperties[0].Value.TeamChatCountPercentageChange >= 1000, '1000+%', RowsWithAdditionalProperties[0].Value.TeamChatCountPercentageChange + '%'))}",
              "color": "${if(RowsWithAdditionalProperties[0].Value.TeamChatCountPercentageChange == 0, 'default', if(RowsWithAdditionalProperties[0].Value.TeamChatCountPercentageChange > 0, 'good', 'attention'))}",
              "spacing": "Small",
              "size": "Medium"
            },
            {
              "type": "TextBlock",
              "text": "${if(RowsWithAdditionalProperties[0].Value.PrivateChatCountPercentageChange == 0, '\\-', if(RowsWithAdditionalProperties[0].Value.PrivateChatCountPercentageChange >= 1000, '1000+%', RowsWithAdditionalProperties[0].Value.PrivateChatCountPercentageChange + '%'))}",
              "color": "${if(RowsWithAdditionalProperties[0].Value.PrivateChatCountPercentageChange == 0, 'default', if(RowsWithAdditionalProperties[0].Value.PrivateChatCountPercentageChange > 0, 'good', 'attention'))}",
              "spacing": "Small",
              "size": "Medium"
            }
          ]
        }
      ]
    },
    {
      "type": "TextBlock",
      "text": "How are people talking to each other?",
      "wrap": true,
      "size": "Large",
      "color": "Accent",
      "spacing": "ExtraLarge"
    },
    {
      "type": "ColumnSet",
      "separator": true,
      "columns": [
        {
          "type": "Column",
          "width": "auto",
          "items": [
            {
              "type": "TextBlock",
              "text": "${if(RowsWithAdditionalProperties[0].Value.CallsVsMeetingsPercentageChange == 0, '\\-', if(RowsWithAdditionalProperties[0].Value.CallsVsMeetingsPercentageChange >= 1000, '1000+%', if(RowsWithAdditionalProperties[0].Value.CallsVsMeetingsPercentageChange >= 0, RowsWithAdditionalProperties[0].Value.CallsVsMeetingsPercentageChange + '%', RowsWithAdditionalProperties[0].Value.CallsVsMeetingsPercentageChange + '%')))}",
              "horizontalAlignment": "Center",
              "wrap": true,
              "size": "ExtraLarge",
              "color": "${if(RowsWithAdditionalProperties[0].Value.CallsVsMeetingsPercentageChange == 0, 'default', if(RowsWithAdditionalProperties[0].Value.CallsVsMeetingsPercentageChange > 0, 'good', 'attention'))}"
            },
            {
              "type": "TextBlock",
              "text": "P2P Calls",
              "horizontalAlignment": "Center",
              "weight": "Bolder",
              "wrap": true,
              "spacing": "Small"
            }
          ]
        },
        {
          "type": "Column",
          "width": "stretch",
          "items": [
            {
              "type": "TextBlock",
              "text": "\r\n",
              "horizontalAlignment": "Center",
              "weight": "Bolder",
              "wrap": true,
              "spacing": "Small"
            },
            {
              "type": "Image",
              "horizontalAlignment": "Center",
              "wrap": true,
              "spacing": "None",
              "url": "https://quickchart.io/chart?c=%7B%0A%20%20%22type%22%3A%20%22doughnut%22%2C%0A%20%20%22data%22%3A%20%7B%0A%20%20%20%20%22datasets%22%3A%20%5B%7B%0A%20%20%20%20%20%20%22label%22%3A%20%22foo%22%2C%0A%20%20%20%20%20%20%22data%22%3A%20%5B${RowsWithAdditionalProperties[0].Value.CallsVsMeetingsPercentage}%2C%20${RowsWithAdditionalProperties[0].Value.MeetingsVsCallsPercentage}%5D%2C%0A%20%20%20%20%20%20%22backgroundColor%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%22rgba(255%2C%2099%2C%20200%2C%200.2)%22%2C%0A%20%20%20%20%20%20%20%20%22rgba(0%2C%200%2C%200%2C%200.1)%22%0A%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%22textcolor%22%3A%5B%22%23000555%22%2C%22%23555555%22%5D%2C%0A%20%20%20%20%20%20%22borderWidth%22%3A%200%2C%0A%20%20%20%20%7D%5D%20%0A%20%20%7D%2C%0A%20%20%22options%22%3A%20%7B%0A%20%20%20%20%22rotation%22%3A%20Math.PI%2C%0A%20%20%20%20%22circumference%22%3A%20Math.PI%2C%0A%20%20%20%20%22cutoutPercentage%22%3A%2075%2C%0A%20%20%20%20%22plugins%22%3A%20%7B%0A%20%20%20%20%20%20%22datalabels%22%3A%20%7B%20%22display%22%3A%20false%20%7D%2C%0A%20%20%20%20%20%20%22doughnutlabel%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%22labels%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22text%22%3A%20%22%5CnP2P%20vs%20Meetings%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22color%22%3A%20%22%23aaa%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22font%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22size%22%3A%20%2225%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22text%22%3A%20%22%5Cn${RowsWithAdditionalProperties[0].Value.CallsVsMeetingsPercentage}%25%20-%20${RowsWithAdditionalProperties[0].Value.MeetingsVsCallsPercentage}%25%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22font%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22size%22%3A%20%2240%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%09%09%0A%20%20%7D%0A%7D"
            }
          ]
        },
        {
          "type": "Column",
          "width": "auto",
          "items": [
            {
              "type": "TextBlock",
              "text": "${if(RowsWithAdditionalProperties[0].Value.MeetingsVsCallsPercentageChange == 0, '\\-', if(RowsWithAdditionalProperties[0].Value.MeetingsVsCallsPercentageChange >= 1000, '1000+%', if(RowsWithAdditionalProperties[0].Value.MeetingsVsCallsPercentageChange >= 0, RowsWithAdditionalProperties[0].Value.MeetingsVsCallsPercentageChange + '%', RowsWithAdditionalProperties[0].Value.MeetingsVsCallsPercentageChange + '%')))}",
              "horizontalAlignment": "Center",
              "wrap": true,
              "size": "ExtraLarge",
              "color": "${if(RowsWithAdditionalProperties[0].Value.MeetingsVsCallsPercentageChange == 0, 'default', if(RowsWithAdditionalProperties[0].Value.MeetingsVsCallsPercentageChange > 0, 'good', 'attention'))}"
            },
            {
              "type": "TextBlock",
              "text": "Meetings",
              "horizontalAlignment": "Center",
              "weight": "Bolder",
              "wrap": true,
              "spacing": "Small"
            }
          ]
        }
      ]
    }
  ]
}
Table of Contents