1
Evaluate the answer sheet
The student’s paper is marked first, through exam evaluation. Marking saves two things the plan depends on: the marks for each answer, and the feedback comments explaining what was wrong.What you need after this step: the answer sheet ID.
2
Ask for a plan
Your platform sends the answer sheet ID. The reply comes back immediately, with that same ID and a message confirming the plan was started. The plan is saved at once with the status
In Progress.3
The service collects the evidence
It finds every answer marked below the marks available and groups those answers under their numbered question. For each question it gives the AI the question as printed, the stored model answer, what the student wrote, the marks it got, and the feedback comments recorded at marking. A question the student was allowed to skip is not held against them.Questions answered for full marks get no advice of their own. The AI is told which ones they were, and the student’s total, so it can say what went well. The student’s ID and name are not sent to the AI.
4
The AI writes the plan
The AI returns a summary for the paper, an action type, the advice for the student, a skill focus, a confidence tip, and one entry per question. The plan is saved and the status changes to
Completed.5
Read the plan
Your platform asks for the plan by answer sheet ID and gets the plan, its status, the student ID and name, and the time it was created. If you registered the
student_action_plan webhook, the service calls your URL with the status as soon as the work ends, so you do not have to keep checking.What do the statuses mean?
What happens if something fails?
If the work fails, or is stopped for any reason, the plan gets the statusFailed and the reason is saved with it. Your webhook, if you registered one and it is enabled, is called with Failed. Ask for a new plan for the same answer sheet when the cause is fixed.
Two checks happen before any work starts. An answer sheet ID that does not belong to a real answer sheet is rejected, and no plan is created. Going over the daily limit on plan requests is rejected with 429.
Frequently asked questions
How long does the background work take?
How long does the background work take?
Usually under a minute. It depends on how many questions lost marks and how long the answers are. The service stops work on a plan that has not finished within 10 minutes and marks it
Failed, and you can ask for a new one.Can I ask for a plan before the paper is fully marked?
Can I ask for a plan before the paper is fully marked?
You can, but the plan will only cover the answers marked so far. Wait until evaluation is complete for the answer sheet.
What if the student scored full marks?
What if the student scored full marks?
The plan has no per-question entries, because advice is written only for questions with marks deducted. The overall parts are still written from the student’s total and the questions they got right.
Can I ask for a plan twice for the same answer sheet?
Can I ask for a plan twice for the same answer sheet?
Yes. Each request creates a new plan, and reading the plan returns the newest one. The older plan is no longer returned.
Who can read a plan once it is created?
Who can read a plan once it is created?
Only the API user that created it. The read is matched on the user, not the account, so a second API user on the same account gets nothing back for that answer sheet. If several of your services need the plan, create it with the same API user, or store the result on your side.
How do I set up the webhook?
How do I set up the webhook?
Your developers register the
student_action_plan event once, with an HTTPS URL of yours, using the webhook API. The call your URL receives carries the answer sheet ID, the event name, and the status. It does not carry the plan itself, so read the plan afterwards. If the event is not in the list your account can subscribe to, contact CrazyGoldFish.Next steps
Use cases
How schools and platforms use student action plans.
Developer guide
Create student and teacher action plans with the API, step by step.