Tagging users (with interests/passions/skills etc)

Continuing the discussion from Introducing the Staff Notes Plugin:

I’m really keen to find a way to tag users with interests/skills/passions so that I can pull people into relevant discussions.

I had hoped to use the staff notes plugin, but it’s not working out, so I’m wondering about the logistics of custom profile fields. How easy is it to pull that data?

Or perhaps a more appropriate question would be how would others approach this?

5 Likes

A couple other hacks I can think of (which may or may not meet your needs):

  • groups
  • custom badges
2 Likes

Thanks David – I’ve considered both. Groups is pretty limiting (I have to generalise to put people into one of x number of groups, rather than being to tag them with anything) although it is probably the most feasible option right now.

I’m generally against badges because they imply a level of expertise that not everyone is comfortable with. There are other connotations (not just categories of interest).

Ideally, I don’t want people to see the notes at all, but I’m aware that I might have to compromise on that. I currently use a spreadsheet that I manually search through, but I’d rather it was integrated somehow.

3 Likes

Well, that was fun.
What would have taken Rudy a heartbeat and a breath to put together …

On my localhost I had 4 Staff create a Staff Note starting with a made up “short code” on 4 different members.

~SHINING STAR~
This member has potential, lets keep an eye on them

Because the Profile Notes plugin created private messages I looked there - Nope
Staff Notes uses a different table
That table has no connection to the user the Staff Note was attached to except as the id as part of a string.
(some tricky stuff was needed, I’ll get better at Postgres yet)

This query

WITH psr AS (
 SELECT regexp_matches(plugin_store_rows.key, '[0-9]+') AS psr_key_value
   , plugin_store_rows.plugin_name AS psr_plugin_name
   , plugin_store_rows.value AS psr_value
 FROM plugin_store_rows
)
SELECT users.id 
 , users.username
 , psr.psr_value
FROM users 
JOIN psr
ON
 users.id = CAST (array_to_string(psr.psr_key_value, '') AS int)
WHERE 
  psr.psr_plugin_name LIKE 'staff_notes'
AND  
  psr.psr_value LIKE '%~SHINING STAR~%' 

gave me

id 	username 	psr_value
11	TestUser1	[{"id":"40ce59592f6b5c81a692845cdbb0f9d4","user_id":11,"raw":"~SHINING STAR~\nThis member has potential, lets keep an eye on them","created_by":2,"created_at":"2016-04-04T21:00:20.055-04:00"}]
31	RegularGal1	[{"id":"327c342266b2efa7d1530aba02811056","user_id":31,"raw":"~SHINING STAR~\nThis member has potential, lets keep an eye on them","created_by":9,"created_at":"2016-04-04T21:09:15.413-04:00"}]
7	RegularGuy1	[{"id":"eeb581c3ff772ffdc476ea09c0dce156","user_id":7,"raw":"~SHINING STAR~\nThis member has potential, lets keep an eye on them","created_by":3,"created_at":"2016-04-04T21:03:09.804-04:00"}]
30	MemberGal1	[{"id":"73da2850045782a9fdb9d9ec7341d3a0","user_id":30,"raw":"~SHINING STAR~\nThis member has potential, lets keep an eye on them","created_by":34,"created_at":"2016-04-04T21:05:59.993-04:00"}]
5 Likes

Allan! You’re such a star. Thanks so much. I’ll give it a run tomorrow and see how I go.
Really appreciate it.

Edit: works like a charm.

1 Like

I’m really interested in this feature, my goals as community guy are pretty similar to @HAWK
Mentioning people into relevant discussions to them and where they can add a unique contribution is super important as external trigger, it keeps people still around the community and encourages to participate

4 Likes

great - I would love to see this too. I am involved in a number of community sites and it is something I think would be very useful - so users can self-identify with certain interests and then members and community managers can keep these specific groups updated with relevant content

I’m not yet sure whether I would prefer them to pick from a list, or to enter their own tags, but in either case it would be a useful feature that is separate from the ‘Groups’ function, and the Badges

Happy to help scope this out better if needed

1 Like

With tags into the core, can you take this into account? It would be awesome see that on Discourse.

Did this ever go anywhere? I also found this topic
https://meta.discourse.org/t/add-user-fields-support-for-field-type-tag/42721/5
which also seems to have gone only half-way to a permanent solution.

What I would find useful is a multiple choice dropdown field like in the composer
00

It would then make sense to be able to search for users with a specific tag.

Currently Customize > User Fields only allows single choice dropdowns (as does the Custom Wizard Plugin) and I’m not sure if searching for those fields returns anything.

1 Like

Yeah, I can still see huge value in this. Being able to quickly tag a user rather than adding them to multiple groups would be great. I don’t think this is trivial though. @neil may be able to add more to the conversation. He did a lot of work on our current tagging.

3 Likes

This is a cool idea! If at present users < > groups are tightly linked, and topics < > tags are tightly linked — such that establishing a connection between users < > tags would be a lot of work — perhaps a simple(ish) solution could be:

  • New site setting enable group quick add (and perhaps group default visibility)
  • When enabled, rather than just allowing selection of existing groups on a user edit page, you could also enter a group name that doesn’t already exist and it’d create it as a closed group with some simplified default settings

Basically a way to enable just-in-time group creation that’s functionally as easy as adding tags. Not sure if there are other ways tags might still be a better way to go, just one idea!

2 Likes

I think we need a hard separation between topic tags and user tags. We don’t want to tag a user with theme-component or pr-welcome, for example… because it’s meaningless. The /tags page also needs to make sense, so mixing topic and user tags together there would be wrong. Most of the work to add user tags would be new work (UI, data models).

I think most people will want to use user tags in the same way we use groups (mentions, restricted categories, etc.), so maybe @bts is right that this is really a request to enhance groups.

8 Likes

Totally agree on the hard separation and the groups extension would work in some cases but I’m not totally convinced that the group route is the right one. In my use case from the OP there is sometimes just 1 person with a tag and often just 2 people. Hundreds of 1 and 2 people groups would be pretty cumbersome.

How much work would be involved with going down the tagging road?

3 Likes

A ton. It’d be major feature work. I’m not inclined to do it at this time. Improving groups benefits everyone much more.

5 Likes

Yeah, def not worth doing a tonne of work for this outlier of a use-case.

1 Like

Here’s one more for that list – quite an obvious one, but I did not get on this idea. Somebody else from our forum did.

  • tags on “personal” topics

Personal topics would be just a convention: one topic per user, in a certain category. That way, these topics are proxies for users. The category for them can be public (so users would publish their personal topics themselves) or not (so staff members can internally store information about job applicants, for example). The available tags can be bound to that category (e.g. using a “skills” tag group) so that they cannot be used on “normal” topics.

I’m always interested in this.
I tried to explain what I mean, is it not interesting from the community perspective?