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
| Capability | Notes |
|---|---|
| Query enterprise data | Natural-language queries against real ERP and custom table data |
| Search enterprise knowledge | Automatically retrieves from files marked as knowledge (Chapter 6) |
| Perform operations | Create documents, update statuses; generates a preview for confirmation first and only then applies the change |
| Conversation management | Multiple 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
- Check names and spelling — customer names, product codes, and document numbers must match what's recorded
- Give an explicit time range — "Q1 this year" or "this week" works better than "recently"
- 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.
- Click "new announcement"
- Fill in title, priority, and content
- 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.