msptools

AvantGuard MSPTools — device inventory, company management, billing, cost analysis, and cross-system integration intelligence for MSPs.

Package Information

Downloads: 7 weekly / 289 monthly
Latest Version: 0.1.5
Author: AvantGuard LLC

Documentation

n8n      AvantGuard

MSPTools n8n Node

n8n community node npm

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

Discussion