# Set up a CompanyOS Product and its Routines by asking OS Manager

> Agno CompanyTools gains `create_company_product` and `create_company_routine`, so a person chatting with OS Manager or Product Manager can create a Product with website Sources and Routines under their own permissions.

- Published: 2026-10-19
- Author: Ashpreet Bedi
- Categories: Changelog
- Canonical: https://www.agno.com/blog/set-up-a-companyos-product-and-its-routines-by-asking-os-manager
- Markdown: https://www.agno.com/blog/set-up-a-companyos-product-and-its-routines-by-asking-os-manager.md

Agno's `CompanyTools` now carries `create_company_product` and `create_company_routine`, so a founder can type "set up a Product for our docs site with an intake Routine" to OS Manager and find the Product, its website Source and its Routine in the [CompanyOS](https://www.agno.com/blog/introducing-companyos) lists afterwards. Product Manager, an OS Manager member once `AgentOS(manager=OSManager())` is set, offers this step whenever a person starts a chat with no Product yet.

The tools take the same `Source` and `Routine` declarations as code and YAML. Every record belongs to the person in the chat, and website Sources keep the agent and run that added them. Leave out `cron_expr` and the Routine runs on demand. If a Source or Routine fails partway, the tool discards the half-built Product.

Product Manager needs a model, and no key was available, so this script called the tools directly with a run context for a person named Ana, as the release's `05_product_manager.py` cookbook does. The `from a Routine run` line is a call made under a Routine's authority. Real output:

```text
tools: ['create_company_product', 'create_company_routine']
missing schedules:write -> PermissionError Permission required: schedules:write
product: {'name': 'Documentation', 'user_id': 'ana'} routine_ids: 1
routine: {'name': 'd4f4939a-d21d-44b3-8770-ebf7cf21bcd5.weekly-summary', 'schedule_type': None, 'cron_expr': '0 16 * * 5', 'user_id': 'ana'}
from a Routine run -> PermissionError Company Products and Routines cannot be created from automated runs; Routines propose work
GET /company/products: ['Documentation']
GET /company/sources: [('website', 'https://docs.agno.com', 'chat')]
GET /company/routines: [('d4f4939a-d21d-44b3-8770-ebf7cf21bcd5.intake', 'on_demand'), ('d4f4939a-d21d-44b3-8770-ebf7cf21bcd5.weekly-summary', 'scheduled')]
```

The tool's own reply leaves `schedule_type` empty, and `GET /company/routines` fills it in. No HTTP route or database schema changed.

See the [cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/05_agent_os/30_company/05_company_manager.py), and learn more about [asking OS Manager for Company work](https://docs.agno.com/agent-platform/improve-agent#schedule-recurring-improvements) in the documentation.
