Claude-code-plugins-plus-skills mindtickle-core-workflow-b

install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/mindtickle-pack/skills/mindtickle-core-workflow-b" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-mindtickle-core-workflow-b && rm -rf "$T"
manifest: plugins/saas-packs/mindtickle-pack/skills/mindtickle-core-workflow-b/SKILL.md
source content

MindTickle — Quiz & Assessment

Overview

Create quizzes and assessments, grade submissions, and track scores across your sales enablement programs in MindTickle. Use this workflow when building certification exams, knowledge checks after training modules, or competency assessments that feed into rep readiness scores. This is the secondary workflow — for training content and course management, see

mindtickle-core-workflow-a
.

Instructions

Step 1: Create a Quiz with Question Bank

const quiz = await client.assessments.create({
  title: 'Q2 Product Knowledge Certification',
  module_id: 'mod_product_q2',
  passing_score: 80,
  time_limit_minutes: 30,
  max_attempts: 2,
  questions: [
    { type: 'multiple_choice', text: 'What is the primary use case for Feature X?',
      options: ['Analytics', 'Automation', 'Security', 'Compliance'],
      correct: 1, points: 10 },
    { type: 'true_false', text: 'Feature Y supports SSO out of the box.',
      correct: true, points: 5 },
    { type: 'open_ended', text: 'Describe how you would position Feature X to a CFO.',
      points: 20, rubric: 'Must mention ROI, time savings, and compliance' },
  ],
});
console.log(`Quiz ${quiz.id} created — ${quiz.questions.length} questions, pass=${quiz.passing_score}%`);

Step 2: Assign Quiz to a Team

const assignment = await client.assessments.assign(quiz.id, {
  team_ids: ['team_sales_west', 'team_sales_east'],
  due_date: '2026-04-20',
  reminder_days: [7, 3, 1],
  notify: true,
});
console.log(`Assigned to ${assignment.total_reps} reps, due ${assignment.due_date}`);

Step 3: Grade Submissions and Review Scores

const submissions = await client.assessments.submissions(quiz.id, {
  status: 'completed',
  sort: 'score_desc',
});
submissions.items.forEach(s =>
  console.log(`${s.rep_name}: ${s.score}% (${s.passed ? 'PASS' : 'FAIL'}) — attempt ${s.attempt}/${quiz.max_attempts}`)
);
const pending = submissions.items.filter(s => s.pending_review);
for (const sub of pending) {
  await client.assessments.grade(quiz.id, sub.id, {
    question_scores: [{ question_id: 'q3', score: 15, feedback: 'Missed compliance angle' }],
  });
}

Step 4: Export Score Analytics

const analytics = await client.assessments.analytics(quiz.id, {
  group_by: 'team',
  metrics: ['avg_score', 'pass_rate', 'avg_completion_time'],
});
analytics.teams.forEach(t =>
  console.log(`${t.team_name}: avg=${t.avg_score}%, pass_rate=${t.pass_rate}%, avg_time=${t.avg_minutes}m`)
);

Error Handling

IssueCauseFix
401 Unauthorized
Invalid or expired API tokenRegenerate token in MindTickle admin
404 Assessment not found
Wrong quiz ID or deleted assessmentVerify with
client.assessments.list()
422 Invalid question format
Missing required fields in question objectInclude
type
,
text
,
correct
, and
points
409 Already submitted
Rep exceeded max_attemptsIncrease
max_attempts
or reset submission
403 Assignment restricted
Team not in the module's audienceAdd team to module audience first

Output

A successful workflow creates a timed quiz with mixed question types, assigns it to sales teams with automated reminders, grades submissions, and produces team-level analytics showing pass rates, scores, and question difficulty breakdowns.

Resources

Next Steps

See

mindtickle-sdk-patterns
for authentication and webhook configuration.