Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: plan user flow for license activation #2058

Closed
3 of 5 tasks
DevinWalker opened this issue Sep 8, 2017 · 26 comments · Fixed by #4084
Closed
3 of 5 tasks

feat: plan user flow for license activation #2058

DevinWalker opened this issue Sep 8, 2017 · 26 comments · Fixed by #4084
Assignees

Comments

@DevinWalker
Copy link
Member

DevinWalker commented Sep 8, 2017

Issue Overview

Users are annoyed when they have to activate multiple licenses for their add-ons. Give should have logic to allow admins to activate all their licenses at once with the plugin.

Expected Behavior

The add-on download, install, activation, and licensing process should be as pain free as possible to ensure new customers aren't over-excessively burdened. New All Access Pass Bundle buyers don't have to activate licenses individually but rather gain access to all their add-ons after activating a single license..

Current Behavior

Users have to download each add-on manually from their account on GiveWP or from their email and then manually upload each and activate each license individually. The process is tedious and not a pleasant experience after purchasing one or more add-ons or a bundle.

Proposed Solution

Redesign the licenses page so that the main section has bundle license activation options. Create another section or tab/page with options for individual add-on activation.

User Scenarios

New or Existing Give User with No Premium Add-ons Activated

I am a new Give user who just installed or have been running the free plugin the plugin and may or may not have an add-on installed but no premium add-ons are active.

Acceptance Criteria

  • The new add-on page displays with the bundles displayed
  • When I activate a premium add-on the licenses tab displays

Existing Customer with Individual Premium Add-on Licenses Active

I am an existing customer who has several add-ons installed and have updated to Give 2.5.0.

Acceptance Criteria

  • My existing licenses remain activated and I can see my license information properly
  • I can deactivate licenses
  • I can activate licenses

New All in One Access Pass Bundle Customer

@kevinwhoffman
Copy link
Contributor

I will mock this up but here's what I'm thinking, loosely based on MonsterInsights approach:

  1. User visits Add-ons screen within Give plugin. All add-on cards are visible but locked. There is a single License Key input field above the add-on cards.
  2. User pastes a bundle license key.
  3. Give website determines which individual plugins are included in that bundle and unlocks them within the plugin. The unlocked status is signified by an Install button in the add-on card and a success notice at the top of the screen.
  4. At this point the user is free to install any of the unlocked add-ons. When Install is clicked, the plugin is retrieved from the Give website and installed in a deactivated state.
  5. Once installed, the Install button changes to an Activate button and plugin is ready to be activated.

Screenshots

  • The first plugin is unlocked, installed, and activated.
  • The second plugin is only unlocked and awaiting installation. This would be the default state after license activation.

image

@mathetos
Copy link
Member

mathetos commented Sep 8, 2017

I like their approach a lot. My only caveat is I'd like the Install/Activate/Deactivate to be much more explicit. It's too subtle in their design.

@kevinwhoffman
Copy link
Contributor

kevinwhoffman commented Sep 8, 2017

@mathetos I agree. We also might consider sectioning off the unlocked plugins to make that even more obvious which add-ons are available to be installed. So all cards would appear in a grid by default, but then break out the unlocked cards based on license activation.

@ravinderk
Copy link
Collaborator

@kevinwhoffman Correct me if I am wrong

  1. Activate: activate addon and enable license
  2. Deactivate: activate addon and disable license

So basically activate and deactivate has addition task ( setup license ) when unlocking addon with bundle key.

@kevinwhoffman
Copy link
Contributor

Enter license key > Unlock Add-ons > Install one or more Add-ons > Activate Add-ons

@ravinderk
Copy link
Collaborator

@kevinwhoffman downloading plugin as we discuss over slack and checking it myself

@kevinwhoffman
Copy link
Contributor

kevinwhoffman commented Sep 19, 2017

The diagram below represents the possible states of an add-on card, beginning in a locked state and ending as an active add-on.

give-addons-licensing

@ravinderk ravinderk modified the milestones: 1.8.14, 2.2 Sep 20, 2017
@DevinWalker DevinWalker modified the milestones: 2.2, 2.0.1 Sep 20, 2017
@mathetos
Copy link
Member

@kevinwhoffman What's your thought for when it's not a Bundle license key, but a single one?

Also, are you saying that the license keys settings stays where it is, but they then go to Addons in order to download/activate? Seems a little counter-intuitive. I think it would make a lot more sense to keep license key activation and addon activation on the same page if at all possible. I know that would mean a bigger change to the overall UI and settings, but it would definitely be a better user experience if done right.

@kevinwhoffman
Copy link
Contributor

@mathetos I am envisioning one license key box above the add-ons that can accept a bulk license or individual license. If validated, the associated add-on(s) are unlocked. So it is essentially the same process for bulk or individual licenses. That could be clarified in the input's placeholder.

Also, are you saying that the license keys settings stays where it is, but they then go to Addons in order to download/activate?

I agree with you that add-ons and licensing should be on the same page, or at least in tabs under the same menu item.

@mathetos
Copy link
Member

mathetos commented Dec 15, 2017

In chatting with @DevinWalker today about this concept, I want to enhance the user experience just a little more. Here's the process I envision:

  1. At purchase, every single customer regardless of what they bought gets ONE download -- The Give Add-on Manager
  2. They install that plugin and at activation it redirects them automatically to the Add-ons screen that would be essentially like what Kevin laid out above.
  3. Instead of a license key, they are asked for their GiveWP credentials to authenticate their connection with our site. They received those credentials at the checkout and via email (we would make this more obvious at purchase confirmation as well.
  4. Once that authentication is established, the list of Add-ons gets segmented into two sections "Your Add-ons" and "Get more Add-ons".
  5. The Add-ons in their section have an "Install and Activate" button that once clicked, it downloads the plugin from our site, installs it and activates it automatically all within the Add-on screen.
  6. The "Get more Add-ons" section has a "Upgrade" or "Buy Now" button that directs them to our website.

This removes several major pain-points that our customers often express to us:

  1. Downloading plugins one at a time is cumbersome for customers (let alone for Safari users who get an unzipped folder instead of a zip file)
  2. Installing manually via "Plugins > Add New" is cumbersome for some users.
  3. Finding the right license key for the right add-on is a major pain, particularly if they first bought a single Add-on then later a Bundle, or have multiple licenses for different clients, etc.

A couple notes to keep in mind:

  • We need the "Give Add-on Manager" because .org won't allow the downloading/installing functionality directly within our plugin.
  • One license key is less "stuff" than credentials (username and password), but they have to have a user name and password to access Support anyway, so the only thing we CAN get rid of is the license key. Asking them to keep their credentials at Purchase Confirmation benefits them in multiple ways now, and gives us a chance to highlight the value of logging into the website, getting their add-ons, getting support, etc.
  • What happens if the plugin won't install via the Add-on screen correctly for some reason? They still need to have access to the individual Add-ons via our website to install manually as a backup.

@pippinsplugins -- would love your input on this concept, particularly if you've seen other shops do something similar, how this might impact EDD Licensing in general. This is essentially what I've mentioned to you a few times in the past.

@kevinwhoffman
Copy link
Contributor

kevinwhoffman commented Dec 15, 2017

I like it, especially as it accounts for future purchases after the initial purchase. Rather than having to add new keys, we can just update the available add-ons by pinging our server and syncing their purchases to the site in question.

What happens if the plugin won't install via the Add-on screen correctly for some reason?

I think we can keep the existing Downloads screen on givewp.com where the plugin zips can be downloaded manually. We just don't need to list all of the license keys alongside every download anymore.

@DevinWalker DevinWalker changed the title Implement bulk license activation via EDD bundle license Licensing revamp to use login rather than keys Dec 18, 2017
@DevinWalker
Copy link
Member Author

Here's the add-ons page concept using the card concept @kevinwhoffman outline above with some design revamp based on Monster Insights:

add-on page elements

@kevinwhoffman
Copy link
Contributor

image

@DevinWalker Nice, that's pretty close to what I was thinking.

UI Feedback

With the left-aligned card text, it makes sense to align the buttons flush left as well, so the eye has a clear visual pathway down each card. Heading > Description > CTA

UX Feedback

  1. The Upgrade Now button in the top right is a little disconnected from the rest of the page. Since upgrading is a necessary step to use any of the add-ons, users should be funneled through that process more directly. That could be accomplished with the two-button approach outlined below.
  2. We should account for two types of users, each of which requires a different path forward.
    • Users in task-completion mode have already purchased and need to activate plugins.
      • Unlock Now (primary CTA) - Initiates the user login with Give credentials or, if Give credentials are already stored, pings the givewp.com server to validate and unlock the add-on.
    • Users in discovery mode who are first learning about add-ons.

@DevinWalker
Copy link
Member Author

UX Feedback Response

Thanks @kevinwhoffman for the excellent feedback. The concept above is for users for the free plugin only w/ no add-ons installed. If the users has an add-on installed or the future "Add-on Manager" plugin then the UI/UX needs to change accordingly.

More-so:

  1. I like the "Learn more" to balance the button out and provide a useful link to the product page. The "Unlock now" should go to the bundles page.
  2. I agree the "Upgrade Now" button looks a little disconnected at the top. It would be better balanced with another button.

Additionally

  1. For current customers I'd like to detect whether the add-ons are installed w/o the future "Add-ons Manager" plugin and prompt them to install it on this screen and also with a dismissible notice.
  2. I would like to determine the best way to "login" the user to givewp.com to bypass any licensing. A modal would be nice but seems insecure even if the iframe is https (https://security.stackexchange.com/questions/145100/is-a-modal-payment-over-https-secure-if-the-main-page-is-only-http) - therefore perhaps we open a mini-window with a custom login than then sends the necessary info back to the window that opened it. Q1: Is this less reliable than in page redirect and redirect back? Q2: What happens when someone closes the original opened window?

@DevinWalker DevinWalker changed the title Licensing revamp to use login rather than keys Licensing / Add-ons page user flow and revamp to use login rather than keys Dec 18, 2017
@kevinwhoffman
Copy link
Contributor

kevinwhoffman commented Dec 18, 2017

I would like to determine the best way to "login" the user to givewp.com...

Here's a possible approach that would not require any sort of redirect to authenticate the purchase:

  1. User purchases add-on/bundle on givewp.com.
  2. At checkout, they provide the domain associated with the license and that domain is stored alongside their account details on givewp.com.
  3. The user visits the Add-ons page inside the plugin and clicks Unlock Now.
  4. The user is asked only to provide the email address (used to purchase the add-on) which is sent as a $_GET request from the plugin to givewp.com. The request checks the provided email address against the Give customer database and confirms that the request came from a valid domain associated with that email.
  5. If the domain is valid and an active license exists, then the add-on is unlocked.

@kevinwhoffman kevinwhoffman changed the title Licensing / Add-ons page user flow and revamp to use login rather than keys design(admin-license): design new license activation UI Mar 13, 2018
@kevinwhoffman kevinwhoffman changed the title design(admin-license): design new license activation UI feat(admin-license): plan user flow for license activation Mar 13, 2018
@kevinwhoffman
Copy link
Contributor

I've renamed this issue to focus on planning the user flow, since that is primarily what we've discussed so far. This is part of the overall implementation of the new licensing experience in epic #2904.

@mathetos
Copy link
Member

@kevinwhoffman said:

As long as Give offers single add-ons and bundles, we'll have to either choose between account authentication or multiple keys.

I don't believe that's true. Account authentication should be able to handle multiple keys no problem since all the keys are attached to the same customer just like single Bundle keys are. We should be able to pull all the keys that are attached to the customer and show which addons are available for activation.

@pippinsplugins
Copy link
Contributor

pippinsplugins commented Mar 14, 2018 via email

@DevinWalker DevinWalker self-assigned this Aug 1, 2018
@kevinwhoffman kevinwhoffman changed the title feat(admin-license): plan user flow for license activation feat: plan user flow for license activation Oct 2, 2018
@kevinwhoffman
Copy link
Contributor

To get this discussion going again, I have reviewed the All Access pass and believe this could be a viable option for improving licensing within Give.

EDD All Access Pass Overview

I recommend going over the materials below to understand how All Access works so you'll better understand how it could work with Give.

Doc: https://docs.easydigitaldownloads.com/article/1757-all-access-overview
Overview Video: https://youtu.be/ZJzGool4yPA
In-depth Tutorial Video: https://youtu.be/t8ZkzeDasWY

Proposed Integration with Give

  1. Create 3 All Access pass products to match Give's 3 bundles.
    • Basic
    • Plus
    • Pro
  2. Assign Basic, Plus, and Pro categories to each individual add-on to indicate which All Access pass product should have access to it.
    • See https://youtu.be/t8ZkzeDasWY?t=779 for applying download categories in bulk.
    • MailChimp would have Basic, Plus, and Pro categories since it's available in all bundles.
    • Recurring Donations would only have Plus and Pro categories so its not available in Basic bundle.
  3. Set the corresponding category within each All Access pass product to determine which add-ons belong to which pass.
  4. Integrate with EDD Recurring Payments.
  5. Integrate with EDD Software Licensing to sell master licenses.

@pippinsplugins
Copy link
Contributor

That's exactly how we have it set up on our sites and it works quite well.

The biggest hurdle is migrating existing customers from the bundles to the passes. We chose to not automatically migrate anyone and simply manage them on a case-by-case basis at renewal times and through upgrade options.

If there are any questions on how to achieve all of this, I'm happy to help.

@mathetos
Copy link
Member

Thanks @pippinsplugins -- how did you handle it at renewal? Are they automatically updated to the all access pass? Or do you interact with them somehow to inform how they renew?

@pippinsplugins
Copy link
Contributor

We did it for manual renewals only.

  1. We disabled renewals on the old products so they could not be purchased again.
  2. We communicate to our customers that to renew they should purchase the new pass options (some were given discounts)

@kevinwhoffman
Copy link
Contributor

@DevinWalker and I were discussing whether our existing bundle keys could be made to work like the all access pass, so that only the bundle key could be entered and all child plugins activated.

However I don't think this is possible after seeing this note in the docs for bundle licensing:

NOTE: Please note that currently, Bundle (or Parent) Licenses are only useful for bulk-changing license expiration dates on the Admin/Seller side. On the customer side, they are only useful for renewals. A Bundle License can be used by the customer for renewing their Bundle purchase.

A Bundle License cannot currently be used to activate "child" products contained in that Bundle. For activating "child" products, customers must use the license key that was generated for that specific product upon purchase.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants