The AI Assistant and Internal Collaboration

This chapter covers two collaboration features: the AI assistant (Cowork) and internal announcements.


1. The AI assistant (Cowork)

Entry point: Dashboard → AI Agent → Cowork. Requires ai.access.

Cowork is the platform's built-in conversational assistant. What sets it apart from a generic chatbot is that it is connected to your enterprise data — it can query real business records, search enterprise documents, and perform operations after you confirm them.

What it can do

CapabilityNotes
Query enterprise dataNatural-language queries against real ERP and custom table data
Search enterprise knowledgeAutomatically retrieves from files marked as knowledge (Chapter 6)
Perform operationsCreate documents, update statuses; generates a preview for confirmation first and only then applies the change
Conversation managementMultiple independent threads, each retaining its own context

Prompting guidance

Give the assistant explicit context and answers get markedly more accurate:

  • State a role and a goal: "As a finance assistant, summarize…"
  • Give a concrete scope: explicit date ranges, customer names, statuses ("Q2 this year", "unshipped orders")
  • Specify the output format: table, list, or short summary

Permission boundaries

The assistant's reach is entirely bounded by your roles. It will not, and cannot, answer with data you have no right to see — asking for something beyond your permissions produces an explicit refusal rather than a silently empty result.

Knowledge retrieval obeys file-level access policies the same way (Chapter 6).

AI skills and MCP

Entry point: Dashboard → AI Agent → Cowork Settings

  • AI skills — recurring procedures distilled into reusable skills. Administrators can author them, and the assistant can also distill one after completing a complex flow. Skills can be restricted to specific roles; a skill you cannot see, you cannot use.
  • MCP servers — connect a Model Context Protocol server to give the assistant the tools that server registers. Also subject to role visibility.

Skills can additionally be distributed to external AI development tools, so the same procedure definition stays consistent across environments.

Current limitation

The AI assistant does not currently support operating your local desktop (terminal, mouse and keyboard, local files). Its reach is limited to platform data and authorized external tools.

When it can't find something

  1. Check names and spelling — customer names, product codes, and document numbers must match what's recorded
  2. Give an explicit time range — "Q1 this year" or "this week" works better than "recently"
  3. Check permissions — if your role lacks read access, the assistant declines by policy

2. Internal announcements

Entry point: Dashboard → Data Center → Announcements. Viewing requires announcements.read.

An information board for the organization.

Viewing

Announcements are listed newest first. Clicking a card opens the full content; closing it marks the announcement read.

  • Priority levels — normal, important, urgent, color-coded
  • Unread indicators — unread items are marked with a border and dot that clear once read

Publishing and management

Requires announcements.write or system.admin.

  1. Click "new announcement"
  2. Fill in title, priority, and content
  3. Publishing syncs it to all members immediately

Users with management permission can delete announcements (with a second confirmation; deletion is irreversible).


3. Notification center

The platform's unified event outlet — export completions, approval tasks, and system events all land here rather than being scattered across feature pages.


4. Using these from an application

Searching knowledge

A Custom App can search the Knowledge Center directly and generate responses with its own model. This is a path independent of Cowork — you can build your own Q&A feature without going through the assistant, and generation cost and model choice remain entirely yours.

def execute(ctx):
    hits = ctx.knowledge.search(ctx.params['question'], top_k=5)
    context = "\n\n".join(r['content'] for r in hits['results'])
    # Call your own model using a key from App Secrets
    ...

See Chapters 6 and 8.

The communication center

If what you need is a support or outbound-communication interface, ctx.messaging provides channel management and message read/write (Chapter 8). The platform deliberately ships no ready-made support console — the communication center is a backend engine, and the interface is up to your Custom App.

That is intentional: support interfaces vary enormously by industry, so rather than shipping one fixed interface nobody is fully happy with, the engine is exposed for you to assemble your own.