MSPTools n8n Node

AvantGuard MSPTools — device inventory, company management, billing, cost analysis, and cross-system integration intelligence for MSPs.
Table of Contents
Installation
Follow the n8n community node installation guide.
Or install directly via npm:
npm install @avantguardllc/n8n-nodes-msptools
Authentication
This node authenticates using an API Key.
| Setting |
Value |
| Type |
API Key |
| Base URL |
https://api.cloudhosted.us (editable in credentials) |
Tip: The Base URL can be changed in the credential settings if your instance uses a different host.
Resources & Operations
Base URL: https://api.cloudhosted.us
Companies
|
Endpoint |
Description |
🔵 GET |
/api/v1/companies |
List all companies |
🟢 POST |
/api/v1/companies |
Create a new company |
🔵 GET |
/api/v1/companies/{id} |
Get a single company |
🟡 PUT |
/api/v1/companies/{id} |
Update a company |
🟣 PATCH |
/api/v1/companies/{id} |
Partial update a company |
🔵 GET |
/api/v1/companies/by-link/{integrationSlug}/{externalId} |
Get company by integration link external ID |
🔵 GET |
/api/v1/companies/by-link/{integrationSlug} |
Search companies by integration link |
🟢 POST |
/api/v1/companies/{id}/favorite |
Pin company to favorites |
🔵 GET |
/api/v1/companies/favorites |
List all favorite companies |
🔵 GET |
/api/v1/companies/{id}/tags |
Get all tags for a company |
🟢 POST |
/api/v1/companies/{id}/tags |
Add tags to a company |
🟡 PUT |
/api/v1/companies/{id}/links/{linkId}/status |
Update integration link status |
🟢 POST |
/api/v1/companies/bulk/update |
Bulk update companies |
🟢 POST |
/api/v1/companies/bulk/favorite |
Bulk set favorite status |
🟢 POST |
/api/v1/companies/bulk/service-tier |
Bulk set service tier |
🟢 POST |
/api/v1/companies/bulk/merge |
Bulk merge companies |
🟢 POST |
/api/v1/companies/bulk/merge-candidates |
Get merge candidates |
Sites
|
Endpoint |
Description |
🔵 GET |
/api/v1/companies/{companyId}/sites |
List all sites for a company |
🟢 POST |
/api/v1/companies/{companyId}/sites |
Create a new site |
🔵 GET |
/api/v1/companies/{companyId}/sites/{siteId} |
Get a single site |
🟡 PUT |
/api/v1/companies/{companyId}/sites/{siteId} |
Update a site |
Subscriptions
|
Endpoint |
Description |
🔵 GET |
/api/v1/subscriptions |
List subscriptions by company or product |
🟢 POST |
/api/v1/subscriptions |
Create a new subscription |
🔵 GET |
/api/v1/subscriptions/{id} |
Get a single subscription |
🟡 PUT |
/api/v1/subscriptions/{id} |
Update a subscription |
🔵 GET |
/api/v1/subscriptions/{id}/history |
Get quantity change history for a subscription |
Integrations
|
Endpoint |
Description |
🔵 GET |
/api/v1/integrations |
List all integrations |
🟢 POST |
/api/v1/integrations |
Create a new integration |
🔵 GET |
/api/v1/integrations/{slug} |
Get a single integration |
🟡 PUT |
/api/v1/integrations/{slug} |
Update an integration |
🟢 POST |
/api/v1/integrations/{slug}/set-primary |
Set integration as primary |
🔵 GET |
/api/v1/integrations/{slug}/export |
Export integration configuration |
🟢 POST |
/api/v1/integrations/import |
Import integration from exported config |
🟢 POST |
/api/v1/integrations/{slug}/clone |
Clone an integration |
🟢 POST |
/api/v1/integrations/test-webhook |
Test a webhook URL |
🟢 POST |
/api/v1/integrations/{slug}/test-webhook |
Test webhook for a specific integration |
🟡 PUT |
/api/v1/integrations/{slug}/icon |
Update integration SVG icon |
🔴 DELETE |
/api/v1/integrations/{slug}/icon |
Remove integration SVG icon |
Links
|
Endpoint |
Description |
🔵 GET |
/api/v1/companies/{companyId}/links |
Get all links for a company |
🟢 POST |
/api/v1/companies/{companyId}/links |
Create a link to an integration |
🟡 PUT |
/api/v1/links/{linkId} |
Update a link |
🔵 GET |
/api/v1/links/{linkId}/history |
Get ID change history |
🔵 GET |
/api/v1/links |
Get all links across all companies |
Assets
|
Endpoint |
Description |
🔵 GET |
/api/v1/companies/{companyId}/assets |
List all assets for a company |
🔵 GET |
/api/v1/companies/{companyId}/assets/{integrationSlug} |
List assets for a company within a specific integration |
🔵 GET |
/api/v1/companies/{companyId}/assets/correlated |
Get correlated assets across integrations |
🔵 GET |
/api/v1/assets |
List all assets across all companies |
🔵 GET |
/api/v1/assets/lookup/{integrationSlug} |
Lookup an asset within an integration and show cross-integration matches |
🟢 POST |
/api/v1/assets/lookup/{integrationSlug} |
Lookup an asset with an attached JSON payload |
🔵 GET |
/api/v1/assets/{assetId} |
Get a single asset |
🟣 PATCH |
/api/v1/assets/{assetId} |
Partial update an asset |
🔵 GET |
/api/v1/assets/{assetId}/history |
Get asset presence history |
🔵 GET |
/api/v1/assets/consolidated |
Get consolidated cross-integration asset view |
🔵 GET |
/api/v1/assets/unmatched |
Get unmatched secondary integration assets |
🔵 GET |
/api/v1/assets/outbound-sync |
Get unmatched assets enriched for outbound sync |
🔵 GET |
/api/v1/assets/{assetId}/consolidated |
Get a consolidated asset with cross-integration matches |
🔵 GET |
/api/v1/assets/consolidated/lookup |
Look up a consolidated asset by integration and identifier |
🟢 POST |
/api/v1/assets/bulk/set-billable |
Bulk toggle billable status |
🟢 POST |
/api/v1/assets/bulk/update |
Bulk update assets |
🟢 POST |
/api/v1/assets/bulk/tag |
Bulk apply metadata tags to assets |
🟢 POST |
/api/v1/assets/bulk/force-consolidate |
Force-consolidate two or more assets into a single group |
🔵 GET |
/api/v1/integrations/{slug}/assets/summary |
Get asset summary for an integration |
Products
|
Endpoint |
Description |
🔵 GET |
/api/v1/products |
List all products |
🟢 POST |
/api/v1/products |
Create a new product |
🔵 GET |
/api/v1/products/{productId} |
Get a single product |
🟡 PUT |
/api/v1/products/{productId} |
Update a product |
🔵 GET |
/api/v1/products/{productId}/deployed-counts |
Get per-company deployed asset counts for a product |
🔵 GET |
/api/v1/integrations/{slug}/products |
List products for an integration |
🔵 GET |
/api/v1/products/{productId}/bill-variance |
Get bill variance history for a product |
Lookup
|
Endpoint |
Description |
🔵 GET |
/api/v1/lookup/{integrationSlug}/{externalId} |
Find company by external ID |
🟢 POST |
/api/v1/lookup/bulk |
Bulk lookup companies by external IDs |
Ingest
|
Endpoint |
Description |
🟢 POST |
/api/v1/ingest/{integrationSlug} |
Receive a batch of raw company records from n8n |
🟢 POST |
/api/v1/ingest/{integrationSlug}/sample |
Test field mappings on sample data without persisting |
🟢 POST |
/api/v1/ingest/{integrationSlug}/bills |
Ingest a vendor bill from n8n |
🟢 POST |
/api/v1/ingest/{integrationSlug}/sell-prices |
Bulk-ingest sell prices from a billing system via n8n |
Sync
|
Endpoint |
Description |
🟢 POST |
/api/v1/sync/{integrationSlug}/trigger |
Trigger a sync for an integration |
🔵 GET |
/api/v1/sync/{integrationSlug}/status |
Get sync status for an integration |
🔵 GET |
/api/v1/sync/health |
Get sync health overview for all integrations |
SyncSchedules
|
Endpoint |
Description |
🔵 GET |
/api/v1/sync-schedules |
List all sync schedules |
🟢 POST |
/api/v1/sync-schedules |
Create a recurring sync schedule |
🔵 GET |
/api/v1/sync-schedules/{id} |
Get a sync schedule by ID |
🟡 PUT |
/api/v1/sync-schedules/{id} |
Update a sync schedule |
🔴 DELETE |
/api/v1/sync-schedules/{id} |
Delete a sync schedule |
🟢 POST |
/api/v1/sync-schedules/{id}/toggle |
Enable or disable a sync schedule |
🟢 POST |
/api/v1/sync-schedules/{id}/trigger |
Manually trigger a sync schedule |
🔵 GET |
/api/v1/sync-schedules/{id}/logs |
Get execution logs for a sync schedule |
🔵 GET |
/api/v1/sync-schedules/{id}/summary |
Get execution summary for a sync schedule |
Matching
|
Endpoint |
Description |
🔵 GET |
/api/v1/matching/queue |
Get pending items in the matching queue |
🔵 GET |
/api/v1/matching/queue/summary |
Get matching queue summary statistics |
🟢 POST |
/api/v1/matching/find |
Find potential matches for an external company |
🟢 POST |
/api/v1/matching/batch |
Process a batch of companies through the matching engine |
🟢 POST |
/api/v1/matching/queue/{queueItemId}/resolve |
Resolve a matching queue item |
🔵 GET |
/api/v1/matching/score/{companyId} |
Get detailed score breakdown for a potential match |
Duplicates
|
Endpoint |
Description |
🔵 GET |
/api/v1/duplicates |
List pending duplicate candidates |
🔵 GET |
/api/v1/duplicates/summary |
Get duplicate detection summary statistics |
🟢 POST |
/api/v1/duplicates/scan |
Trigger an on-demand duplicate detection scan |
🟢 POST |
/api/v1/duplicates/{duplicateId}/dismiss |
Dismiss a duplicate candidate |
🟢 POST |
/api/v1/duplicates/{duplicateId}/merge |
Merge duplicate companies |
🟢 POST |
/api/v1/duplicates/check |
Check if two specific companies might be duplicates |
Billing
|
Endpoint |
Description |
🔵 GET |
/api/v1/billing |
List monthly bills |
🟢 POST |
/api/v1/billing |
Record a monthly bill |
🟢 POST |
/api/v1/billing/bulk |
Record multiple monthly bills |
🔵 GET |
/api/v1/billing/{billId} |
Get a single bill |
🟡 PUT |
/api/v1/billing/{billId} |
Update a monthly bill |
🟢 POST |
/api/v1/billing/{billId}/assets |
Link assets to a bill |
🟢 POST |
/api/v1/billing/{billId}/assets/auto |
Auto-link assets to a bill |
CostAnalysis
|
Endpoint |
Description |
🔵 GET |
/api/v1/cost/company/{uuid} |
Get cost summary for a company |
🔵 GET |
/api/v1/cost/product/{productId} |
Get cost breakdown for a product |
🔵 GET |
/api/v1/cost/integration/{slug} |
Get cost summary for an integration |
🔵 GET |
/api/v1/cost/overview |
Get global cost overview |
🔵 GET |
/api/v1/cost/compare |
Compare costs between two periods |
SellPrices
|
Endpoint |
Description |
🔵 GET |
/api/v1/sell-prices/product/{productId} |
Get sell prices for a product |
🔵 GET |
/api/v1/sell-prices/company/{uuid} |
Get sell prices for a company |
🟢 POST |
/api/v1/sell-prices |
Set a sell price |
🟡 PUT |
/api/v1/sell-prices/{sellPriceId} |
Update a sell price |
LicenseCompliance
|
Endpoint |
Description |
🔵 GET |
/api/v1/license-compliance/overview |
Get global license compliance overview |
🔵 GET |
/api/v1/license-compliance/product/{productId} |
Get compliance for a product |
🔵 GET |
/api/v1/license-compliance/company/{uuid} |
Get compliance for a company |
🟢 POST |
/api/v1/license-compliance/refresh |
Recalculate all compliance statuses |
🔵 GET |
/api/v1/license-compliance/entitlements |
List license entitlements |
🟢 POST |
/api/v1/license-compliance/entitlements |
Set a license entitlement |
🔵 GET |
/api/v1/license-compliance/entitlements/{entitlementId} |
Get a single license entitlement |
🟡 PUT |
/api/v1/license-compliance/entitlements/{entitlementId} |
Update a license entitlement |
OutboundBillingSync
|
Endpoint |
Description |
🔵 GET |
/api/v1/billing-sync/line-items |
Get billing sync line items |
🔵 GET |
/api/v1/billing-sync/line-items/product/{productId} |
Get billing sync line items for a product |
🔵 GET |
/api/v1/billing-sync/line-items/company/{uuid} |
Get billing sync line items for a company |
🔵 GET |
/api/v1/billing-sync/line-items/integration/{slug} |
Get billing sync line items for an integration |
🔵 GET |
/api/v1/billing-sync/summary |
Get billing sync summary |
VendorBills
|
Endpoint |
Description |
🔵 GET |
/api/v1/vendor-bills |
List vendor bills with optional filters |
🟢 POST |
/api/v1/vendor-bills |
Create a vendor bill manually |
🔵 GET |
/api/v1/vendor-bills/{id} |
Get a vendor bill with all line items |
🟡 PUT |
/api/v1/vendor-bills/{id} |
Update a vendor bill's status, notes, or bill number |
🟢 POST |
/api/v1/vendor-bills/{id}/line-items |
Add a line item to a vendor bill |
🔴 DELETE |
/api/v1/vendor-bills/{id}/line-items/{lineId} |
Remove a line item from a vendor bill |
🟣 PATCH |
/api/v1/vendor-bills/{id}/line-items/{lineId}/match |
Match an unmatched line item to a product |
🟢 POST |
/api/v1/vendor-bills/bulk-status |
Bulk update the status of multiple vendor bills |
🟢 POST |
/api/v1/vendor-bills/merge |
Merge multiple vendor bills into one (first ID is primary) |
🔵 GET |
/api/v1/vendor-bills/{id}/variance |
Get billed vs consumed variance report for a bill |
Contracts
|
Endpoint |
Description |
🔵 GET |
/api/v1/contracts |
List all contracts |
🟢 POST |
/api/v1/contracts |
Create a contract |
🔵 GET |
/api/v1/contracts/upcoming-renewals |
List upcoming contract renewals |
🔵 GET |
/api/v1/contracts/{contractId} |
Get a single contract |
🟡 PUT |
/api/v1/contracts/{contractId} |
Update a contract |
🟢 POST |
/api/v1/contracts/{contractId}/renew |
Renew a contract |
MarginAnalysis
|
Endpoint |
Description |
🔵 GET |
/api/v1/margin/overview |
Get global margin overview |
🔵 GET |
/api/v1/margin/company/{uuid} |
Get margin report for a company |
🔵 GET |
/api/v1/margin/product/{productId} |
Get margin breakdown for a product |
BillingForecast
|
Endpoint |
Description |
🔵 GET |
/api/v1/forecast/overview |
Get global forecast summary |
🔵 GET |
/api/v1/forecast/company/{uuid} |
Get forecast for a company |
🔵 GET |
/api/v1/forecast/product/{productId} |
Get forecast for a product |
🔵 GET |
/api/v1/forecast/integration/{slug} |
Get forecast for an integration |
🟢 POST |
/api/v1/forecast/refresh |
Refresh all forecasts |
CostAllocation
|
Endpoint |
Description |
🔵 GET |
/api/v1/cost-allocation/rules |
List all cost allocation rules |
🟢 POST |
/api/v1/cost-allocation/rules |
Create a cost allocation rule |
🔵 GET |
/api/v1/cost-allocation/rules/{ruleId} |
Get a cost allocation rule |
🟡 PUT |
/api/v1/cost-allocation/rules/{ruleId} |
Update a cost allocation rule |
🟢 POST |
/api/v1/cost-allocation/rules/{ruleId}/calculate |
Calculate allocation for a rule |
🔵 GET |
/api/v1/cost-allocation/results |
Get allocation results |
🔵 GET |
/api/v1/cost-allocation/chargeback/{period} |
Get chargeback report for a period |
Reconciliation
|
Endpoint |
Description |
🔵 GET |
/api/v1/reconciliation/company/{uuid} |
Get reconciliation report for a company |
🔵 GET |
/api/v1/reconciliation/integration/{slug} |
Get reconciliation report for an integration |
🔵 GET |
/api/v1/reconciliation/overview |
Get global reconciliation overview |
Webhooks
|
Endpoint |
Description |
🔵 GET |
/api/v1/webhooks |
List all webhook subscriptions |
🟢 POST |
/api/v1/webhooks |
Create a webhook subscription |
🔵 GET |
/api/v1/webhooks/{webhookId} |
Get a webhook subscription |
🟡 PUT |
/api/v1/webhooks/{webhookId} |
Update a webhook subscription |
🟢 POST |
/api/v1/webhooks/{webhookId}/test |
Test a webhook |
🔵 GET |
/api/v1/webhooks/{webhookId}/deliveries |
Get delivery logs for a webhook |
🔵 GET |
/api/v1/webhooks/event-types |
List supported webhook event types |
WebhookEvaluation
|
Endpoint |
Description |
🟢 POST |
/api/v1/webhooks/evaluate/all |
Run all webhook evaluations |
🟢 POST |
/api/v1/webhooks/evaluate/contracts |
Evaluate contract renewals |
🟢 POST |
/api/v1/webhooks/evaluate/utilisation |
Evaluate utilisation thresholds |
🟢 POST |
/api/v1/webhooks/evaluate/sync-stale |
Evaluate stale syncs |
🟢 POST |
/api/v1/webhooks/evaluate/compliance |
Evaluate license compliance |
🟢 POST |
/api/v1/webhooks/evaluate/reconciliation |
Evaluate reconciliation gaps |
SyncLogs
|
Endpoint |
Description |
🔵 GET |
/api/v1/sync-logs/integrations/{integrationId}/runs |
Get sync runs for an integration |
🔵 GET |
/api/v1/sync-logs/runs/{syncRunId} |
Get sync run details |
🔵 GET |
/api/v1/sync-logs/runs/{syncRunId}/logs |
Get logs for a sync run |
🔵 GET |
/api/v1/sync-logs/integrations/{integrationId}/history/{externalId} |
Get sync log history for an external ID |
Export
|
Endpoint |
Description |
🔵 GET |
/api/v1/export |
List recent export jobs |
🟢 POST |
/api/v1/export |
Create full tenant data export |
🔵 GET |
/api/v1/export/{exportId} |
Get export job details |
🔵 GET |
/api/v1/export/{exportId}/status |
Get export job status |
🔵 GET |
/api/v1/export/{exportId}/download |
Download completed export |
🟢 POST |
/api/v1/export/companies |
Export companies list |
🟢 POST |
/api/v1/export/assets |
Export assets list |
🟢 POST |
/api/v1/export/products |
Export products list |
🟢 POST |
/api/v1/export/billing |
Export billing records |
🟢 POST |
/api/v1/export/cost-analysis |
Export cost analysis report |
🟢 POST |
/api/v1/export/margin |
Export margin report |
🟢 POST |
/api/v1/export/company-mappings |
Export company-to-integration mappings |
🟢 POST |
/api/v1/export/forecast |
Export billing forecast |
🟢 POST |
/api/v1/export/audit-log |
Export audit log |
🟢 POST |
/api/v1/export/reconciliation |
Export reconciliation report |
🟢 POST |
/api/v1/export/chargeback |
Export chargeback report |
🟢 POST |
/api/v1/export/license-compliance |
Export license compliance report |
APIKeys
|
Endpoint |
Description |
🔵 GET |
/api/v1/api-keys |
List all API keys |
🟢 POST |
/api/v1/api-keys |
Create a new API key (full key returned once) |
ApiKeys
|
Endpoint |
Description |
🟣 PATCH |
/api/v1/api-keys/{id} |
Update an API key's name and scopes |
ActivityLogs
|
Endpoint |
Description |
🔵 GET |
/api/v1/activity-logs |
Query the activity log |
ScheduledReports
|
Endpoint |
Description |
🔵 GET |
/api/v1/reports |
List all scheduled report subscriptions |
🟢 POST |
/api/v1/reports |
Create a scheduled report subscription (type, cron, delivery URL, config) |
🔵 GET |
/api/v1/reports/{reportId} |
Get a single scheduled report subscription with last delivery info |
🟡 PUT |
/api/v1/reports/{reportId} |
Update report config / schedule / delivery URL |
🔴 DELETE |
/api/v1/reports/{reportId} |
Remove a report subscription |
🟢 POST |
/api/v1/reports/{reportId}/send-now |
Trigger an immediate delivery of the report |
🔵 GET |
/api/v1/reports/{reportId}/preview |
Preview the rendered report payload without sending |
DataRetention
|
Endpoint |
Description |
🔵 GET |
/api/v1/settings/retention |
Get current data retention policies |
🟢 POST |
/api/v1/settings/retention |
Create a new retention policy for a table |
🟡 PUT |
/api/v1/settings/retention |
Update retention policies (per-table retention days, enabled/disabled) |
🔵 GET |
/api/v1/settings/retention/{targetTable} |
Get a single retention policy by target table name |
🟡 PUT |
/api/v1/settings/retention/{policyId} |
Update a single retention policy |
Tags
|
Endpoint |
Description |
🔵 GET |
/api/v1/tags |
Get all unique tags with usage statistics |
🟢 POST |
/api/v1/tags |
Create a new tag definition |
🔵 GET |
/api/v1/tags/labels |
Get all unique tag labels |
🟡 PUT |
/api/v1/tags/{label} |
Rename a tag across all companies |
🔵 GET |
/api/v1/tags/{label}/companies |
Get all company IDs that have a specific tag |
🟢 POST |
/api/v1/tags/bulk/apply |
Apply tags to multiple companies |
Compatibility
- n8n version: 1.0+ (tested on 2.x)
- Node.js version: 18+
License
MIT