Working with an assistant

The server sends every connected assistant a short set of instructions, so Claude, ChatGPT and Gemini already know the rules below. This page explains them so you know what to expect.

Nothing reaches employees without a person

  • Created content is a draft. Handbooks, courses, chapters on new containers, announcements, events, calendar entries, posts and journeys are saved unpublished. Publish them in the CMS after review.
  • Walls are published only when you ask. create_wall saves a draft unless you ask the assistant to publish, and update_wall can publish or unpublish a wall. A published wall is visible to its groups at once.
  • Groups are the exception. create_group creates a live group at once, because groups carry no content. The assistant checks existing names first to avoid duplicates.
  • Changes to published content are live. Adding a chapter or quiz to a published handbook or course, appending to a published article, replacing a cover with set_cover, or assigning a course reaches employees immediately. The assistant is told to confirm with you first. add_chapter and compose_article take is_published: false to add the content as a draft instead; a quiz has no draft state and shows whenever its chapter does.
  • Assignments are dry runs. assign_course and assign_journey first return a plan of who would gain access. Nothing happens until the assistant calls again with confirm: true, which it should only do after you approve.

Most content in tool results carries a cms_url: created and changed items, the catalogues, search results and articles. Assistants are asked to include it whenever they mention or create something, so you can open the item in the CMS with one click. A few reads, such as a handbook's chapter list, posts and to-do lists, carry none; the Tools reference lists them.

Languages

Write tools accept an optional locale. It must be one of your company's active languages; the assistant can read them from the monotree://locales resource. When omitted, new content uses your default content language and additions use the language of the item they extend.

Visibility follows your role

Signed-in managers and group editors only see content targeted at their groups and statistics for the departments they manage. Admins and tokens see everything. AI chat insights are always company-wide, so only admins and global editors get them; they are never narrowed to a group, where a report could point at whoever asked, and they never say who asked. Personal data is kept minimal: survey results never include names, though they do carry recent free-text answers word for word, so grant read:surveys (or connect a manager) only where employees' written answers may reach the AI client; anonymous surveys respect the respondent threshold, and whistleblower forms are never returned. Employee lookups do return work contact details (email, and phone unless your company hides phone numbers); see Security and audit.

Good prompts

Content

  • "Summarise the food safety handbook in five bullet points."
  • "Search our handbooks for the return policy and quote the relevant chapter."
  • "Which handbooks have not been edited in over a year?"

People

  • "Who reports to Jane Doe?"
  • "List the managers of every department."
  • "Which employees have been invited but never signed up?"

Reports

  • "Compare onboarding completion per department."
  • "Which stores skipped their checklists this week?"
  • "Whose certificates expire in the next 60 days?"
  • "Summarise this week's store inspections and flag anything alarming."
  • "Review our content for gaps from what employees asked the AI chat, then draft the missing chapters."

Drafting

  • "Create a draft handbook called Bar Basics with three chapters based on this text: …"
  • "Add a five-question quiz to the chapter I just created."
  • "Draft an event for the staff party on 21 June at 18:00 for the Copenhagen department."
  • "Build a draft onboarding journey from the Welcome handbook and the Hygiene course."

When something is refused

The assistant gets a plain explanation it can relay: a missing scope, a role that may not target everyone, a language that is not active, or an id that does not exist. Unknown argument names are rejected with the list of valid ones, so a stale tool contract fails loudly instead of silently.