/catalogue/<id> on your coaching domain, and it can hold two things:
- Sub-directories — listed explicitly in the directory’s
tags_sub. - Coaching sessions — not listed explicitly. A session appears because its own
tagsmatch the directory’stags_interview_set_filter.
Coaching-platform feature. Directories only render on a coaching portal; they have no effect on the recruiting/interview portal.
The mental model
mojito_language_code); translations holds the others, each a page of its own. See Several languages in one directory.
How a session gets into a directory
A session is listed when all of these are true:
Two edge cases are worth knowing:
tags_interview_set_filter: [](empty array) matches every tagged session — a useful “everything” directory, and an easy accident.tags_interview_set_filter: nullmatches nothing. A brand-new directory created without the field lists no sessions until you set it.
Walkthrough
1
See what already exists
Start from the root and walk down, rather than guessing ids.
2
Create the directory
The
id is the URL segment and the value other directories reference in their tags_sub. Use lowercase letters, digits and single -/_ separators. A directory that will hold several languages is better named without a language suffix (sales-coaching, not sales-coaching-en): the same address serves every language. The API cannot change an id afterwards; a merchant can, in the admin catalogue editor (see Gotchas).parent_tag appends the new id to that directory’s tags_sub, so the page is reachable immediately. Omit it and the directory exists but is only reachable by direct link until you add it to a parent.The response returns catalogue_url — the live page — when your merchant has a coaching domain configured.3
Tag the sessions
A new session takes its tags on create. All three creation endpoints accept An existing session is re-tagged with
tags:update_interview. tags is replaced wholesale, so read the current value first and send the extended list:persona-create defaults to portal: "coaching", which is the variant that belongs in a catalogue. A persona created with portal: "interview" is stored as persona_interview and is never listed in the catalogue — it goes through the recruiting invitation flow instead. See Create an interview.4
Verify the mapping
Do not assume the tags matched. An empty
get_catalogue_directory returns the sessions the directory actually lists, applying exactly the rules the live portal applies:matched_sessions almost always means one of four things: the session is still draft, its visibility is merchant_invite/merchant_unlisted, its type is not coaching/persona, or its tags are missing one of the filter’s tags.5
Author a custom page (optional)
By default a directory renders as a plain grid: sub-directories, then sessions. Set Directives must sit alone on their own line — one on a line with other text renders as ordinary text:
content_md and your Markdown takes over the layout instead.content_md also renders chips, callouts, cards, columns and buttons on top of standard Markdown — see Format content with Markdown for the full vocabulary.Several languages in one directory
One directory can be offered in several languages. Each language is a version with its ownname, description, content_md, cover, sub-directories (tags_sub) and session filter (tags_interview_set_filter) — a page of its own, at the same address. The directory’s top-level fields are its default language (mojito_language_code); translations maps every other language to its version.
A learner sees the version in the language they picked in the catalogue’s language switch (remembered across pages), else their portal language; when the directory lacks it, English, then the default. The switch appears only on directories with more than one language.
A coaching session itself has one language (its
mojito_language_code). A “multilingual session” is therefore one session per language, gathered into one directory whose versions each list their own language’s sessions.1
Create one session per language, with a language-specific tag
The filter is tags-only, so give each language’s sessions their own tag, e.g.
sales-en and sales-sk, and set each session’s mojito_language_code.2
Create the directory with all its languages at once
Top-level fields are the default language; each
translations entry is another language’s version. name is required in every version; every other field is optional. A version without tags_interview_set_filter lists no sessions.3
Add, replace or remove a language later
translations on update_catalogue_directory is a patch per language — unlike content_md or tags_sub, languages you do not send are kept. An object replaces that language’s version; null removes it.get_catalogue_directory → translations.<lang> and send the edited version. translations: null removes every version but the default.4
Verify every language
get_catalogue_directory returns languages (default first) and translations. Its matched_sessions and sub_directories describe the default language; pass mojito_language_code to see them for another version:viewed_language in the response says which version the lists belong to. A language the directory does not have answers 422, so a missing translation cannot pass for a working one.mojito_language_code on update_catalogue_directory. If the directory already has that language, its version becomes the default and the old default stays as a version. If it does not, the default version is simply relabelled. Top-level fields sent in the same request always describe the default after the change.
Sub-directories and cards. A directory id is the same in every language, so tags_sub and [directory:<id>] cards name the same ids in each version; each card renders in the learner’s language.
Coaching plans
coach_plan marks a directory (or a session) as a stage of a guided plan — demo, screening, 2nd, 3rd, closing, job-specific, other. Learners then see their progress through those stages wherever a page carries the [plan-progress] directive. Leave it null for anything that is not part of a plan.
Gotchas
Next steps
Create an interview
Create the coaching sessions and role-play personas the catalogue lists.
Review results
Read transcripts and feedback once learners complete a session.