msptools

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

Package Information

Released: 5 mo ago
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