Creating a user activity timeline - is it possible?

I’m curious if anyone knows if there’s a way to create a timeline based on the users activity?

For example, if the user changed their profile picture on 3/1/18, updated their occupation on 3/2/18, changed their relationship status on 3/3/18 it would display as

3/1/18 - Profile picture changed
3/2/18 - Occupation updated to (dynamic data)
3/3/18 - Relationship status changed to (dynamic)
etc…

3 Likes

We are tying to do the same thing, any help would be appreciated!

1 Like

I haven’t actually implemented, but my idea is as follows:

  1. Create a new type called activity with a fields for what the value is changed to (text), what field is being edited (text), and which thing it is for. (In your example a user presumably)
  2. Whenever a workflow is run to change a thing also create activity thing and fill in the new value.

Alternatively if you are tracking changes for multiple types I would substitute the field for the related thing with a field that is a list of activities in each type you are tracking.

This could work with auto-binding as well if you have a workflow trigger when the input is changed.

It’s tedious and I’m curious if anyone has a better way.

2 Likes

Sure, just Create a data type called User Activity or Milestone or whatnot. It would have fields including a [type] or perhaps just a [name] (either of which would just be a text). It will also have a verbose description (text) and maybe an icon (image or bb code if fontawesome will do). It should have a boolean field for whether the Milestone has (dynamic data) at the end of it. It would look something like this:

This will be a global type of variable that only you (or other admins) will create (you can either make an admin interface for them using a repeating group, or use the App Data section).

These would look like:

Now create a new data type called User Milestone. This is where you’re going to customize individual Milestones for specific users. It should be something like this:

Then add to your User object a field called User Milestones (of type User Milestone and make it a List).

In any workflow that represents the user achieving a Milestone, you:

(1) Create a new thing of type User Milestone. Set the fields for that like this:

 Milestone = Do a search for Milestones where Name = (for example) "Relationship":first item
 Parameter = Text version of whatever it is the argument represents. In the relationship example, we might resolve that to "Some other user's first_name last_name:truncated to 1."
 Note: you don't need to set a date, right? It's been captured in Created Date ;)

(2) Make changes to current user > User Milestones, add item, Results of Step 1 (Create new thing)

Now you can easily present Current User’s User Milestones in a repeating group (in many nifty ways, depending on how you want to show them).

You could, for example, filter the list of User Milestones where Created Date is just in the last 3 months. Or you could filter it so that only the most recent item of a given type is displayed in the list. Or, for users who have a storied relationship history (say >5 relationship changes in a year) you could just display those as “Current User’s Walks of Shame” or some such. :thinking:

13 Likes