Custom Wizard Plugin 🧙

Maybe I’m missing something or there is a bug? When I add the custom field for location it does not get added to the topic upon creation. It seems there needs to be something in the actions section but I do not see this documented anywhere, thanks!

1 Like

I didn’t see a resolution to this. Apologies if I missed it.

I’m seeing the same behaviour as this too, @angus.

I too have my tags in tag groups and also have a single test tag that is not in a test group. Only the lone tag that doesn’t belong to a group is displayed for selection.

The ideal behaviour (for me) would be to select the tag group(s) from which the superset of individual tags will be chosen.

1 Like

I’m currently trying to set up a wizard that when submitted, it creates a private message that gets sent to a group. The setup lets me select a user group as a recipient, but when I actually test the wizard, the action doesn’t seem to complete. (The wizard does submit properly, though; I can see it logged in submissions.)

When I change the exact same action to target a single User rather than a group, though, the action works. I land on the submitted message page, etc.

I’m wondering if there’s something special about sending to a group that might not be working, or if I’m doing something wrong?


Apologies for the double post!

I am noticing that though the wizard plugin works on a slightly older tests-passed commit (f1ac3), in the most current tests-passed (9f955), it is not. (Container will build, but wizard fields don’t display.)

Is there any chance that the plugin will be updated during this support period to the most current tests-passed? If so, is there any chance that the previous bug regarding sending messages to a Group rather than a single user might be addressed?

Am okay if either of the answers is ‘no’, just trying to plan ahead.

1 Like

I work with a mildly modified fork of the CWP so am always stumbling across issues between core and this plugin.

If you need to ensure that the CWP works, you should update once a month at the end of the support period.

Unfortunately, I need to update more often so the workflow I use is to…

:one: visit here

And if the wizard loads it means that the latest version* of the plugin works** with the latest version of Discourse.

* ‘Latest’ here means as of up to 24 hours ago.
** ‘Works’ here means the Wizard is functional - i.e. there are no serious mismatches between core Discourse and the plugin. It doesn’t mean that you won’t find something broken when you dig deeper into the functionality.

To see if Pavillion think it is or should be working, and to see the exact commit IDs of Discourse and the CWP, look here:

As you can see here, the CWP is listed under Incompatible Plugins, which means that Pavillion think that it’s currently broken.

You can also see the green rectangle at the top says we are in the current support period which means Pavillion will commit to making the CWP work with the then current Discourse version by the end of the support period - October 4th in this instance.

:two: If I see that the Wizard isn’t loading. I report it here and copy @angus.

In my experience just about everything critical that I report gets fixed either during or even before the next support period (first week of the month-ish).

:three: If the wizard appears to load I then merge the latest commits with my fork and update my development instance to the latest Discourse too. I then test that all the quirky bits that I rely on still work. I note down the specific Git commit ID of Discourse that I used.

:four: If 3 works then I can update my live system

:five: I test the live system in case any commits that happened to Discourse core between 3 and 4 cause it to break. (more often than you think!!!). If there is a problem I hard limit Discourse to the specific commit ID I noted in 3.


@angus, I wanted to report this in the current support period but it might be that you already know there is a problem as I see from that you have placed the CWP in the Incompatible Plugins section.

The Wizard Renders, my step_handler runs and seems to finish but the redirect at the end of my step_handler doesn’t work.

I update the route_to field of the updater to point to the URL I want to go to at the end of the wizard…

@updater.fields["route_to"] = route_to

But as I say it stays on the Wizard.

I can’t check the logs of but the Super Mega Fun Wizard seems to do the same thing.

I’m seeing this in my logs.

ActionController::RoutingError (No route matches [GET] "/w/create-tailored-intervention/steps/")

(/w/create-tailored-intervention/ is my wizard.)

Looks like it’s looking in the wrong place for the minified js???

Additional details and environment


ActionController::RoutingError (No route matches [GET] "/w/create-tailored-intervention/steps/")
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/missing_avatars.rb:23:in `call'
lib/middleware/turbo_dev.rb:34:in `call'


actionpack ( lib/action_dispatch/middleware/debug_exceptions.rb:36:in `call'
actionpack ( lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
logster (2.9.4) lib/logster/middleware/reporter.rb:43:in `call'
railties ( lib/rails/rack/logger.rb:37:in `call_app'
railties ( lib/rails/rack/logger.rb:28:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
actionpack ( lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
actionpack ( lib/action_dispatch/middleware/request_id.rb:27:in `call'
rack (2.2.3) lib/rack/method_override.rb:24:in `call'
actionpack ( lib/action_dispatch/middleware/executor.rb:14:in `call'
actionpack ( lib/action_dispatch/middleware/static.rb:126:in `call'
rack (2.2.3) lib/rack/sendfile.rb:110:in `call'
actionpack ( lib/action_dispatch/middleware/host_authorization.rb:82:in `call'
lib/middleware/missing_avatars.rb:23:in `call'
lib/middleware/turbo_dev.rb:34:in `call'
rack-mini-profiler (2.1.0) lib/mini_profiler/profiler.rb:357:in `call'
message_bus (3.3.2) lib/message_bus/rack/middleware.rb:61:in `call'
railties ( lib/rails/engine.rb:527:in `call'
railties ( lib/rails/railtie.rb:190:in `public_send'
railties ( lib/rails/railtie.rb:190:in `method_missing'
rack (2.2.3) lib/rack/urlmap.rb:74:in `block in call'
rack (2.2.3) lib/rack/urlmap.rb:58:in `each'
rack (2.2.3) lib/rack/urlmap.rb:58:in `call'
unicorn (5.7.0) lib/unicorn/http_server.rb:632:in `process_client'
unicorn (5.7.0) lib/unicorn/http_server.rb:728:in `worker_loop'
unicorn (5.7.0) lib/unicorn/http_server.rb:548:in `spawn_missing_workers'
unicorn (5.7.0) lib/unicorn/http_server.rb:144:in `start'
unicorn (5.7.0) bin/unicorn:128:in `<top (required)>'
bin/unicorn:87:in `load'
bin/unicorn:87:in `block in <main>'
bin/unicorn:86:in `fork'
bin/unicorn:86:in `<main>'


hostname discourse
process_id 397
application_version 4531219835de0af025507866f6b436fc55f1d003
HTTP_HOST localhost:9292
REQUEST_URI /w/create-tailored-intervention/steps/
HTTP_USER_AGENT Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36
time 11:16 am


I’ve just updated my fork to the latest version as of this commit.

Update wizard-raw-templates.js.erb · paviliondev/discourse-custom-wizard@dc7249c · GitHub

and am running against this tests-passed commit of Discourse.

Build(deps-dev): Bump better_errors from 2.8.2 to 2.8.3 (#10812) · discourse/discourse@01a9c57 · GitHub

1 Like

Yup, it was updated a few days ago :slight_smile:

Yes, I should have made this clearer in the documentation, but the private message action did not support groups. I’ve added support for that:

Thanks, that’s actually a minor issue with the server status system which I’ve addressed. This plugin is working on the latest Discourse.

Thanks for reporting this, it was introduced in the merge on Friday. Now fixed. Please update and you’ll be fine.


@user2 , I had the same issue

1 Like

Hey :slight_smile: Could you clarify if you “had” an issue or you currently have an issue?

The Custom Wizard should be working with the latest Discourse (i.e. on tests-passed) See further:

1 Like

Did you ever learn whether this was possible with this plugin?

1 Like

Not currently, but I’ve made a little theme component for your specific issue :slight_smile:


Similar questions, Im able to add the Map Location field to Custom Wizard, but I’m not able to use it to automatically update the User Profile “Map Location” Field.

Does anyone know how to use the user input from the Wizard to update the User Profile?

I added this as part of my Update Profile Action, but I have no idea where that “Location” user field in the photo is being updated.

After submitting the wizard the Logs show a successful update, but the Map Location field on the User Profile is blank as shown below.

Any thoughts on how to make this happen?

1 Like

Unrelated other issue that I can’t seem to track down and looks to be related to translation keys:

For users that are not “Moderator” or “Admin” the buttons don’t seem to be picking up the translations.

But for Moderators and Admins the buttons look fine:

Has anyone seen something similar or have thoughts on why this might be happening for users based on their level?

I’m on Custom Wizard Commit: f2ef53c
and Discourse Version: v2.6.0.beta5 +130


@weallwegot Thanks, @fzngagan is investigating the locale string (translation) issue currently.

I’ll take a look at the locations plugin question a bit later this week.


Can you update to latest tests-passed again and check?
The issue seems to have gone away.

1 Like

hey yea sure is tests-passed for Discourse this version: v2.6.0.beta5 +201

or should i upgrade the wizard plugin?


Yes, let’s update the plugin too.

upgraded both unfortunately the problem is still there for brand new users.

the way i was able to reproduce it was to invite a brand new user to the community. the wizard is triggered to run on first visit. the community happens to require moderator approval, not sure if that has anything to do with it. but in any case here it is with a brand new user:


I’ll try and reproduce with those exact steps then.


Not sure if this is any help but for new users seeing the wizard for the first time I’m seeing the following request/response scenarios.

users with moderator level access


I18n.extras = {"en_US":{},"en":{"wizard":{"done":"Done","finish":"Finish","back":"Back","next":"Next","step":"%{current} of %{total}","upload":"Upload","uploading":"Uploading...","upload_error":"Sorry, there was an error uploading that file. Please try again.","quit":"Maybe Later","staff_count":{"one":"Your community has %{count} staff (you).","other":"Your community has %{count} staff, including you."},"invites":{"add_user":"add","none_added":"You haven’t invited any staff. Are you sure you want to continue?","roles":{"admin":"Admin","moderator":"Moderator","regular":"Regular User"}},"previews":{"topic_title":"Discussion topic","font_title":"%{font} Font","share_button":"Share","reply_button":"Reply"},"completed":"You have completed this wizard.","not_permitted":"You are not permitted to access this wizard.","none":"There is no wizard here.","return_to_site":"Return to {{siteName}}","requires_login":"You need to be logged in to access this wizard.","reset":"Reset this wizard.","step_not_permitted":"You're not permitted to view this step."},"group":{"select":"Select a group"},"location":{"name":{"title":"Name (optional)","desc":"e.g. P. Sherman Dentist"},"street":{"title":"Number and Street","desc":"e.g. 42 Wallaby Way"},"postalcode":{"title":"Postal Code (Zip)","desc":"e.g. 2090"},"neighbourhood":{"title":"Neighbourhood","desc":"e.g. Cremorne Point"},"city":{"title":"City, Town or Village","desc":"e.g. Sydney"},"coordinates":"Coordinates","lat":{"title":"Latitude","desc":"e.g. -31.9456702"},"lon":{"title":"Longitude","desc":"e.g. 115.8626477"},"country_code":{"title":"Country","placeholder":"Select a Country"},"query":{"title":"Address","desc":"e.g. 42 Wallaby Way, Sydney."},"geo":{"desc":"Locations provided by {{provider}}","btn":{"label":"Find Location"},"results":"Locations","no_results":"No results. Please double check the spelling.","show_map":"Show Map"},"validation":{"neighbourhood":"Please enter a neighbourhood.","city":"Please enter a city, town or village.","street":"Please enter a Number and Street.","postalcode":"Please enter a Postal Code (Zip).","countrycode":"Please select a country.","coordinates":"Please complete the set of coordinates.","geo_location":"Search and select a result."}},"select_kit":{"default_header_text":"Select...","no_content":"No matches found","filter_placeholder":"Search...","filter_placeholder_with_any":"Search or create...","create":"Create: '{{content}}'","max_content_reached":{"one":"You can only select {{count}} item.","other":"You can only select {{count}} items."},"min_content_not_reached":{"one":"Select at least {{count}} item.","other":"Select at least {{count}} items."}},"wizard_composer":{"show_preview":"Preview Post","hide_preview":"Edit Post","quote_post_title":"Quote whole post","bold_label":"B","bold_title":"Strong","bold_text":"strong text","italic_label":"I","italic_title":"Emphasis","italic_text":"emphasized text","link_title":"Hyperlink","link_description":"enter link description here","link_dialog_title":"Insert Hyperlink","link_optional_text":"optional title","link_url_placeholder":"","quote_title":"Blockquote","quote_text":"Blockquote","blockquote_text":"Blockquote","code_title":"Preformatted text","code_text":"indent preformatted text by 4 spaces","paste_code_text":"type or paste code here","upload_title":"Upload","upload_description":"enter upload description here","olist_title":"Numbered List","ulist_title":"Bulleted List","list_item":"List item","toggle_direction":"Toggle Direction","help":"Markdown Editing Help","collapse":"minimize the composer panel","abandon":"close composer and discard draft","modal_ok":"OK","modal_cancel":"Cancel","cant_send_pm":"Sorry, you can't send a message to %{username}.","yourself_confirm":{"title":"Did you forget to add recipients?","body":"Right now this message is only being sent to yourself!"}}}};

users without moderator level access
403 Status Code with the “Oops that page is private” webpage


It looks like reversing this commit fixes the issues on my

i opened a PR for it but not sure if there are better ways, i just copy/pasted from the git commit. locale translations issue fix by weallwegot · Pull Request #61 · paviliondev/discourse-custom-wizard · GitHub