Appearance
Agentic Apps
Agentic Apps are versioned, distributable packages of DMOps configuration. A single .dmopsapp file contains everything needed to deploy a complete AI crew to a tenant: agents, skills, integrations, datasets, and scheduled tasks.
Partners build apps once and install them across many client tenants with a single click. Tenants can upgrade, undeploy, or export apps at any time.
What an app contains
| Component | What gets deployed |
|---|---|
| Agents | Agent definitions with system prompts, roles, model overrides, and toolsets |
| Skills | Domain-specific Markdown skill files available to the app's agents |
| Integrations | Integration registrations (credentials are entered by the tenant admin after install) |
| Datasets | Relational dataset schemas and optional seed data |
| Scheduled Tasks | Recurring jobs (e.g. daily ERP sync, weekly report) |
Installing an app in a tenant
Go to Apps in the left sidebar.
Option 1 — Upload a .dmopsapp file
- Click Install App.
- Choose Upload file and select the
.dmopsapparchive. - DMOps.ai validates the package — you'll see a summary of what will be created and any warnings.
- Click Deploy to install.
Option 2 — Install from a GitHub repository
- Click Install App.
- Choose From GitHub URL.
- Enter the repository URL and optionally a branch, tag, or commit SHA (defaults to
main). - DMOps.ai fetches the repository, locates
app.yaml, and validates the package. - Click Deploy to install.
What happens during install
The deploy engine runs seven steps in dependency order:
| Step | What happens |
|---|---|
| 1. Integrations | Integration providers are registered (credentials not required at this stage) |
| 2. Datasets | Dataset schemas are created in topological order (respecting references) |
| 3. Skills | Skill files are written to the tenant's skill library |
| 4. Agents | Agent definitions are created with the app's system prompts and toolsets |
| 5. Scheduled tasks | Recurring jobs are created in paused state |
| 6. Seed data | Optional initial dataset rows are inserted |
| 7. Grants | Agents that need integration access are queued for admin approval |
After install, a per-step report is shown. Any pending integration access requests appear in the Grants tab of the app detail page.
Pending integration grants
When an app deploys agents that need access to integrations (e.g. your ERP or email system), those access requests are queued for admin approval — they are never automatically granted.
- Open the app in Apps → [App Name] → Grants.
- Review each pending grant: which agent is requesting access to which integration.
- Click Approve or Reject per grant.
Agents cannot use an integration's tools until their grant is approved. Approved grants can be revoked at any time from Settings → Org Chart → [Agent] → Tools.
TIP
You can bulk-approve all pending grants for an app from the Grants tab if you've reviewed the app manifest and trust the publisher.
Upgrading an app
To upgrade to a newer version of an app:
- Install the new
.dmopsapp(upload or GitHub) for the same app ID. - DMOps.ai detects the existing deployment and enters upgrade mode.
- The deploy report shows what's new, changed, or removed.
- Resources removed from the new version are detached (not deleted) — you choose whether to drop them in the Danger Zone.
- New grant requests for the upgraded version appear in the Grants tab.
Undeploying an app
Open the app detail → Danger Zone tab.
- Undeploy removes all agents, skills, and scheduled tasks created by this app. Integrations are detached but not deleted (in case they're shared with other apps).
- Drop datasets optionally deletes the app's datasets and all their data — this is irreversible.
WARNING
Undeploying cannot be undone. Any tasks currently running against this app's agents will complete, but no new tasks will be routed to them.
Exporting an existing app
To package an existing tenant configuration as a .dmopsapp file:
- Go to Apps → [App Name].
- Click Export App.
- Download the generated
.dmopsapparchive.
You can also assign existing resources (agents, skills, datasets) to an app before exporting using Assign Resources on the app detail page.
Building a custom app
Directory structure
my-app/
├── app.yaml # Manifest (required)
├── skills/
│ └── my-skill.md # Skill files
├── datasets/
│ └── customers.yaml # Dataset schema definitions
└── seed/
└── customers.csv # Optional seed data for datasetsThe app.yaml manifest
yaml
app:
id: my-field-sales-app
title: Field Sales Operations
version: 1.0.0
description: AI crew for field sales teams
author: Dynamics Mobile
min_acp_version: "1.0.0"
api_version: 1
integrations:
- id: dms-erp
provider: dms
title: Dynamics Mobile ERP
required: true
datasets:
- name: customers
file: datasets/customers.yaml
skills:
- name: visit-preparation
category: field-sales
file: skills/visit-prep.md
agents:
- name: field-sales-manager
title: Field Sales Manager
role: Field Sales Manager
system_prompt: |
You are the Field Sales Manager agent for this organisation...
toolsets:
- dms-erp-read
integration_grants:
- integration_id: dms-erp
allowed_tools:
- get_customers
- get_orders
scheduled_tasks:
- title: Daily visit brief
description: Prepare visit briefs for today's scheduled visits
cron: "0 7 * * 1-5"
timezone: Europe/London
agent: field-sales-managerPackaging
bash
zip -r my-field-sales-app-1.0.0.dmopsapp my-app/The archive can have a root directory matching the app ID — DMOps.ai strips it automatically during install.
Versioning
Use semantic versioning (1.0.0, 1.1.0, 2.0.0). Installing a higher version over an existing deployment triggers upgrade mode. Installing the same version is rejected (use a new version number for every release).
Available apps from Dynamics Mobile
| App | Vertical | Status |
|---|---|---|
| Field Sales Operations | Sales | Available |
| Warehouse & Inventory | Operations | Available |
| ERP Sync & Reconciliation | Finance / IT | Available |
| Delivery & Logistics | Logistics | Coming soon |
Contact your Dynamics Mobile account manager to obtain the latest .dmopsapp packages or GitHub repository access.