@avantguardllc/n8n-nodes-msptools
v0.1.2
Published
n8n node for MSP Tools
Maintainers
Readme
MSP Tools n8n Node
A unified company-mapping platform for MSPs
Table of Contents
Installation
Follow the n8n community node installation guide.
Or install directly via npm:
npm install @avantguardllc/n8n-nodes-msptoolsAuthentication
This node authenticates using an API Key.
| Setting | Value |
|---------|-------|
| Type | API Key |
| Sent in | header |
| Header / Query name | X-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
Assets
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/assets/bulk/tag | Bulk apply metadata tags to assets |
| 🟢 POST | /api/v1/assets/bulk/remove | Bulk remove assets |
| 🟢 POST | /api/v1/assets/bulk/set-billable | Bulk toggle billable status |
| 🟢 POST | /api/v1/assets/bulk/update | Bulk update assets |
| 🔵 GET | /api/v1/assets/{assetId}/consolidated | Get a consolidated asset with cross-integration matches |
| 🔵 GET | /api/v1/assets/{assetId} | Get a single asset |
| 🔵 GET | /api/v1/assets/{assetId}/history | Get asset presence history |
| 🔵 GET | /api/v1/integrations/{slug}/assets/summary | Get asset summary for an integration |
| 🔵 GET | /api/v1/assets/consolidated | Get consolidated cross-integration asset view |
| 🔵 GET | /api/v1/companies/{companyId}/assets/correlated | Get correlated assets across integrations |
| 🔵 GET | /api/v1/assets/lookup/{integrationSlug} | Lookup an asset within an integration and show cross-integration matches |
| 🔵 GET | /api/v1/assets/outbound-sync | Get unmatched assets enriched for outbound sync |
| 🔵 GET | /api/v1/assets/unmatched | Get unmatched secondary integration assets |
| 🔵 GET | /api/v1/assets | List all assets across all companies |
| 🔵 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/assets/consolidated/lookup | Look up a consolidated asset by integration and identifier |
| 🟢 POST | /api/v1/assets/lookup/{integrationSlug} | Lookup an asset with an attached JSON payload |
| 🟣 PATCH | /api/v1/assets/{assetId} | Partial update an asset |
Billing
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/billing/{billId}/assets/auto | Auto-link assets to a bill |
| 🔴 DELETE | /api/v1/billing/{billId} | Delete a monthly bill |
| 🔵 GET | /api/v1/billing/{billId} | Get a single bill |
| 🟢 POST | /api/v1/billing/{billId}/assets | Link assets to a bill |
| 🔵 GET | /api/v1/billing | List monthly bills |
| 🟢 POST | /api/v1/billing | Record a monthly bill |
| 🟢 POST | /api/v1/billing/bulk | Record multiple monthly bills |
| 🔴 DELETE | /api/v1/billing/{billId}/assets/{assetId} | Unlink an asset from a bill |
| 🟡 PUT | /api/v1/billing/{billId} | Update a monthly bill |
BillingForecast
| | Endpoint | Description |
|---|----------|-------------|
| 🔵 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 |
| 🔵 GET | /api/v1/forecast/overview | Get global forecast summary |
| 🟢 POST | /api/v1/forecast/refresh | Refresh all forecasts |
Companies
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/companies/{id}/tags | Add tags to a company |
| 🟢 POST | /api/v1/companies/bulk/delete | Bulk delete companies |
| 🟢 POST | /api/v1/companies/bulk/merge | Bulk merge companies |
| 🟢 POST | /api/v1/companies/bulk/favourite | Bulk set favourite status |
| 🟢 POST | /api/v1/companies/bulk/service-tier | Bulk set service tier |
| 🟢 POST | /api/v1/companies/bulk/update | Bulk update companies |
| 🟢 POST | /api/v1/companies | Create a new company |
| 🔴 DELETE | /api/v1/companies/{id} | Delete a company |
| 🔵 GET | /api/v1/companies/{id} | Get a single company |
| 🔵 GET | /api/v1/companies/{id}/tags | Get all tags for a company |
| 🔵 GET | /api/v1/companies/by-link/{integrationSlug}/{externalId} | Get company by integration link external ID |
| 🟢 POST | /api/v1/companies/bulk/merge-candidates | Get merge candidates |
| 🔵 GET | /api/v1/companies | List all companies |
| 🔵 GET | /api/v1/companies/favourites | List all favourite companies |
| 🟣 PATCH | /api/v1/companies/{id} | Partial update a company |
| 🟢 POST | /api/v1/companies/{id}/favourite | Pin company to favourites |
| 🔴 DELETE | /api/v1/companies/{id}/tags/{tagId} | Remove a tag from a company |
| 🔵 GET | /api/v1/companies/by-link/{integrationSlug} | Search companies by integration link |
| 🔴 DELETE | /api/v1/companies/{id}/favourite | Unpin company from favourites |
| 🟡 PUT | /api/v1/companies/{id} | Update a company |
| 🟡 PUT | /api/v1/companies/{id}/links/{linkId}/status | Update integration link status |
Contracts
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/contracts | Create a contract |
| 🔴 DELETE | /api/v1/contracts/{contractId} | Delete a contract |
| 🔵 GET | /api/v1/contracts/{contractId} | Get a single contract |
| 🔵 GET | /api/v1/contracts | List all contracts |
| 🔵 GET | /api/v1/contracts/upcoming-renewals | List upcoming contract renewals |
| 🟢 POST | /api/v1/contracts/{contractId}/renew | Renew a contract |
| 🟡 PUT | /api/v1/contracts/{contractId} | Update a contract |
CostAllocation
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/cost-allocation/rules/{ruleId}/calculate | Calculate allocation for a rule |
| 🟢 POST | /api/v1/cost-allocation/rules | Create a cost allocation rule |
| 🔴 DELETE | /api/v1/cost-allocation/rules/{ruleId} | Delete a cost allocation rule |
| 🔵 GET | /api/v1/cost-allocation/rules/{ruleId} | Get a cost allocation rule |
| 🔵 GET | /api/v1/cost-allocation/results | Get allocation results |
| 🔵 GET | /api/v1/cost-allocation/chargeback/{period} | Get chargeback report for a period |
| 🔵 GET | /api/v1/cost-allocation/rules | List all cost allocation rules |
| 🟡 PUT | /api/v1/cost-allocation/rules/{ruleId} | Update a cost allocation rule |
CostAnalysis
| | Endpoint | Description |
|---|----------|-------------|
| 🔵 GET | /api/v1/cost/compare | Compare costs between two periods |
| 🔵 GET | /api/v1/cost/product/{productId} | Get cost breakdown for a product |
| 🔵 GET | /api/v1/cost/company/{uuid} | Get cost summary for a company |
| 🔵 GET | /api/v1/cost/integration/{slug} | Get cost summary for an integration |
| 🔵 GET | /api/v1/cost/overview | Get global cost overview |
DataRetention
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/settings/retention | Create a new retention policy for a table |
| 🟢 POST | /api/v1/settings/retention/{targetTable}/cleanup | Run cleanup for a specific table based on its retention policy |
| 🔴 DELETE | /api/v1/settings/retention/{policyId} | Delete a retention policy |
| 🔵 GET | /api/v1/settings/retention/{targetTable} | Get a single retention policy by target table name |
| 🔵 GET | /api/v1/settings/retention | Get current data retention policies |
| 🟢 POST | /api/v1/settings/retention/cleanup | Run cleanup for all enabled retention policies |
| 🟡 PUT | /api/v1/settings/retention/{policyId} | Update a single retention policy |
| 🟡 PUT | /api/v1/settings/retention | Update retention policies (per-table retention days, enabled/disabled) |
Duplicates
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/duplicates/check | Check if two specific companies might be duplicates |
| 🟢 POST | /api/v1/duplicates/{duplicateId}/dismiss | Dismiss a duplicate candidate |
| 🔵 GET | /api/v1/duplicates/summary | Get duplicate detection summary statistics |
| 🔵 GET | /api/v1/duplicates | List pending duplicate candidates |
| 🟢 POST | /api/v1/duplicates/{duplicateId}/merge | Merge duplicate companies |
| 🟢 POST | /api/v1/duplicates/scan | Trigger an on-demand duplicate detection scan |
Export
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/export | Create full tenant data export |
| 🔵 GET | /api/v1/export/{exportId}/download | Download completed export |
| 🟢 POST | /api/v1/export/assets | Export assets list |
| 🟢 POST | /api/v1/export/audit-log | Export audit log |
| 🟢 POST | /api/v1/export/forecast | Export billing forecast |
| 🟢 POST | /api/v1/export/billing | Export billing records |
| 🟢 POST | /api/v1/export/chargeback | Export chargeback report |
| 🟢 POST | /api/v1/export/companies | Export companies list |
| 🟢 POST | /api/v1/export/company-mappings | Export company-to-integration mappings |
| 🟢 POST | /api/v1/export/cost-analysis | Export cost analysis report |
| 🟢 POST | /api/v1/export/license-compliance | Export license compliance report |
| 🟢 POST | /api/v1/export/margin | Export margin report |
| 🟢 POST | /api/v1/export/products | Export products list |
| 🟢 POST | /api/v1/export/reconciliation | Export reconciliation report |
| 🔵 GET | /api/v1/export/{exportId} | Get export job details |
| 🔵 GET | /api/v1/export/{exportId}/status | Get export job status |
| 🔵 GET | /api/v1/export | List recent export jobs |
Health
| | Endpoint | Description |
|---|----------|-------------|
| 🔵 GET | /api/v1/health/info | Get API health information |
Ingest
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/ingest/{integrationSlug}/sell-prices | Bulk-ingest sell prices from a billing system via n8n |
| 🟢 POST | /api/v1/ingest/{integrationSlug}/bills | Ingest a vendor bill from n8n |
| 🟢 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 |
Integrations
| | Endpoint | Description |
|---|----------|-------------|
| 🔴 DELETE | /api/v1/integrations/{slug}/asset-presence-history | Clear all asset presence history for an integration |
| 🔴 DELETE | /api/v1/integrations/{slug}/assets | Clear all assets for an integration |
| 🔴 DELETE | /api/v1/integrations/{slug}/company-links | Clear all company links for an integration |
| 🔴 DELETE | /api/v1/integrations/{slug}/all | Clear all data for an integration |
| 🔴 DELETE | /api/v1/integrations/{slug}/subscriptions | Clear all subscriptions for an integration |
| 🔴 DELETE | /api/v1/integrations/{slug}/sync-logs | Clear all sync logs for an integration |
| 🟢 POST | /api/v1/integrations/{slug}/clone | Clone an integration |
| 🟢 POST | /api/v1/integrations | Create a new integration |
| 🔴 DELETE | /api/v1/integrations/{slug} | Delete an integration |
| 🔵 GET | /api/v1/integrations/{slug}/export | Export integration configuration |
| 🔵 GET | /api/v1/integrations/{slug} | Get a single integration |
| 🟢 POST | /api/v1/integrations/import | Import integration from exported config |
| 🔵 GET | /api/v1/integrations | List all integrations |
| 🔴 DELETE | /api/v1/integrations/{slug}/icon | Remove integration SVG icon |
| 🟢 POST | /api/v1/integrations/{slug}/set-primary | Set integration as primary |
| 🟢 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} | Update an integration |
| 🟡 PUT | /api/v1/integrations/{slug}/icon | Update integration SVG icon |
LicenseCompliance
| | Endpoint | Description |
|---|----------|-------------|
| 🔴 DELETE | /api/v1/license-compliance/entitlements/{entitlementId} | Delete a license entitlement |
| 🔵 GET | /api/v1/license-compliance/entitlements/{entitlementId} | Get a single license entitlement |
| 🔵 GET | /api/v1/license-compliance/company/{uuid} | Get compliance for a company |
| 🔵 GET | /api/v1/license-compliance/product/{productId} | Get compliance for a product |
| 🔵 GET | /api/v1/license-compliance/overview | Get global license compliance overview |
| 🔵 GET | /api/v1/license-compliance/entitlements | List license entitlements |
| 🟢 POST | /api/v1/license-compliance/refresh | Recalculate all compliance statuses |
| 🟢 POST | /api/v1/license-compliance/entitlements | Set a license entitlement |
| 🟡 PUT | /api/v1/license-compliance/entitlements/{entitlementId} | Update a license entitlement |
Links
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/companies/{companyId}/links | Create a link to an integration |
| 🔵 GET | /api/v1/companies/{companyId}/links | Get all links for a company |
| 🔵 GET | /api/v1/links/{linkId}/history | Get ID change history |
| 🔴 DELETE | /api/v1/links/{linkId} | Remove a link |
| 🟡 PUT | /api/v1/links/{linkId} | Update a link |
Lookup
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/lookup/bulk | Bulk lookup companies by external IDs |
| 🔵 GET | /api/v1/lookup/{integrationSlug}/{externalId} | Find company by external ID |
MarginAnalysis
| | Endpoint | Description |
|---|----------|-------------|
| 🔵 GET | /api/v1/margin/overview | Get global margin overview |
| 🔵 GET | /api/v1/margin/product/{productId} | Get margin breakdown for a product |
| 🔵 GET | /api/v1/margin/company/{uuid} | Get margin report for a company |
Matching
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/matching/find | Find potential matches for an external company |
| 🔵 GET | /api/v1/matching/score/{companyId} | Get detailed score breakdown for a potential match |
| 🔵 GET | /api/v1/matching/queue/summary | Get matching queue summary statistics |
| 🔵 GET | /api/v1/matching/queue | Get pending items in the matching queue |
| 🟢 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 |
OutboundBillingSync
| | Endpoint | Description |
|---|----------|-------------|
| 🔵 GET | /api/v1/billing-sync/line-items | Get billing sync line items |
| 🔵 GET | /api/v1/billing-sync/line-items/company/{uuid} | Get billing sync line items for a company |
| 🔵 GET | /api/v1/billing-sync/line-items/product/{productId} | Get billing sync line items for a product |
| 🔵 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 |
Products
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/products | Create a new product |
| 🔴 DELETE | /api/v1/products/{productId} | Delete a product |
| 🔵 GET | /api/v1/products/{productId} | Get a single product |
| 🔵 GET | /api/v1/products/{productId}/bill-variance | Get bill variance history for a product |
| 🔵 GET | /api/v1/products | List all products |
| 🔵 GET | /api/v1/integrations/{slug}/products | List products for an integration |
| 🟡 PUT | /api/v1/products/{productId} | Update a product |
Reconciliation
| | Endpoint | Description |
|---|----------|-------------|
| 🔵 GET | /api/v1/reconciliation/overview | Get global reconciliation overview |
| 🔵 GET | /api/v1/reconciliation/company/{uuid} | Get reconciliation report for a company |
| 🔵 GET | /api/v1/reconciliation/integration/{slug} | Get reconciliation report for an integration |
ScheduledReports
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 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 |
| 🔵 GET | /api/v1/reports | List all scheduled report subscriptions |
| 🔵 GET | /api/v1/reports/{reportId}/preview | Preview the rendered report payload without sending |
| 🔴 DELETE | /api/v1/reports/{reportId} | Remove a report subscription |
| 🟢 POST | /api/v1/reports/{reportId}/send-now | Trigger an immediate delivery of the report |
| 🟡 PUT | /api/v1/reports/{reportId} | Update report config / schedule / delivery URL |
SellPrices
| | Endpoint | Description |
|---|----------|-------------|
| 🔴 DELETE | /api/v1/sell-prices/{sellPriceId} | Delete a sell price |
| 🔵 GET | /api/v1/sell-prices/company/{uuid} | Get sell prices for a company |
| 🔵 GET | /api/v1/sell-prices/product/{productId} | Get sell prices for a product |
| 🟢 POST | /api/v1/sell-prices | Set a sell price |
| 🟡 PUT | /api/v1/sell-prices/{sellPriceId} | Update a sell price |
Sites
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/companies/{companyId}/sites | Create a new site |
| 🔴 DELETE | /api/v1/companies/{companyId}/sites/{siteId} | Delete a site |
| 🔵 GET | /api/v1/companies/{companyId}/sites/{siteId} | Get a single site |
| 🔵 GET | /api/v1/companies/{companyId}/sites | List all sites for a company |
| 🟡 PUT | /api/v1/companies/{companyId}/sites/{siteId} | Update a site |
Subscriptions
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/subscriptions | Create a new subscription |
| 🔴 DELETE | /api/v1/subscriptions/{id} | Delete a subscription |
| 🔴 DELETE | /api/v1/subscriptions/product/{productId} | Delete all subscriptions for a product |
| 🔵 GET | /api/v1/subscriptions/{id} | Get a single subscription |
| 🔵 GET | /api/v1/subscriptions/{id}/history | Get quantity change history for a subscription |
| 🔵 GET | /api/v1/subscriptions | List subscriptions by company or product |
| 🟡 PUT | /api/v1/subscriptions/{id} | Update a subscription |
Sync
| | Endpoint | Description |
|---|----------|-------------|
| 🔵 GET | /api/v1/sync/health | Get sync health overview for all integrations |
| 🔵 GET | /api/v1/sync/{integrationSlug}/status | Get sync status for an integration |
| 🟢 POST | /api/v1/sync/{integrationSlug}/trigger | Trigger a sync for an integration |
SyncLogs
| | Endpoint | Description |
|---|----------|-------------|
| 🔵 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 |
| 🔵 GET | /api/v1/sync-logs/runs/{syncRunId} | Get sync run details |
| 🔵 GET | /api/v1/sync-logs/integrations/{integrationId}/runs | Get sync runs for an integration |
SyncSchedules
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/sync-schedules | Create a recurring 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 |
| 🔵 GET | /api/v1/sync-schedules/{id} | Get a sync schedule by ID |
| 🔵 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 |
| 🔵 GET | /api/v1/sync-schedules | List all sync schedules |
| 🟢 POST | /api/v1/sync-schedules/{id}/trigger | Manually trigger a sync schedule |
| 🟡 PUT | /api/v1/sync-schedules/{id} | Update a sync schedule |
Tags
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/tags/bulk/apply | Apply tags to multiple companies |
| 🟢 POST | /api/v1/tags | Create a new tag definition |
| 🔴 DELETE | /api/v1/tags/{label} | Delete a tag from all companies |
| 🔵 GET | /api/v1/tags/{label}/companies | Get all company IDs that have a specific tag |
| 🔵 GET | /api/v1/tags/labels | Get all unique tag labels |
| 🔵 GET | /api/v1/tags | Get all unique tags with usage statistics |
| 🟢 POST | /api/v1/tags/bulk/remove | Remove tags from multiple companies |
| 🟡 PUT | /api/v1/tags/{label} | Rename a tag across all companies |
VendorBills
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/vendor-bills/{id}/line-items | Add a line item to a vendor bill |
| 🟢 POST | /api/v1/vendor-bills | Create a vendor bill manually |
| 🔴 DELETE | /api/v1/vendor-bills/{id} | Delete a vendor bill |
| 🔵 GET | /api/v1/vendor-bills/{id} | Get a vendor bill with all line items |
| 🔵 GET | /api/v1/vendor-bills/{id}/variance | Get billed vs consumed variance report for a bill |
| 🔵 GET | /api/v1/vendor-bills | List vendor bills with optional filters |
| 🔴 DELETE | /api/v1/vendor-bills/{id}/line-items/{lineId} | Remove a line item from a vendor bill |
| 🟡 PUT | /api/v1/vendor-bills/{id} | Update a vendor bill's status, notes, or bill number |
WebhookEvaluation
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/webhooks/evaluate/contracts | Evaluate contract renewals |
| 🟢 POST | /api/v1/webhooks/evaluate/compliance | Evaluate license compliance |
| 🟢 POST | /api/v1/webhooks/evaluate/reconciliation | Evaluate reconciliation gaps |
| 🟢 POST | /api/v1/webhooks/evaluate/sync-stale | Evaluate stale syncs |
| 🟢 POST | /api/v1/webhooks/evaluate/utilisation | Evaluate utilisation thresholds |
| 🟢 POST | /api/v1/webhooks/evaluate/all | Run all webhook evaluations |
Webhooks
| | Endpoint | Description |
|---|----------|-------------|
| 🟢 POST | /api/v1/webhooks | Create a webhook subscription |
| 🔴 DELETE | /api/v1/webhooks/{webhookId} | Delete a webhook subscription |
| 🔵 GET | /api/v1/webhooks/{webhookId} | Get a webhook subscription |
| 🔵 GET | /api/v1/webhooks/{webhookId}/deliveries | Get delivery logs for a webhook |
| 🔵 GET | /api/v1/webhooks | List all webhook subscriptions |
| 🔵 GET | /api/v1/webhooks/event-types | List supported webhook event types |
| 🟢 POST | /api/v1/webhooks/{webhookId}/test | Test a webhook |
| 🟡 PUT | /api/v1/webhooks/{webhookId} | Update a webhook subscription |
Compatibility
- n8n version: 1.0+ (tested on 2.x)
- Node.js version: 18+
