Site feedback form powered by Discourse

Greetings, my fellow humans.

We have a website and an associated discourse forum where users come to talk about our stuff. We want to set up a feedback form on the website so that visitors could send us messages (with their contact information, such as email or phone number or whatever, so that we could reach them back later). It would be awesome if the form could integrate with OAuth rather than requiring the user to type in their contact information manually.

I’m wondering if we could somehow implement that using Discourse. I know that Discourse supports new-topic links where the category and stuff can be specified in the URL, e.g. https://meta.discourse.org/new-topic?category=feature. If the user is not authenticated, Discourse would conveniently and automatically suggest them to log-in or sign-up using OAuth, which is super cool. However, we can’t make the feedback public for other users to see.

Is there a sensible way to approach this with Discourse, or am I trying to abuse it too much?

Thanks!

1 Like

Perhaps we could create some sort of a hidden topic, and make all feedback be posted there. Is there an URL like https://meta.discourse.org/new-topic for new posts rather than new topics? Can we allow users to post in a topic they can’t see?

You can use new-message URL like below instead of new-topic

https://meta.discourse.org/new-message?username=discobot

6 Likes

Thanks! So that means that we can collect feedback as direct messages. I suppose it is not possible to allow users to post to topics that are not visible to them?

For that you have to create custom form using custom plugin. Otherwise no other option I think.

1 Like

Thanks.

Unfortunately, the link doesn’t work if the user isn’t authenticated. Try this in an incognito window: https://meta.discourse.org/new-message?username=pavel-kirienko. For me, it returns an error.

Although even if the user is authenticated I can’t seem to be able to send messages to anybody using it. For example, I tried https://meta.discourse.org/new-message?username=vinothkannans and got this:

Sorry, you can’t send a message to vinothkannans.

1 Like

I’m just working on this as well and am testing out the following setup, which I think could work for you except for the idea of automatically adding user details to their new account.

  1. create a discourse group for people to receive site feedback (can be just one person in the group, but helpful to use a group in case you ever want to change this)

  2. set “Who can message this group?” to everyone. This means existing users can write to you by email as well as people who are not yet users. Matching is done on the email address.

  3. set “Custom incoming email address” to be the email address for receiving site feedback (I use a dedicated google apps IMAP inbox for all incoming email for discourse, and created a filter to autoforward certain mail to the discourse inbox)

  4. set up your site feedback form to send the email to the group’s email address set above.

  5. Profit. Users who write to you will be added as staged users who can’t log in yet and won’t start getting other email notifications until they sign up. You can reply to them however and your replies will be sent to them by email. You can also have whispered conversations with your team about them, in line, without them seeing the whispers. You can also set timers to remind yourself about the messages later. When they do sign up, they will be associated with their existing email address of the staged user and be able to see all their messages. Neat.

Bonus items:

  • You can add custom fields in your feedback form that just get passed through to the discourse in the message, and then manually update the staged user’s details as required. You have time to do this and it’s not a bad idea to make time for it since they won’t see it unless and until they sign up.
  • set the “Default notification level for group messages” to normal to avoid overwhelming your own notifications and email inbox, and remember to check it frequently for new mail.
6 Likes

Thanks, Tobias.

I think I’m going to simply create a hidden group that can be messaged by anybody and then redirect users to a prefilled message form like https://meta.discourse.org/new-message?groupname=my-group&title=Foo&body=Bar. This seems to work splendidly.

1 Like

Nope, not working. I can’t message the group if I’m not a member, regardless of the permissions configured in the group.

Also, is there any hope to see the new-message URL fixed in the future?

Thanks everyone.

Disregard the last one. I fixed everything by lowering the minimum trust level required for sending direct messages to zero.

2 Likes