Thanks for the mention @roisinkirby
Hi @glepine9176,
I’m Ty, the web designer on HubSpot Academy. In addition to the Inbound Speed Round game we created, I have worked on the certification platform that the Academy uses, as well have built a couple ‘grader-style’ apps that may help you out here.
Let’s start with the one Ró mentioned…
Inbound Speed Round
ISR is an app that we created to allow our INBOUND attendees last year to play and win prizes. It was initially built for live play, then scaled up into a web-app. Basically, this app is made up of a few things:
1. A call to a JSON file (This stores all our questions)
2. JS(jQuery) that is used to dynamically create/generate the board
2.5. Code to store basic information in the browser’s local storage
3. A form to submit the information (name, email and score) to our contacts DB
4. An api endpoint that allows us to post the info (name, email and score) into HubDB.
However, based on what you want, here are some of the cons of this method:
- We don’t store which questions a user got wrong
- We didn’t really create any ‘lockout’ method to insure that people can only fail a few times before being able to play again
- HubDB creates a new row for every entry, rather than updating the existing
HubSpot Academy Certifications
So this may work a little better for what you want. In our certifications, we utilize a custom made app to handle the user functions, then for quizzes/tests we use a website called Brillium.
Grading app
Fair warning, this one is a little hacky… At my old job, we wanted to build a grader that allowed us to give a score for how a user was doing with their fundraising. We took information such as “Contacts DB size”, “Last year’s vs This year’s gifts”, and “Retention amounts” to generate a score between 0 and 400. I have created an example of it on my codepen that you can check out. In this instance all of the calculations and math are done client side, then using a form hack* we were able to push each form field to the database.
*The form hack I am mentioning is, if you create a form in HubSpot, embed it on a page and then clone that HTML onto a page, you are able to print it to your contacts database. Now, since we did all of our calculations client side, the user can see their score at the end, then has an option to submit. On submission, we had some workflows set up that allowed us to send them information based on sections they were sub-par in. For your case, you could probably hide the end score, have them submit, then email them results.
Some cons of this method are:
- It’s pretty hacky, unfortunately 
- Some workflows take a little while to send out
- We didn’t build a random question type thing
- You would need a form field on the form AND a contact property for every question
Truthfully, I would say if you want to build up a quiz, look into ways to pull a JSON file (your questions) into a javascript webapp. Buiid it as a standalone, then bring it onto your website. This is going to have to be a pretty custom creation, since HubSpot doesn’t have anything completely out of the box for this use case.
Hope this cleared some things up! Let me know if there is anything else I can answer.
-- Ty