Business Central connector for civil contractors
Microsoft Dynamics 365 Business Central is a common ERP in civil construction. The adapter reads and writes Business Central data via OData v4, normalising responses before they enter the workflow runtime.
Authentication: OAuth 2.0 via Entra ID service principal
System type: D365_BUSINESS_CENTRAL
Protocol: OData v4
API reference: Business Central OData API
See your Business Central data in Claude — book a 30-minute call.
Supported resources
Section titled “Supported resources”Resources are discovered dynamically from your Business Central environment’s OData schema. Common resources used in construction workflows:
| Resource | FETCH | PUSH | LOOKUP |
|---|---|---|---|
projects | ✓ Yes | — No | ✓ Yes |
vendors | ✓ Yes | ✓ Yes | ✓ Yes |
project_ledger_entries | ✓ Yes | ✓ Yes | — No |
purchase_orders | ✓ Yes | ✓ Yes | — No |
items | ✓ Yes | ✓ Yes | ✓ Yes |
customers | ✓ Yes | ✓ Yes | ✓ Yes |
general_ledger_entries | ✓ Yes | — No | — No |
Any entity exposed by your BC OData endpoint can be targeted in a workflow - the adapter probes the schema on first use.
Registers this connector fills
Business Central keeps 29 registers current in Civil Memory , with 25 mapped to source fields. Each name is the record you ask for, not the system it came from - ask for it in Studio or from your own AI client.
| Register | What it holds | Fields from Business Central |
|---|---|---|
Customer listcustomer_list | Customers registered in your ERP. | 25 of 27 |
Vendor listvendor_list | Vendors and suppliers registered in your ERP. | 20 of 24 |
Opportunitiesopportunities | Your commercial pipeline: won, lost and in-flight opportunities from CRM or ERP. | 15 of 20 |
Purchase linepurchase_line | Job-linked purchase order and invoice lines. | 14 of 23 |
Payable entrypayable_entry | Outstanding supplier bills and the aged payables balance. | 12 of 18 |
Receivable entryreceivable_entry | Outstanding customer invoices and the aged receivables balance. | 10 of 15 |
Financial period listfinancial_period_list | Accounting periods from your ERP. | 9 of 11 |
Job progressjob_progress | Job progress from your ERP: percent complete and percent invoiced. | 8 of 11 |
Opportunityopportunity | Changes to a pipeline opportunity over time. | 8 of 18 |
Purchase orderpurchase_order | Purchase orders raised against suppliers: committed spend not yet posted. | 7 of 15 |
Gl journal entrygl_journal_entry | General ledger journal entries: payroll, payables, receivables and manual postings. | 6 of 13 |
Cash positioncash_position | Current cash balances across bank accounts. | 5 of 12 |
Cost elementcost_element | Posted job cost lines from your ERP job ledger. | 5 of 17 |
Dimension set entrydimension_set_entry | The finance dimension values (such as equipment) attached to ERP postings. | 5 of 8 |
Fixed asset listfixed_asset_list | Fixed assets from your ERP, with cost, book value and depreciation. | 5 of 17 |
Chart of accountschart_of_accounts | Your general ledger accounts. | 4 of 9 |
Invoice issuedinvoice_issued | Invoices your organisation has issued to customers. | 4 of 25 |
Profit and lossprofit_and_loss | Profit and loss for a period. | 4 of 14 |
Project listproject_list | Active and completed projects from your operational and ERP systems. | 4 of 18 |
Bank accountsbank_accounts | Bank accounts registered in your ERP. | 3 of 9 |
Job budgetjob_budget | Job budgets per project, by expense category. | 3 of 7 |
Retention positionretention_position | Retention currently withheld on a job, and its status. | 3 of 8 |
Trial balancetrial_balance | Debit and credit balance per general ledger account. | 3 of 13 |
Progress claimprogress_claim | Progress claims issued per project: claimed, certified, paid and retention held. | 2 of 13 |
Work activity categorieswork_activity_categories | Job tasks normalised to a standard work activity taxonomy: piling, anchors and so on. | 1 of 7 |
Budget vs actualbudget_vs_actual | Budget against actual spend for the organisation, by expense category. | Fills all of 10 |
Entity link originentity_link_origin | Where a record's link to an opportunity or customer came from in your CRM or ERP. | Fills all of 13 |
Legal entitieslegal_entities | The operating companies in your group: the root every worker, project and cost code belongs to. | Fills all of 20 |
Project detailsproject_details | Details of active and completed projects from your operational and ERP systems. | Fills all of 11 |
The full field list, requiredness and an example record for any register are on its published contract. Where more than one system fills a register, the register is the same shape either way.
Integration model
Section titled “Integration model”Authentication uses OAuth 2.0 client credentials - a service principal registered in Azure Entra ID is granted application-level access to the Business Central environment. The adapter probes BC’s OData metadata endpoint to discover the available entities and their fields before execution.
Writes are protected by a Protocol Zero safety lock: any write targeting a PRODUCTION environment requires explicit confirmation in the workflow configuration. All write operations support simulation mode - intent is logged and validated without committing to BC.
Connection setup
Section titled “Connection setup”Required values:
- Tenant ID - your Azure Entra ID tenant
- Client ID - the Entra app registration client ID
- Client Secret - the app registration secret
- Environment URL - your BC environment URL (e.g.
https://api.businesscentral.dynamics.com/v2.0/{tenant}/production)
Example workflow
Section titled “Example workflow”FETCH → assignar.site_diaryTRANSFORM → extract_labour_entriesTRANSFORM → normalize_cost_categoriesPUSH → business_central.profit_and_lossSecurity
Section titled “Security”Access type: Read and governed write
Demiton reads project data, vendor records, job ledger entries, and purchase orders from Business Central. Writes occur only through governed workflows with explicit approval gates - Demiton never modifies BC data outside of a committed, audited workflow run. A Protocol Zero safety lock prevents any write to a PRODUCTION environment unless the workflow has been explicitly configured for production execution.
Permissions required: OAuth 2.0 service principal with OData access scoped to the specific BC entities your workflows use. Assign the minimum BC permission sets needed - typically Jobs, Purchase, and Vendor for common construction workflows.
What Demiton does not touch: BC user accounts and permission sets are owned by Business Central. Demiton reads BC permission sets to inform access resolution but never writes to them.
- Create a dedicated Entra app registration for Demiton - one per environment (UAT and Production)
- Restrict API scopes to required entities only
- Rotate client secrets on a 90-day schedule or less
- Always test workflows against a sandbox BC environment before enabling production execution
Next steps
Section titled “Next steps”- Connecting a System - step-by-step wizard for setting up the connector
- Assignar - the typical partner integration: site diaries and allocations cross-posted to BC
- MCP Server - query your BC financials through Claude once connected
- Connect your operation - talk to us about scoping a Connected deployment
Frequently asked questions
- What does the Demiton Business Central connector do?
- The Demiton Business Central connector reads and writes Microsoft Dynamics 365 Business Central data via OData v4. It retrieves project financials (per-project P&L, approved variations, GL entries), vendors, purchase orders, and items. Writes occur only through governed workflows with explicit approval gates. All operations are audited and traceable to a named user.
- What tier is required for the Business Central connector?
- The Business Central connector requires the Connected tier (AU$50,000/year). It is a private system connector - it requires your own Business Central environment and credentials. Public and Insights tier users access public data only.
- How does Demiton authenticate with Business Central?
- Demiton uses OAuth 2.0 client credentials via a dedicated Azure Entra ID service principal. You register an app in Entra ID, grant it OData access to your BC environment, and provide Demiton with the Tenant ID, Client ID, Client Secret, and your BC environment URL. Credentials are encrypted at rest and scoped to the minimum BC permission sets required.
- Can Demiton write to Business Central?
- Yes, with strict controls. Demiton supports governed writes to project ledger entries, vendors, purchase orders, items, and customers. All writes require a committed workflow run. A Protocol Zero safety lock prevents any write to a PRODUCTION environment unless the workflow is explicitly configured for production execution. Simulation mode runs the full intent without touching BC.
Talk to the team
Tell us what you run - your ERP, field, payroll and document systems - and we will show you the registers Demiton would keep current from them, on your data, in a 30-minute call.