Agents and data sources
What Microsoft 365 agents can ask this platform, and where the answers come from.
Where data comes from
Each half of the platform connects separately
| Source | State | Detail |
|---|---|---|
| Microsoft 365 Graph, through GDAP | — | Checking… |
| DCS SQL Contracts, hardware, software, support | — | Checking… |
DCS_SOURCE: demo (everything generated), hybrid (Graph live, DCS side generated) or live. Currently …. Read models live in src/lib/sources/ — the SQL queries there are written against the columns on the DCS registers, so mapping them is a matter of confirming table names.Authentication and schedule
Who can call this, and how often it collects
| Setting | State | Detail |
|---|---|---|
| Authentication | — | Checking… |
| Scheduled collection | — | Checking… |
Connecting an agent
A declarative agent consumes the OpenAPI description as an API plugin
Point the agent builder at the description below. Every action is read-only — nothing an agent can call changes a record, so an agent cannot move a lead, edit a contract or dismiss a finding.
The platform runs on the DCS network, so an agent reaches it over the internal address. Agents authenticate with a bearer service token; people authenticate with Entra ID through the reverse proxy, which passes validated claims and maps the Entra group to a platform role. A service identity is always read-only.
Actions an agent can call
Each answers one question in a single call, with the arithmetic already done
| Question | Endpoint | Parameters | Returns |
|---|---|---|---|
| Brief me on this customer before my meeting Someone is about to walk into a review and needs the position in one place. | /api/agent/customer-brief |
| Agreement, contract value, renewals due, support performance, open findings, maintenance not billed and open pipeline. |
| What renewals are coming up? Weekly renewal planning, or an account manager asking what is on their desk. | /api/agent/renewals |
| Contract lines due inside the window, nearest first, with value, notice period and owner. |
| Where are we not billing maintenance? Looking for revenue already sitting in the estate rather than new business. | /api/agent/maintenance-gaps |
| Customers with in-service machines or software off contract, valued at standard rates. |
| How has support performed for this customer? Preparing or running a service review. | /api/agent/support-review |
| Call volume, response SLA against the 8-hour target, misses with hours over, and recurring problems by user and by device. |
| What in my pipeline needs chasing? Monday morning, or a manager checking a patch is being worked. | /api/agent/pipeline-chase |
| Open opportunities with no contact inside the window, with value, stage and last action. |
| What equipment does this customer have? A customer asks for an audit, or a refresh conversation needs evidence. | /api/agent/equipment |
| In-service machines with age, warranty, operating system and contract cover. |
Agents worth building
What each would do, and why it earns its place
| Agent | Someone asks | Actions used | Why |
|---|---|---|---|
| Account briefing | "Brief me on Armstrong-Priestley before my 2pm" | customerBrief | Replaces fifteen minutes of clicking round tabs before every meeting. |
| Renewals desk | "What renews in the next 60 days?" | renewalsDue, customerBrief | The renewal book is the largest predictable revenue the business has, and it is currently tracked by memory. |
| Maintenance gap finder | "Where are we not billing maintenance?" | maintenanceGaps, equipmentAudit | Revenue already sitting in the customer estate. No new business needed to win it. |
| Service review preparation | "Prepare the support review for Hartlaw" | supportReview, equipmentAudit | Turns the KPI workbook into an answer, on the DCS methodology rather than a generic one. |
| Pipeline nudge | "What have I let go quiet?" | pipelineChase | Internal only. Values must never leave the building, which is why this one is separated from the rest. |