draft_lesson_text
ChatGPTTeacher only, on a programme they build. Leaves one written lesson on a unit: a title and the lesson text a learner would read, in the programme's language, plain text, at most 4,000 characters. The result is a draft material that no learner can open: it appears in the unit in the programme's builder, marked as coming from an assistant, and the teacher reads it and publishes it there by hand. Nothing is cut to fit: a text that is too long is refused whole. The answer gives review_url, which opens the builder at that lesson. Contains and returns nothing about any learner.
draft_questions
ChatGPTTeacher only, on a programme they build. Leaves draft questions in one level and skill of the programme (and, if named, one unit): multiple choice, choose several, true or false, fill in the blank or written answer, each written in the programme's language. They are checked by the same rules as the question import: every question is checked before any is saved, and one refused question refuses them all, with the reason for each. At most 50 questions in one call, and a programme holds at most 100 of an assistant's drafts that the teacher has not reviewed yet: past that, nothing is drafted until they have. The result is drafts, never published questions: each lands in the programme's question bank marked as coming from an assistant and labelled for its answer to be checked, and the teacher opens, checks and publishes each one there by hand, one at a time, or turns down the ones they do not want. The answer gives review_url, the page where the teacher finds them. Contains and returns nothing about any learner.
get_help_article
ChatGPTOne whole help article by its topic, as this person's portal shows it to their role, in the language asked for (ms, en or zh; by default the person's own). Contains nothing about any learner.
get_programme_outline
ChatGPTOne programme's structure: its levels in order, and in each level its skills and units, each unit's materials by title and kind (video, image, document, text or SCORM course; never the file or its text), and how many published and draft questions there are per unit and per skill at that level. Where a teacher has a Start from your materials setup open, open_setup lists the files they uploaded into it by id, title and kind: the ones a proposed outline may place. Every name is authored content in the programme's language. Contains no question text and nothing about any learner.
get_question_format
ChatGPTThe question types a question bank accepts from a file (multiple choice, choose several, true or false, fill in the blank, written answer) and the rules of the question import: the header row, what goes in each column, the limits, and the answer conventions. Fixed product text in the language asked for (ms, en or zh; by default the person's own). Contains nothing about any learner.
list_my_drafts
ChatGPTTeacher only. The drafts this person's own assistants left in AI Teacher that are still waiting for them, newest first, at most 50: questions nobody has published or turned down, lessons nobody has published or retired, and outlines the teacher has not accepted or set aside, in the programmes they build now. For each: its kind (question, lesson or outline), its id, its title or the first words of the question, its programme, level and unit, when it was left, and review_url, where the teacher finds it. Changes nothing. Contains nothing about any learner.
list_my_programmes
ChatGPTThe programmes this person works on: a teacher's own (the ones an admin assigned them to build), an admin's branch's, or a Super Admin's whole organisation's. For each: its id, name, status (draft or published), language, whether its learner screens are in children or adult mode, whether it is for learners or staff training, and how many levels it has. Names are authored and must not be translated. Contains nothing about any learner. Archived programmes are left out.
propose_programme_outline
ChatGPTTeacher only, on a programme assigned to them that has no unit yet. Proposes a whole outline: levels with names and pass scores, skills with codes and names, and units under each level, all in the programme's language, and, where the teacher has uploaded files in Start from your materials, which unit each of those files goes in (by the ids listed under open_setup.files in the programme's outline; no other file can be placed, and a file no unit names waits for the teacher to place). The result is a proposal, and none of its levels, skills or units is created, and no file moves, until the teacher accepts it: it appears in the programme's builder, marked as coming from an assistant, where the teacher edits it and accepts it or sets it aside, exactly as a proposal from AI Teacher's own Start from your materials. Until then the programme holds only the setup's own holding rows, a draft unit for uploaded files and a first level where it had none, which no learner sees and which go if the teacher sets it aside. While one waits for the teacher no other can be sent, and a setup another teacher has open there is theirs to finish first. Kept whole or not at all: if any name is refused, nothing is recorded and the answer says which part and why. The answer gives review_url, the builder page. Contains and returns nothing about any learner.
search_help
ChatGPTSearches AI Teacher's own help articles for this person's portal and role (the same articles the in-product help assistant answers from), with the organisation's own words for learners, programmes and the rest. Returns up to five matching articles with a short excerpt, and the list of every article this person has. In the language asked for (ms, en or zh; by default the person's own). Contains nothing about any learner.
set_programme_language
ChatGPTSets the language a programme is taught in: ms (Bahasa Melayu), en (English) or zh (Chinese). It is the language AI question drafts, suggested lesson text and anything an assistant drafts for the programme are written in from now on, and the language its materials and titles are marked as being in. It is NOT the language anybody reads the screens in, and it translates nothing: questions already written keep their own language. A teacher sets it on a programme they build, a branch Admin in their own branch, a Super Admin anywhere in the organisation. This changes a setting at once and leaves no draft. An archived programme is not changed. The answer says whether anything changed and gives review_url, where the person can set it again.
withdraw_draft
ChatGPTTeacher only. Takes back ONE draft this person's own assistant left in AI Teacher that is still a draft, by its kind (question, lesson or outline) and id. The result is the draft taken back, and nothing is deleted: a question is turned down, as the teacher turns one down in the builder, and stays on record but out of the question bank, and can never be published; a lesson is retired, as the builder retires one, and the teacher can restore it from Retired in the builder at any time, since a written lesson has no file to delete; an outline leaves the builder, and the programme's setup is as it was before the outline was sent, with the teacher's own uploaded files where they were. Refused, with the reason and nothing changed, for a draft a person published or accepted, one already turned down, retired or set aside, one left by another person's assistant or written by a person, and one in a programme this person no longer builds. The answer gives review_url, where the teacher sees it. Contains and returns nothing about any learner.