On this page
- Event Management
- Trigger Events
- Assessment Events
- Assessment Result Events
- Assessment Result Solution Events
- Assessment Result Review Events
- Challenge Events
- Team Candidate Events
- Simulating and Firing events for development
- Data Models
- Assessment Result
- Assessment Review
- Solution Reviews
- Team Candidate
Webhooks are only available on our custom plans.
Webhooks make it easy to tie into events that occur in the Qualified system. You can configure them on the integrations page.
Want to be notified when a candidate starts and finishes their assessment? Interested in monitoring your own team’s development of challenges and assessments?
Simply provide a URL to your API and check the boxes for the events you want to be broadcasted to this URL. Then you can integrate into your own system actions to be taken upon completion of these events.
Multiple webhook subscriptions are supported, to allow for multiple systems to be notified.
There are certain conditions in which a failed webhook delivery attempt will be retried. Webhook events will only be retried once in these cases.
The following cases result in a single retry attempt being made:
- Connection failure to the webhook URL
- Connection timeout (after 5 seconds)
- Server returns one of the following status codes:
The retry attempt will wait at least 60 seconds before retrying.
The reason why Qualified only retries once under certain conditions is to minimize the potential for duplicate data to be created within the receiving app. Sometimes failures happen after a certain amount of processing has already happened and can cause the receiving application to respond to retries as if it is a new event.
For each configured webhook subscription, you can view the last 100 webhook events that were sent. From this interface you can manually trigger a retry for any of the failed events, as many times as you need to.
Each webhook subscription can be configured to trigger for specific events. We recommend only configuring the triggering events that you need, in order to minimize unnecessary server load.
These methods are specific to updates concerning assessments so they emit a Assessment in the
- Assessment Created (assessment_created) - This event will fire when an assessment has been created.
- Assessment Updated (assessment_updated) - This event will fire when an assessment has been updated.
- Assessment Published (assessment_published) - This event will fire when an assessment has been published. At this point it will become available for candidate usage.
- Assessment Destroyed (assessment_destroyed) - This event will fire when an assessment has been deleted. This is a soft delete, so the assessment will in fact continue to exist should you need to reference it later.
Assessment Result Events
These methods pertain specifically to a candidate's assessment outcome so they will emit an Assessment Result in the
- Assessment Result Started (assessment_result_started) - This event will fire when a candidate selects their language and begins their challenge on an assessment result.
- Assessment Result Submitted (assessment_result_submitted) - This event will fire when a candidate has completed their assessment and clicks submit. Once this has occurred, the candidate can no longer update the assessment result.
- Assessment Result State Changed (assessment_result_state_changed) - This event will fire when any of the following state changes occur on the assessment result:
terminated. When using this event, you should not use
assessment_result_submittedas it would be redundant.
team_candidate_submitted_assessment events are deprecated. If you are currently using these events, please
update your integration to use
Assessment Result Solution Events
These methods pertain specifically to a candidate's solution within an assessment so they will emit a Solution in the
- Solution Created (solution_created) - This event will fire when a candidate starts to work on their solution for a challenge.
- Solution Updated (solution_updated) - This event will only fire when a candidate tests or submits their code solution. For Q&A solutions, this event will fire on all updates.
Assessment Result Review Events
These methods reference the assessment result that is a team member's evaluation of a candidate's assessment result. It will an emit an Assessment Result Review in the
- Assessment Result Review Created (assessment_result_review_created) - This event will fire when an assessment result review has been created by a team member.
- Assessment Result Review Updated (assessment_result_review_updated) - This event will fire when an assessment result review has been updated by a team member.
- Assessment Result Review Submitted (assessment_result_review_submitted) - This event will fire when an assessment result review has been submitted by a team member.
- Assessment Result Review Destroyed (assessment_result_review_destroyed) - This event will fire when an assessment result review has been deleted. This is a permanent delete, so further references to the challenge may not be valid.
These methods are specific to updates concerning challenges so they emit a Challenge in the
- Challenge Created (challenge_created) - This event will fire when a team member has created a new challenge. It will emit an Challenge as it's
- Challenge Updated (challenge_updated) - This event will fire when a team member has updated a challenge.
- Challenge Published (challenge_published) - This event will fire when a challenge is published. At this point the challenge will become available for candidate usage.
- Challenge Destroyed (challenge_destroyed) - This event will fire when a challenge is deleted. This is a permanent delete, so further references to the challenge may not be valid.
Team Candidate Events
These methods are specific to updates concerning team candidates so they emit a TeamCandidate in the
- Team Candidate State Changed (team_candidate_state_changed) - This event will fire whenever a team candidate's state changes. This includes when a team candidate is first created, due to an invite or starting an assessment via a public link.
- Team Candidate Label Added (team_candidate_label_added) - This event will fire whenever a team candidate has a label added. If multiple labels are added at the same time, a unique event for each one will be fired.
- Team Candidate Label Removed (team_candidate_label_removed) - This event will fire whenever a team candidate has a label removed. If multiple labels are removed at the same time, a unique event for each one will be fired.
Simulating and Firing events for development
See the API docs at https://qualified.io/api/docs#webhook-examples for a set of APIs for simulating and triggering webhook events.
The data sent emitted by the configured webhooks can be broken down according to their data models.
The assessment represents the set of challenges that a candidate can be presented with.
- challenges: Set of challenges
The assessment result represents a candidate's outcome after taking their challenges.
- solutions: Set of solutions
The assessment review represents a team member's evaluation of a candidate's assessment result.
- reviewedById: The team member who reviewed this candidate
- teamCandidateId: The candidate who has received this review
- assessmentResultId: The associated assessment result
- solutionReviews: A set of solution reviews
Represents a challenge within your library.
Represents a candidate's attempt to solve a particular challenge.
- challenge: The challenge this solution pertains to
Represents a team member's review of a particular candidate's challenge solution.
- challengeId: The id of the challenge for this review
- solutionId: The id of the solution for this review
Represents the developer taking the assessment. For education customers, this entity is called a "Student" within the UI.
- labels: Array of strings
- testTeamMember: true if the team candidate is actually a team member taking the assessment)
- recentAssessmentResult: assessment result with the most recently updated state
- addedLabel: Only present for
- removedLabel: Only present for