AgentDBDocs

App packages

An app package gives your workspace a ready-made data model in one call. You get objects, fields, links and saved views. Optional extras are automations and sample data.

Install one when you want to start quickly. For example, ask your AI: "Install the CRM and add my first customer."

#Available packages

TemplateWhat you get
agent_crmCompanies, contacts, leads, deals in a pipeline, notes, activities and follow-up tasks. The recommended CRM.
agent_todosTasks with subtasks, priorities, assignees, due dates, dependencies and repeats.
agent_kanbanKanban boards over the same tasks. Columns follow the task status.
agent_projectsProjects, milestones, deliverables, team members and progress over shared tasks.
supportA help desk: tickets, customers, response-time targets and escalations.
recruitVacancies, candidates, applications, interviews and evaluations.
propertyProperties, owners, tenants, listings, leases and maintenance requests.
inventoryProducts, variants, locations, suppliers, a stock ledger and purchase orders.
assetsAn equipment register with assignments, warranties, repairs and maintenance plans.
cmsWebsite pages and posts with Markdown, SEO fields and translations.
formsAn inquiry object for public website forms, with a triage status.
contentCampaigns, posts per channel and performance numbers.

crm is an older, smaller CRM. Use agent_crm for new workspaces.

The app package reference lists every object, field and view.

All task-based packages share one task object. So a CRM follow-up is also a to-do, and a card on the Kanban board.

#See what an install will do

Start with a dry run. It shows every object, field, link and view the install would create. Nothing is written.

MCPChecked
{"tool": "packages_install", "arguments": {"template": "agent_crm", "dry_run": true}}

The answer has a summary with counts, and an actions list. Each action says create, unchanged, conflict or skipped. A conflict means your workspace already has that item in a different form. AgentDB then keeps your version.

#Install a package

MCPChecked
{"tool": "packages_install", "arguments": {"template": "agent_crm"}}

What an install does, and does not do:

  • Additive. It only adds objects, fields, links and views. It never removes or retypes a field.
  • Safe to repeat. A second install of the same version changes nothing.
  • Your data stays. An install never touches your records.
  • Upgrades add new items and keep fields you changed. Going back to an older version is refused.
  • Uninstall removes the views and automations. Your objects, fields and records stay.

Options:

  • automations: true also adds the package's flows, jobs and approval policies. Only owners and admins can add them.
  • sample_data: true adds a set of made-up demo records, once.
  • version installs a specific version.

packages_list shows the available templates and what is installed.

MCPChecked
{"tool": "packages_list", "arguments": {}}

#Example: a small CRM

After installing agent_crm, add a company and a contact. The contact links to the company by its unique name, so you do not need the record id.

MCPChecked
{"tool": "records_create", "arguments": {"object": "company", "data": {"name": "Example Ltd", "domain": "example.com"}}}
MCPChecked
{"tool": "records_create", "arguments": {"object": "contact", "data": {"first_name": "Ada", "last_name": "Lovelace", "email": "ada@example.com"}, "links": [{"relationship": "works_at", "target_key": {"name": "Example Ltd"}}]}}

Now add a deal and link it to the company. Money fields hold an amount and a currency. A deal moves through fixed stages, from lead to won or lost. A new deal starts at lead.

MCPChecked
{"tool": "records_create", "arguments": {"object": "deal", "data": {"title": "Example Ltd renewal", "amount": {"amount": "12000.00", "currency": "EUR"}, "stage": "lead"}}}
MCPChecked
{"tool": "relationships_link", "arguments": {"relationship": "for_company", "source_record_id": "$DEAL_ID", "target_record_id": "$COMPANY_ID"}}

Find every contact who works at Example Ltd:

MCPChecked
{"tool": "records_query", "arguments": {"object": "contact", "where": {"all": [{"relationship": "works_at", "where": {"all": [{"field": "name", "op": "eq", "value": "Example Ltd"}]}}]}}}

The CRM also has saved views. views_render with agent_crm_pipeline shows the deals by stage.

MCPChecked
{"tool": "views_render", "arguments": {"view": "agent_crm_pipeline"}}

#Example: a to-do list with a board

Install the to-do app and the Kanban board. Both use the same task object.

MCPChecked
{"tool": "packages_install", "arguments": {"template": "agent_todos"}}
MCPChecked
{"tool": "packages_install", "arguments": {"template": "agent_kanban"}}
MCPChecked
{"tool": "records_create", "arguments": {"object": "task", "data": {"title": "Call Example Ltd about the renewal", "priority": "high", "due_date": "2027-01-15"}}}

The task now shows in the to-do views and as a card on the board. AgentTodos makes sure a task with open dependencies cannot be marked done.

#Example: import your contacts into the CRM

You already have a spreadsheet of contacts. After installing agent_crm:

  1. Import the companies, matching on the unique name.
  2. Import the contacts, matching on the unique email.
  3. Link each contact to its company with the works_at relationship.

imports_run does step 3 in the same call, with a links entry for the company column. See Files and imports.

#Try it with sample data

sample_data: true adds made-up records, so you can explore before you add your own. For the CRM that is a few agencies, contacts, leads, deals in every stage, activities and notes. All names are invented.

Tip: install sample data in a separate test workspace, so it never mixes with real records.