ONEARMY / community-platform

A platform to build useful communities that aim to tackle global problems
https://platform.onearmy.earth
MIT License
1.1k stars 370 forks source link

[feature request] add ability to directly contact a profile #2607

Closed davehakkens closed 10 months ago

davehakkens commented 1 year ago

Component infos

Description

We want to add a contact form to user profiles. This is to make it easier for the community to get in touch and collaborate with eachother. (this is our lightweight alternative for not having a direct messaging system)

Page related

Will be used in :

Mockup

  1. Add contact button to profiles 1_button

  2. Overlay with input fields to send a message 2_pop-up

  3. User can disable the direct contact feature in their profiles 3_usersettings

How does the flow works.

  1. Visitor clicks contact
  2. Visitors writes their name, email and a message.
  3. Send
  4. A confirmation email is send to visitors/sender (using the email from the form)
  5. An email with all the information is send to the Profile (using their auth email)
  6. Optional: Set daily limits. There is a daily limit of one message per profile per visitor, or max 5 messages per day (to avoid spam)

Examples

The behaviour is based on the on from Moneybird You can search for profiles, press contact, and send them a message. (they receive a mail)

Possible email templates

Message to visitor (sender) From: noreply@instance.com Subject: We send your message! Message: We send the following message to [insert profile username]: [insert message from sender]

Message to the Profile (receiver) From: noreply@instance.com Subject: Hey you got a new message from [insert name from sender] Message: Hey you got a new message from [insert name from sender]: [insert message from sender] Make sure to reply to their email adres, [insert email from sender]

iSCJT commented 1 year ago

@sigolenej @thisismattia fyi, can we work on the design, feedback etc.in August please.

sigolenej commented 1 year ago

Thanks for this! It is in line with what we would like to see on the map.

A few questions/comments: 1) we agree the visitor does not have to have a CP account to send the email.

2) did you imagine having the other contact links still visible or not?

3) would it be possible to provide this option (having the contact form) only to a group of users -for example the Supporters or Verified-?

davehakkens commented 1 year ago
  1. ok
  2. I think so. Would otherwise everyone have to send an email to see their instagram or website? (seems annoying for a workspace and they could just write it in their profile?)
  3. You mean only verified and supporters have a contact button on their profile or only they can send a message to a profile?
sigolenej commented 1 year ago

3) that the contact button is visible only on supporters or verified profiles

davehakkens commented 1 year ago

Possible. But I thought you mainly wanted this so users on the map see the usefulness of being there. Because they receive messages. Doesnt this go against that? (since realistically only a small amount of users would be verified or a supporter so the function would mostly be unused)

sigolenej commented 1 year ago

Yes that is a good point, just a general question of what you had in mind behind this :)

davehakkens commented 1 year ago

didnt think about it much yet. Building the feature is most work. Allowing which users can see it quite easy for development. More hard to figure out what is the best strategy to release. So we can continue to think about it!

thisismattia commented 1 year ago

Thanks for this @davehakkens

Couple of things:

  1. We say the goal of the contact form is to let pp users know people find them on the map and reach out to them. However as it stands I believe the pp workspace would only receive a simple email. No sign of coming from cp. To fix that I believe we should have a prefilled subject of the email hoping the sender doesn't edit it. Alternatively, (question for devs) can we force a standard subject to the email? Something like "You have a new message from the map" or something like that?
  2. I would agree let's build the component out, meanwhile think about the release strategy.
  3. Would it be possible to track the number of times a user has been contacted? Maye tracking the clicks on "Contact" or "Send"?

Is this being developed? What is missing to start? Design is ok for now we think.

davehakkens commented 1 year ago

If you think its ok for now it's ready to be developed.

  1. Regarding tracking. This questions pops up more often. Admins would like more statistics. But I dont think these admin stats (not user facing) will all be intergrated in the platform anytime soon. Hard to get them right so you can trust them, probably better/faster and more agile to intergrate with an external tool like Google Analitics (or switch to plausible!) . But setting this up goes a bit beyond the work and skills of dev-team.
thisismattia commented 1 year ago

We think is ok for now however there are still a couple of questions open:

  1. How is this working from a technical standpoint? Email gets sent from the sender or still goes through community platform email address no-reply@preciousplastic.com? Devs?
  2. Subject, still not clear our approach. Is there going to be a field for the subject in the contact form? Is it going to be prefilled with some text (subtly informing the receiver the message is from cp unless sender edits it)? Imo the best case scenario is to have all emails sent through this form to have the same subject (i.e. You have a new message from the Community Platform) so it is clear where the message comes from, hence, working toward the original goal of this item which was "how do we make sure users know leads come from cp/map?" But this is probably more a dev question, any of the maintainers have the answer?
  3. Tracking feels pretty crucial to assess whether how we spend our energy and money is paying off. Wouldn't it mak sense to look into proper analytics tracking on some crucial items across the platform to guide our decisions from data?
davehakkens commented 1 year ago

1+2: The goal of the issue is to have it go through the project/instance email with a prefilled subject as you can see in the email templates above 👆 (which i think covers both of these points?) 3: This seems like a bigger discussion to open for another time. For this particular case you can see how many emails get send out to users, in sendingblue. But dont know if that gives you the information to judge if the feature is "paying off"

thisismattia commented 1 year ago

Ok thanks. I overlooked at those examples. In which case looks good. 1+2 ✅ 3 ✅ Ok seems a larger topic

  1. is there a way to track all emails sent? would we have access to noreply@instance.com? Or where would it be sent from?
  2. Would it be possible to add sender email to an email list to potentially use in the future?
sigolenej commented 1 year ago
  1. Or could community@ be in BBC of all emails? (would that be legal?)
sigolenej commented 1 year ago

@davehakkens what do you think about the above proposals? Would be really great to have some sort of metric for us to scope the reach we are having through the map

davehakkens commented 1 year ago

@sigolenej this first issue is more to get the basic functions setup. After that we can always add new issues to improve it or extend the function.

That said, the emails would be send by an external mail client. Probably sendingblue. Just like the current notifications and the upcoming transactional mails https://github.com/ONEARMY/community-platform/issues/2379. In there you can filter and see how many emails are send. (I also think you can see who openend or clicked urls) I would advise to use the same mail adress as those to keep it simple at the start

sigolenej commented 12 months ago

@davehakkens thanks for the visibility on sendingblue. Under which account do we need to sign in to?

In regards to setting up the basic functions, could this be worked on in October? As proposed in this end of the year plan?

thisismattia commented 12 months ago

Sendinblue is now called brevo :)

Also not clear to me how CP can talk to Brevo. But maybe you guys got it clear. Just give us the directions once set up. We just want emails to be sent out and make sure people know they're coming from CP and that we can know how many emails are exchanged.

benfurber commented 11 months ago

I'm working on this now btw.

benfurber commented 11 months ago

@davehakkens A suggestion. I was thinking that your proposed text for the contact opt-in doesn't give the user enough information about what they're agreeing to.

What do you think about this?

Screenshot 2023-10-09 at 15 17 18
davehakkens commented 11 months ago

Yeh we can do it like that @benfurber. Might optimize it in the future to reduce text but seems good to make it clear on release!

benfurber commented 11 months ago

I'm thinking we should probably add some anti-spam captcha field to the form. Thoughts?

davehakkens commented 11 months ago

hmm yes good point @benfurber! You have experience intergrating those?

onearmy-bot commented 10 months ago

:tada: This issue has been resolved in version 1.121.0 :tada:

The release is available on GitHub release

Your semantic-release bot :package::rocket: