New user filter by custom field and contact

Hey,

My partner is trialling hosted pro version and she will want to invite members from her community. On sign up she wants them to fill out a form, presumably with custom fields and later will want to be able to contact them based on what they said on sign up.

Is there a way to DM all users with custom field = x, so that each of them receives 1 on 1 DM. Failing that, can she find those users so that she can DM them one by one.

Note, she does not want the custom fields to be visible to other members, which might preclude her from allowing those fields to be added to the user directory.

In summary my partner wants to split new users into groups based on questions answered during sign up. Answers to questions must remain private and visible only to user and admin. Finally, she wants to be able to communite with these users en masse by sending out 1 to 1 DMs or emails, or failing that she’s happy to contact them one by one as long as she can filter by custom field.

Any help would be gratefully received, many thanks,

Chris.

unfortunately Pro plan doesn’t include data explorer or automation plugin because i think those could be used for a solution here.

normally i would just suggest extracting the custom user field data via data explorer query.

however, you should be able to filter on the users page at /u, once the new custom field has some values from users.

have you read this topic yet? Creating and configuring custom user fields


to give an example using the automation plugin - i would configure an automation to add the users to a group based on the user field then you would always have them grouped accordingly. for example you might have 3 groups based on a custom field with 3 options, then you could use a data explorer query (automated or manual) to extract the email addresses of those group members into separate lists (or use the automation to send DM to group members).

data explorer query to get email addresses of group members
-- [params]
-- string :group_name

SELECT 
    u.username, 
    ue.email
FROM users u
JOIN group_users gu ON gu.user_id = u.id
JOIN groups g ON g.id = gu.group_id
JOIN user_emails ue ON ue.user_id = u.id
WHERE g.name = :group_name
  AND ue.primary = true
ORDER BY u.username

Thanks. If I filter at /u doesn’t that mean other users can do the same and expose what needs to be kept private?

yea your use-case of utilizing custom fields for internal admin processes is likely going to be difficult with the pro plan i’m afraid. you could do some CSS to hide that column for everyone except admin or staff, but smart users could override that if they know how in the browser dev console.


edit: oh i think you may be able to use API to do this (thanks for reminding me Moin):

(post deleted by author)