AccessAlly Migration from WP Courseware:
An Advanced Case Study
In the spirit of full disclosure, this article contains affiliate links, which means that I may get a commission if you decide to purchase anything through those links. I only recommend products and systems that I use and love myself, so I know you’ll be in good hands.
In this project, we created both a new marketing site and a new membership site for Programming Electronics Academy, where instructor Michael Cheich teaches Arduino. Unlike some of my clients who are moving their in-person offerings online for the first time, Michael already had an established, successful membership site, and was looking to move to the next level with a more professional design, streamlined content organisation, and more sophisticated user engagement tactics.
Michael's marketing site had been a collection of ONTRAPages, which we rebuilt with a fresh design as custom WordPress pages. His membership site had been built using WP Courseware. We migrated the content to AccessAlly, moved all of his more than 35,000 existing members to the new system, and updated the site design to match his newly branded marketing site.
This case study will focus on the work we did on his AccessAlly membership site.
Michael was already an established ONTRAPORT user, so this was the CRM with which we integrated the membership site. Note that the solution described in this study could just as easily be implemented with any of the other CRMs that AccessAlly works with.
Previously, Michael sold only one membership bundle that gave access to all of his courses. We created new products and offerings (and separate tag protection) so that he could sell access to individual courses, as well as the overall membership. We streamlined Michael's course offerings to end up with 5 individual courses, an eBook, and a hardware offering. This gave him new opportunities for cross-sell and up-sell.
Michael's free lead magnet is a subset of lessons from his flagship course. On his old site, the two courses (lead magnet and flagship) were completely separate. We combined them using sophisticated tagging, resulting in maintenance of only a single course.
Michael's courses are geared to use in the classroom. For this reason, he needed the ability to sell multiple licenses as a package. We made use of AccessAlly's Team feature to do just that.
Our solution added scalability so that Michael could better leverage his time. We included the ability for members to self-manage their accounts, including updating their own passwords and credit card information.
Both Michael and his members were delighted with the final solution.
2. The Client
Michael is a combat veteran, who served 20 years in the US Military. His passion for learning, desire to serve others, and technical inclination have since driven him to pursue a business teaching programming electronics with Arduino.
Michael writes about himself: "Curiosity drives me. It is my default mental mode - to explore, to ask questions, to seek understanding." This curiosity made Michael an ideal client for a geek like me to work with! We were able to push AccessAlly to its limits, and create some "cool" features within Michael's programs to enhance his users' experience.
Programming Electronics Academy is home to Michael's online training programs. With those programs, he helps STEM teachers bring Arduino to their classroom without having to spend months developing their own curriculum.
Programming Electronics Academy offers a number of courses that include video training and extensive written help. Before building the new website, Michael’s offerings were housed on the same website as his marketing. They were originally built using WP Courseware. Everything was sold together as part of a membership. With the new site, Michael wanted to:
- separate out access to each of his courses to enable them to be sold separately (in addition to continuing to sell a full access membership), and
- sell multiple license bundles for the membership, to accommodate selling to classroom teachers.
3. The Challenge
Our project together was about creating a significantly improved experience for Michael's students, as well as providing more sophisticated marketing and sales opportunities for Michael.
Michael had several objectives for this project.
- Sell his courses separately, as well as bundled in a membership, to add new opportunities for cross-sell and up-sell.
- Create an updated, more professional look and feel for both his marketing and membership websites, to attract more clients.
- Sell packages of multiple licenses to organisations, making it much easier for him to reach a key audience of school teachers and their students.
- Enhance the learning experience he provides by encouraging more engagement and helping his students retain what he teaches.
- Smoothly transition his existing clients into the new environment.
4.The Nitty Gritty of the Solution
Michael's new members site is built on a subdomain of programmingelectionics.com, namely academy.programmingelectronics.com, giving a clean separation of function between the two sites. We built both his marketing and membership sites using the Beaver Builder plugin.
Content Structure and Organisation:
The central hub of the membership site is the Dashboard page, which is the landing page when members first log in. This is the jumping-off point for the main content of the site. The Dashboard is filled with icons grouped by content type. At the top, for quick access, are the various courses offered. Courses to which the member does not have access are linked to a sales page with a "learn more" icon.
Individual courses are made up of modules and lessons. Everything is released at once (no dripping), but the modules are used to add structure to the content, roll up lesson progress and display it at a module level, and include a navigation menu for the lessons within that module.
The courses section of the Dashboard includes an icon linking to a special "My Certificates" page. On this page, we've used conditional logic and the magic of the AccessAlly shortcodes to include all the certificates which the member has earned. The conditional logic shows a section with a heading for each course to which the member has access. Inside that section, more conditional logic shows the certificate only if the member has completed all the progress objectives for that course. Finally, the certificate itself is included with a shortcode that references the main course page on which the certificate has been defined. All in all, this provides a handy way for a member to find all of their certificates.
The next section of the Dashboard is titled "For Teachers," and includes links to the marketing site for sales and informational pages relating to Michael's license bundles and other classroom-related products. See the following section, "A Personalised User Experience," to learn how we hid this section for non-teachers.
The next section of the Dashboard is for Hardware-related offerings. Michael sells a physical shield for Arduino that his clients can purchase.
The final section of the Dashboard is for Questionnaires. Michael uses Typeform questionnaires to collect information from his members at each stage of their journey with him, from free member, through to paid subscriber with a completed project. See the section below on "A Personalised User Experience" to see how we used some advanced techniques to customise each user's view of these icons.
In addition to the Dashboard, the main menu also offers links to a Resources page (which in turn links to collections of blog posts on Michaels's main marketing site), FAQ's, Account pages, and a Contact page.
Pro Tip: Given the large numbers of pages on the site, finding a particular page from the back end of WordPress could be difficult. To help with this, we installed the "Nested Pages" plugin, which provides an intuitive drag and drop interface to manipulate your pages, and allows you to collapse child pages under their parent.
Sharing Pages Between Courses
Michael's lead magnet is a free course called the Arduino Crash Course. It's actually a few lessons, spanning three modules, taken from his flagship course called Absolute Beginners Course, 2nd Edition. On Michael's original site, this content was duplicated, and the free and paid courses were entirely separate. On the new site, we've combined them so that the content is shared. This means less maintenance for Michael if he wants to update the course content; now he only has to do it on one place. To make this work, we did need a bit of fancy footwork in the form of conditional shortcodes around the page headings, next and previous lesson buttons, and progress pie charts, so that the right course information showed up depending on the member's access tags.
Migrating Content from WP Courseware
WP Courseware uses a custom post type for its lesson content. In keeping with their amazing custom service, the AccessAlly team created a plugin to convert the WP Courseware course to an AccessAlly course, with the custom posts converted to WordPress pages. After using the plugin, there was still some manual work for be done, but the plugin definitely saved some time. We still had to create individual pages for the modules, and copy/paste the content into our Beaver Builder theme layout, but the access tags were all in place. The plugin isn't public yet at the time of this writing, but if you need to do a WP Courseware migration to AccessAlly, definitely contact AccessAlly support, and I'm sure they'll help you out!
Design and Layout:
Emilia, who regularly partners with me on projects requiring custom design, was the creative energy behind this site. Emilia did a full re-branding of both Michael's marketing site and this membership site, making sure they have a consistent look and feel. Her new design raised the bar significantly for Michael's brand, making it far more professional. Although AccessAlly works with just about any theme, we chose my favourite theme to build this site: Beaver Builder.
One day, I was happy to find that Michael had posted this comment in our Teamwork project:
"This website is so awesome. I was showing off the academy website dashboard to a business friend in a similar kind of industry. They loved it. So do I - it looks great!"
A Personalised User Experience:
a. Using a member's name
When a visitor first logs in, they are immediately greeted with a personal welcome message at the top of the Dashboard page. Right below, is a "Start Here" button that pops up a welcome video explaining how to use the site.
Pro tip: This can be accomplished by using the AccessAlly shortcode [accessally_user_firstname]. Some of the other shortcodes available for personalisation include last name, full name, email, and profile picture.
b. Changing the experience based on tags
Because AccessAlly is aware of all the CRM tags that a member has, you can further customize your members' experience based on those tags. AccessAlly provides shortcodes that allow you to conditionally include or exclude content. There are shortcodes to check whether your member is logged in, whether they have specific tags, are missing specific tags, and are able to access a particular page.
We used conditional logic on Michael's Dashboard page to determine which icons to show in his Questionnaires section. These icons represent a series of surveys that Michael asks his members to complete, depending on what stage they are at in their journey with him: a lead who has opted in for the free content only, or a customer. Surveys are unlocked based on the member acquiring specific tags through product purchase, or completing prior surveys.
Unlike typical Dashboard icons, the icons for the Questionnaires have three, not two states. The first is "locked." For example, free-only users cannot access the customer onboarding survey. The second state is "unlocked." For example, once a members purchases a product, they can access the customer onboarding questionnaire. The final state is "completed." Once a members completes a questionnaire, the icon displays a check mark as an indicator to them that they have finished that survey.
Pro Tip: You can only use this kind of conditional logic within a Text or HTML/Code block. If you are using a theme with a Visual Builder such as Divi or Beaver Builder, it's not possible to wrap a theme block in a conditional shortcode. The shortcode must go inside the Text block.
c. Allowing the user to change their own experience (Pro Tip)
Michael has a section of content on the site that is geared toward teachers. Since not all of his members are teachers, he wanted to provide a way to declutter the Dashboard so that icons related to teacher-only material could be hidden at the member's own discretion. To this end, we built a custom operation button that the member could click saying "I am not a Teacher." When clicked, this button adds a tag to the member. The teacher icon section of the Dashboard is then hidden using one of the conditional shortcodes described above (i.e., content is wrapped in [accessally_missing_any_tag tag_id='123' comment='I am not a Teacher']). When the button is clicked, the page is refreshed and the Teacher section is then hidden.
Products and Offers:
We used the AccessAlly course wizard to set up five individual courses, as well as an ebook, that Michael can sell separately. Each course has its own set of access tags. Courses are not dripped out, so the tagging is straightforward with a Course_Has_Access tag governing access.
I used to recommend that clients use the ONTRAPORT products and order forms to sell their courses. Now, the AccessAlly team has come so far with their integrated products and offers that I highly recommend you use that. The only caveat is that you must use the Stripe payment gateway if you have subscriptions, and either Stripe or PayPal for one-time purchase products. If that works for you, then there are a host of sophisticated features to the AccessAlly offers that you can take advantage of, including order bumps, one-click up-sells, coupons, order toggles (e.g., to switch between currencies, or payment plans), and the ability to up-grade or down-grade subscriptions. Handling failed payments is simpler too. The AccessAlly order forms have two steps to collect the user's information. In the first step, a user enters their name and email, after which, a contact is immediately created in your CRM, and can be tagged for abandoned cart follow-up. Finally, in my opinion, the order forms are much prettier, too!
For Programming Electronics Academy, we used the AccessAlly products and order forms. The AccessAlly products are tied to the products defined in ONTRAPORT, so Michael can still use ONTRAPORT's sales tracking and reporting.
In AccessAlly, we created products corresponding to each course, as well as products to represent the monthly and annual subscription bundles. When the bundles are purchased, the member receives access tags for all the individual courses that comprise the membership.
We created order toggles to allow users to switch between an annual or monthly subscription, and to allow them to switch between a 10, 20, or 31 license bundle.
In Phase 2 of the project, we plan to build out more sophisticated sales options, including numerous coupons and offers, and the ability to upgrade between various subscription types.
Up-sell and Cross-sell
One of the significant benefits of the AccessAlly platform is that it allowed us to present all of Michael's individual offerings on the Dashboard. For anyone who had opted in to the free course, icons representing all the paid offerings, and linked to corresponding sales pages were always visible. For those who had purchased an individual course, cross-sell offers in the form of icons linking to other courses for sale, as well as up-sell offers in the form of icons linking to subscription or license bundles, were always visible. These "learn more" no-access icons are a soft cross-sell, tempting members with the potential for additional content, and provoking curiosity to click and find out more.
Pro Tip 1: We used the same icon style to link to all the content on the site, whether it be courses, or links to the team management page, questionnaires, and certificates. The course icons were included using shortcodes, and the other icons were just linked images. Mixing them gave a consistency to the look and feel of the content.
License Bundles (Using the AccessAlly Team feature)
A big selling point of AccessAlly for Michael was the ability to sell license bundles. Michael often sells to schools, and wanted a way for a teacher to be able to purchase and manage a number of licenses that they could assign to their students.
We set up 10, 20, and 31 licenses bundles in AccessAlly. The purchasing customer is able to assign each license to any email address they want. The beauty of the solution is that everything is automated. We set up onboarding automation so that the teacher/team leader gets a customised welcome email explaining how to use the product and assign licenses, and each student gets their own welcome email when their license is assigned. The purchaser can add and remove students, up to the number of licences they purchased. When they remove a student through their team management interface, the removal of access permissions for that user is handled automatically If the teacher cancels their subscription, all student licences are automatically revoked, and access removed.
We customised the Team Management page so that the progress for each student is displayed for each course in the membership. This is all done with AccessAlly shortcodes, so you can display any level of granularity you want (progress completion at the course, module, or page level, even the option to display individual progress objectives).
We created a link to the team management page using an icon on the Dashboard. It's only visible if the member is a Team Leader, so regular users won't see it.
User Engagement with ProgressAlly:
As I mentioned early on, Michael wanted to create a great experience for his members, and wanted to help them in every possible way to learn and retain knowledge. To this end, we made use of a few features of AccessAlly Pro.
First, Michael set a series of learning objectives for each of the lessons within his courses. As members progress through the course, they can check off the material as they complete it. This leads to a sense of accomplishment, not to mention the practical benefit of a visual indication of where they are at in their progress though the course. We implemented an pie chart indicator at the bottom of each course menu that shows the member’s overall progress through the course, as well as a progress bar tracker on each top-level module page. Checkmarks appear in the navigation menu when all lessons in a module have been completed.
Michael also made use of ProgressAlly’s Private Notes feature, giving his members a place on each page of their course content to add their own notes, visible only to themselves, and not to other members. Note-taking is known to aid in retention of the material.
Finally, Michael added social sharing through ProgressAlly so that his happy members can easily share their experience on social media. The buttons share the opt-in page for Michael's lead magnet; because the membership site is protected, it does no good to share the actual content page.
Because the private notes and social sharing are added on each page of content, we made the shortcodes part of the Beaver Builder page template, so Michael doesn’t have to add it himself every time he creates a new course page.
User Account Self-management:
Using simple AccessAlly shortcodes, we implemented a set of pages where members can update their account information, including their password, view their order history and subscriptions, and update their credit card. Michael directs members whose credit card subscription payments fail directly to the subscriptions page, where they can update it. All of this can be handled automatically through a combination of AccessAlly and ONTRAPORT automation, saving Michael the time and headaches of managing support calls.
We created a special vertical navigation menu on the Account pages so that we could cleanly separate all the information, but still make it easy to access.
Note that the site must be running over SSL for this to work.
Migration of Existing Users:
After building the site, my final step was to migrate Michael's existing users from his old site to the new one. This was a two-step process. First, Michael tagged all his members in ONTRAPORT with the access tags they'd need, and then exported a CSV with all contacts to be migrated. We then used the AccessAlly migration wizard to import the CSV, which created WordPress users, generating passwords, and syncing tags. We had a few hiccups with the import process given the large number of members (over 35 thousand) that we were importing. The issues were possibly related to the network connection I was using. If you run into problems, reach out to the AccessAlly team (like I did!), and they'll help you out.
5. The Results
"Working with Julie was a blast! Every time you start a new big project with a new team, it can be a bit intimidating. Based on what I could gather from Julie's website, people liked working with her. What I really wanted was a detailed oriented team that I could bounce ideas off of (and who would give me options) and one that could manage a big project. That's exactly what I got and more. Julie is very trustworthy, timely, and extremely organised. It was a pleasure working with her on a big project, and hopefully for a long time to come as well."
--Michael Cheich, Ashtabula, Ohio, USA
Michael now has a new home for his members, with a more sophisticated look and feel, more features to build engagement, more options for making sales, and the ability to sell licence bundles. So far, the feedback from his existing members, who have seen the before and after, has been very positive.
Learn more about AccessAlly for content protection gamification.
Want help building your own AccessAlly membership site? Contact me today!