Copy of Teachable - Certificates


Custom User Roles



Some schools are run by entire teams of people. But an accountant shouldn’t have the same permissions as an instructor. How do we establish user permissions in a way that fits our product right now and in the future?

A student getting a certificate upon completion

A student getting a certificate upon completion



Teachable is an edtech startup that enables anyone to create their own online courses. We have people that teach everything from feng shui to javascript, with 18+ million students learning on our platform.


I worked with a team of 4 (head of product, a FE dev, a BE dev and QA) over the course of two and a half months as the primary product designer.




What's the problem? 

“I am hiring some people to help with customer service and it would be SO helpful if they could have a separate account with limited admin privileges - they need to be able to look up student accounts, issue refunds, change emails and passwords, and moderate comments. But they shouldn't have access to my payment information or dashboard and such.”

“I want to give teachers and school administrators the ability to see how much progress their students have made after we have sold a course to their school, without letting them modify courses/see financial info.”

“Can I add an admin who can deal with everything but billing and payments and other sensitive functions?”

Teachable has a wide variety of schools—some of them are small schools based around a niche hobby or small audience. But we also have schools that make $1M+ a year, and these are often managed by teams of people with very specialized roles. Us not having a concept of permissions or roles was hurting our business.

Our hypothesis was that if we built a roles/permissions system, we’d be able to satisfy larger schools and add additional value to differentiate our High Volume plan from lower-level paid plans.


Design stories

So what should V1 of this feature allow users to do?

For Primary Owners (Admins):

  • Primary owners can create new custom roles

  • Primary owners will be able to choose from a list of privileges and modify these custom roles freely

  • A primary owner will be able to edit a previously created role and ALL edits will apply to ALL users the role is tied to.

  • If user has access to custom roles, show full role creation ability

  • If user has free or non-qualifying plan, the only two options in dropdown are “Owner” and “Create New Role”.

    • Upon selecting “Create New Role”, user would then be shown an upgrade gate.

    • Select would be helptext except when a user is already an “Owner”

  • What happens when school downgrades? All additional roles are wiped out and everyone is turned into an owner.

  • Would remove ability in user -> information to modify privileges. Everything would now take place in new roles tab.


How do we measure the impact of this feature?

  • Number of school upgrades from Pro -> High Volume attributed to custom user roles

  • Number of schools with custom admin accounts





Much of the initial ideation consisted of working out edge cases around downgrading (since this is a feature only available on certain plans), issuance of multiple certificates (how to manage several versions of a certificate once it has been issued), how to handle one-off certificates, as well as figuring out what info would be customizable by the school owner.

I worked with my head of product to whiteboard out our initial problem statement, design stories, flows and questions.

We got to a point where we came up with a shared approach on how to handle versioning, customization, manual issuance and upgrade gating.




Upon creating a certificate, a user could choose between three certificate templates, as well as the ability to build a custom template using a liquid theme. The three templates would have similar layouts, but customizable text and border/text colors.


As a school owner edits a certificate, we decided to pre-populate the name of the school, the course that it relates to, as well as the student name. Everything else is made up to the certificate creator.

Certificate editor screen

Certificate editor screen


The index screen is where a user can manage the current active certificate, as well as see a list of alternate inactive certificates. Each certificate has a preview, as well a tally of how many times the cert has been issued/a list of students the certificate has been issued to.

The idea of the active certificate correlates with automatic issuance upon completion—if there are no active certificates then nothing happens when a student finishes a course. This also happens if a user toggles the option to “Issue Certificate Manually”.

Certificate index screen

Certificate index screen


Below are the three certificate templates we present to users. Each course certificate has a unique serial code attached. A user can edit the border color, primary text color and secondary text color, as well as upload their own signature file.


On the student side, they’re able to view the certificate as well as download it as a PDF in their course detail screen. Once issued, a certificate lives permanently on their course detail, unless deleted or replaced by the school admin with a new certificate.





The course certificates feature launched to users on our professional and up plans in July 2018. In the first month after release, we saw the following numbers:

  • 32 new upgrades

  • 1k certificates created

  • 3.7k certificate issuances


CertificatesAdmissions StoryFree AccessConversations