Question: Creating a single thing that tracks activity from many users

Hello, forum. Perhaps I’m overcomplicating my issue, or maybe I’m not thinking through the data structure in the way I should, so hopefully someone will have a way to accomplish what I’m looking for.

Here’s what I’m doing. I need to track activity from multiple users, using metrics that are created by the application user. Therefore, I have no defined fields, nor do I know how many users the metric will apply to.

For example. Let’s say my Admin user wants to create a tracking metric called “Phone calls” to monitor how many phone calls each sales rep makes in a day. This could also be “Hugs given to smiling puppies” or “Children made to cry by popping their balloon”. Whatever metric the Admin wants to track.

So, I’ve created a data type of “Metric”. A metric shares some common values.

-Name
-Number to measure
-Users which the metric applies to

In the creation of the “Metric”, all users with the defined role, such as “Sales Reps,” or “Puppy Huggers,” or “Balloon Poppers”, are added to the list of users.

My sticking point is, how can I then measure each individual users contribution toward this Metric?

Chuck makes 64 sales calls
Betty makes 67 sales calls

Now, the admin wants to see a report of how many sales calls were made by each user during the defined period. Obviously, I cannot simply change the “number to measure” field, since it will change it for all users. I’m sure it’s something simple I’m not thinking through, so if anyone has a suggestion I’d love to hear it. Thank you for your time!

Not sure you need an app for that if you record each call in an app and link to the user that record it.
You will create a repeating table and you can have a field that will count how many user have record a call in DB.
Depending on your setting, you may use Do a Search for Calls where User = Current cell user:count
Now what I understand is that you want the user to create custom metric. I think in this case this will be a lot more complicated and maybe you will need to create a plugin or js for that.