An n8n integration node for Microsoft Dynamics 365 Business Central
npm install n8n-nodes-msdyn365bc| 🔌 | Complete API Integration Access to all Business Central OData endpoints |
| 📝 | CRUD Operations Create, Read, Update, and Delete records |
| 🔐 | Secure Authentication Support for OAuth 2.0 and API Keys |
| ⚡ | Batch Operations Efficient processing of multiple records |
| 🛡️ | Error Handling Robust error handling and retry logic |
| 🔍 | Metadata Support Automatic detection of available entities and fields |
bash
npm install n8n-nodes-msdyn365bc
`
$3
1. Open n8n
2. Navigate to Settings → Community Nodes
3. Click Install a community node
4. Enter n8n-nodes-msdyn365bc
5. Click Install
6. If you need help with that, check the Install community nodes
$3
`bash
git clone https://github.com/[your-username]/n8n-nodes-msdyn365bc.git
cd n8n-nodes-msdyn365bc
npm install
npm run build
npm link
`
---
⚙️ Configuration
$3
#### OAuth 2.0 (recommended)
| Parameter | Description | Example |
|-----------|-------------|---------|
| Client ID | Azure App Registration Client ID | 12345678-1234-1234-1234-123456789abc |
| Client Secret | Azure App Registration Secret | your-client-secret |
| Tenant ID | Azure AD Tenant ID | your-tenant-id |
| Environment URL | Business Central API URL | api.businesscentral.dynamics.com |
#### API Key (Alternative)
| Parameter | Description |
|-----------|-------------|
| Access Key | Business Central Web Service Access Key |
| Environment URL | Business Central Environment URL |
$3
`javascript
// Example Environment URL
https://api.businesscentral.dynamics.com/v2.0/[tenant-id]/[environment-name]/api/v2.0
`
---
📖 Usage
$3
#### 📊 Reading Records
`json
{
"operation": "get",
"resource": "customers",
"options": {
"filter": "Name eq 'Contoso Ltd.'",
"select": ["No", "Name", "Email"]
}
}
`
#### ➕ Creating New Records
`json
{
"operation": "create",
"resource": "items",
"body": {
"No": "ITEM001",
"Description": "New Item",
"UnitPrice": 99.99
}
}
`
#### ✏️ Updating Records
`json
{
"operation": "update",
"resource": "customers",
"recordId": "01445544-0000-0000-0000-000000000000",
"body": {
"Email": "newemail@example.com"
}
}
`
$3
Click here for a complete list
- 👥 customers - Manage customers
- 🏢 vendors - Manage vendors
- 📦 items - Manage items
- 🛒 salesOrders - Sales orders
- 📋 purchaseOrders - Purchase orders
- 📈 generalLedgerEntries - General ledger entries
- 📊 dimensions - Dimensions
- 🏛️ companies - Companies
- 💰 payments - Payments
- 📄 documents - Documents
- 🔄 workflows - Workflows
- and many more...
---
🛠️ Development
$3
- !Node.js Node.js 18+
- !npm npm 8+
- !n8n n8n (for local testing)
$3
`bash
Clone repository
git clone https://github.com/[your-username]/n8n-msdyn365bc.git
cd n8n-msdyn365bc
Install dependencies
npm install
`
$3
`bash
Build project
npm run build
Run tests
npm test
npm run test:coverage
Local development
npm run dev
In another terminal
n8n start
`
---
📋 API Reference
$3
Operation
Description
Parameters
Example
get
Retrieve records
filter, select, top, skip
filter: "Name eq 'Test'"
create
Create new record
body
body: {"Name": "Test"}
update
Update record
recordId, body
recordId: "123"
delete
Delete record
recordId
recordId: "123"
getById
Get single record by ID
recordId, select
recordId: "123"
$3
`javascript
// Equality
"Name eq 'Contoso'"
// Comparisons
"UnitPrice gt 100"
"UnitPrice lt 50"
"UnitPrice ge 100"
"UnitPrice le 50"
// Date/Time
"CreatedDate ge 2024-01-01T00:00:00Z"
// String functions
"contains(Name, 'Ltd')"
"startswith(Name, 'Con')"
"endswith(Name, 'Ltd')"
// Logical operators
"Name eq 'Contoso' and UnitPrice gt 100"
"Name eq 'Contoso' or Name eq 'Fabrikam'"
`
---
🤝 Contributing
We welcome contributions! Please read our Contributing Guidelines before creating a pull request.
$3
1. Fork the repository
2. Create branch (git checkout -b feature/new-feature)
3. Commit changes (git commit -am 'Add new feature')
4. Push to branch (git push origin feature/new-feature`)