WordPress.org

Making WordPress.org

Opened 4 months ago

Last modified 3 months ago

#3201 new enhancement

Improve CampTix 'Notify' function, including adding auto-save and an Editor-style email composition

Reported by: alicestill Owned by:
Milestone: Priority: normal
Component: WordCamp Site & Plugins Keywords: good-first-bug needs-patch
Cc:

Description

The existing Notify tool on CampTix (found in Tickets > Tools > Notify) is very useful for bulk contacting WordCamp attendees and subsets of attendees, but it isn't as user friendly as it could be.

Because Notify doesn't work as well as it could, organisers often have to send very small batches of emails using Gmail, or export attendee information into 3rd party apps like MailChimp. Note, organisers can't use Gmail for bulk emailing, as this results in Gmail either labelling emails as spam, or blocking all emails from a Gmail account for an undefined period of time (sometimes days).

Making the Notify tool more user friendly has the potential to save a huge amount of time across all WordCamps, plus remove the risks involved in exporting personal attendee data and prevent legitimate WordCamp email addresses from getting blacklisted by Gmail.

So I'd like to suggest the following Notify enhancements:

  1. The ability to save and auto-save email drafts. Currently your email is irretrievable if you leave your draft. For example: if you accidentally close a tab or go back, there's no warning that you will lose your work, and it won't be auto-saved.
  2. An easy to use, Editor-style email composition. Currently it isn't easy to compose an email without having a strong knowledge of HTML. Please see the attached screenshot of a portion of one email I composed for WordCamp Brighton. Everything needs to be coded in and there is no ability to drag and drop images - instead these need to be separately uploaded and then added using HTML. Images are vital in WordCamp emails as including sponsors in event emails is a criteria of most top tier sponsorship packages.
  3. Ability to view sent emails. Currently, you can see an email has bee sent but cannot view the contents of that email or who it was sent to. Also, the ability to view and copy previous emails as templates would save emails needing to be created from scratch each time.

There's plenty of potential for further enhancements in future, but as a start, these changes would make a huge difference to Notify's usability.

Attachments (1)

Notify-email-screenshot.png (304.4 KB) - added by alicestill 4 months ago.
Example of HTML needed for a basic email

Download all attachments as: .zip

Change History (4)

@alicestill
4 months ago

Example of HTML needed for a basic email

#1 @iandunn
4 months ago

  • Keywords good-first-bug needs-patch added

+1, these are great ideas.

  1. An easy to use, Editor-style email composition

That would definitely be a better UX. We do need to be careful about including HTML in emails, since mail clients generally have very poor support for it, so it'd be easy to create something that is displayed wrong after its sent. We might want to prevent the div tag and any inline CSS.

That prevents a problem, though, if the preview doesn't match the final content. There might be an existing TinyMCE config value or plugin that allows us to limit the markup used on the client side, so that it matches the sanitation rules on the server side.

  1. Ability to view sent emails.

This already exists for network admins, so it'd probably be very easy to allow it for site admins/editors too.

#2 follow-up: @Gabe462
4 months ago

Thanks for posting this, alicestill!

Here are the requests I'm seeing in this ticket:

  1. Save & auto-save drafts
  2. Warning that you will lose your email draft if you close the tab or go back
  3. An easy to use, Editor-style email composition
  4. Ability to view sent emails

possible deliverables, in order of complexity:

  1. add a javascript event that fires on page reload/close when there is content in the email fields
  2. add a button to load an old message into the editor for viewing/resend
  3. instantiate the visual editor for the "Message" field

Possible implementation:

1: add javascript to this page along the lines of
window.onbeforeunload = function () {
return "Are you sure?";
}

with exceptions for the send and preview buttons

2: Add a "load" link at the right of each email in the table. enable "show_in_rest" for the tix_email cpt for this page, and fetch the id corresponding to the email clicked. The title and content are written to the Subject and Message fields.

3: research necessary

#3 in reply to: ↑ 2 @iandunn
3 months ago

Replying to Gabe462:

1: add javascript to this page along the lines of
window.onbeforeunload = function () {
return "Are you sure?";
}

That sounds good. It might help a bit to explicitly tell the user that there is unsaved content, in case they're confused about why they're being prompted.

2: Add a "load" link at the right of each email in the table. enable "show_in_rest" for the tix_email cpt for this page, and fetch the id corresponding to the email clicked. The title and content are written to the Subject and Message fields.

Hmmm, I'm not sure what a good way to do this would be. Ideally we'd want to reuse as much from Core as possible, since it already has this functionality built in.

Maybe this whole feature should be re-thought, since switching it from an admin page to use the regular CPT interface would give us the rich editor, auto-save, and viewing past emails, all for free. That could also be a big rabbit hole, and take longer than just adding things piecemeal, though.

We'd have to migrate the existing functionality into the CPT interface, but that might not be too much work. That might be worth exploring a bit, just to get a feel for what it'd take.

If it looks like it'll be a big project, then it might be worth holding off on it, since we've also discussed some plans to possibly migrate away from CampTix in the future. So, I'd suggest maybe playing around with it a little while, just to get a feel for how long it'd take, but don't get too deep into it. If it looks like it'll be relatively painless, then that might be a good option, but otherwise it's probably not where we want to be investing time at the moment.

Note: See TracTickets for help on using tickets.