N-able N-central → Breeze
N-central migrations have one structural wrinkle nobody expects: the probe. Alongside a per-endpoint agent, N-central deploys one or more Windows probes per site that perform network discovery and agentless monitoring of switches, printers, and ESXi hosts. Migrating the agents is straightforward; deciding what replaces the probe’s agentless coverage is the part that gets forgotten until cutover.
Service Templates and AMPs are the other two N-central-specific pieces. This page covers both.
Read Migrating to Breeze first.
Hierarchy Mapping
Section titled “Hierarchy Mapping”| N-central | Breeze | Notes |
|---|---|---|
| Service Organization (SO) | Partner | |
| Customer | Organization | Direct match. |
| Site | Site | Direct match. Many N-central estates only use the implicit single site per customer. |
| Device filter | Device Group | N-central filters map to Breeze dynamic device groups. |
| Device | Device | |
| — | Contact | Breeze contacts are first-class records, organization-level or pinned to a site. Load them from your PSA export with Recipe 1c. |
| Probe | — | Replaced by Breeze network discovery and SNMP monitoring. See below. |
Phase 0 — Export from N-central
Section titled “Phase 0 — Export from N-central”N-central exposes a legacy SOAP API and a newer REST API (/api/…, JWT-authenticated via a user’s API access token generated under Administration → User Management → your user → API Access). The REST API is the better choice for a migration export; the SOAP API remains the only way to reach some older endpoints.
-
Authenticate and exchange your API-User token for a JWT:
Terminal window NC=ncentral.yourdomain.comTOKEN=$(curl -sf -X POST "https://$NC/api/auth/authenticate" \-H "Authorization: Bearer $NC_API_USER_TOKEN" | jq -r .tokens.access.token) -
Export the customer → site tree:
Terminal window curl -sf -H "Authorization: Bearer $TOKEN" \"https://$NC/api/org-units?pageSize=1000" > orgunits.jsonecho 'organization,site' > tree.csvjq -r '[.data[] | select(.orgUnitType=="CUSTOMER")] as $c| .data[] | select(.orgUnitType=="SITE") as $s| ($c[] | select(.orgUnitId == $s.parentId)) as $parent| [$parent.orgUnitName, $s.orgUnitName] | @csv' orgunits.json >> tree.csvCustomers with no child site rows are single-site — emit them with a
Mainsite. -
Export devices — your reconciliation checklist:
Terminal window curl -sf -H "Authorization: Bearer $TOKEN" \"https://$NC/api/devices?pageSize=5000" \| jq -r '.data[] | [.customerName, .siteName, .longName,.osName, .deviceClass, .lastLoggedInUser] | @tsv' > nc-devices.tsvFilter
deviceClass— N-central inventories network gear and printers discovered by the probe alongside real agent-managed endpoints. Only the agent-managed rows are migration targets; the rest belong in the probe-replacement plan below. -
Export custom properties, which N-central carries at customer, site, and device level:
Terminal window curl -sf -H "Authorization: Bearer $TOKEN" \"https://$NC/api/devices/$DEVICE_ID/custom-properties" | jq . -
Export Service Templates for reference. You will rebuild these rather than import them, but you need the effective thresholds to hand.
Phase 3 — Deploy the Breeze Agent with an AMP
Section titled “Phase 3 — Deploy the Breeze Agent with an AMP”-
Build the AMP. N-central’s Automation Manager (a desktop authoring tool) produces
.ampfiles. You need a single Execute PowerShell Script object; the AMP is just a wrapper around it. -
Parameterise the enrollment key. Expose
BreezeServer,BreezeKey, andBreezeSecretas AMP input parameters so one AMP serves every site, and supply the per-site key from Recipe 2 when you schedule it. -
Body: the Windows PowerShell payload from Recipe 3. AMPs execute as SYSTEM under the agent, so no elevation wrapper is needed.
-
Add AV/EDR exclusions in both directions first — see Antivirus Exceptions.
-
Upload and schedule. Configuration → Scheduled Tasks → Add → Automation Policy, targeting one customer, on a daily recurrence for the length of your rollout window. Set the task to retry on failure. The
agent.yamlcheck makes repeat runs a no-op. -
Roll in waves. Pilot customer → 10% → the rest.
Replacing the Probe
Section titled “Replacing the Probe”This is the N-central-specific planning item. Before cutover, enumerate what your probes actually monitor — it is almost always more than people remember.
| Probe function | Breeze replacement |
|---|---|
| Network discovery / new-device detection | Network discovery |
| SNMP monitoring of switches, firewalls, UPSes | SNMP monitoring |
| Agentless printer / device status | SNMP monitors |
| ESXi / Hyper-V host monitoring | Agent on the host where supported; SNMP otherwise |
| WMI-based agentless Windows checks | Install the Breeze agent — there is no agentless Windows path |
Breeze’s discovery and SNMP monitoring run from an enrolled agent acting as the collector on that network, so designate a persistent, always-on machine per site — the same box that runs the N-central probe today is usually the right choice. Do this in Phase 5, before you decommission, so you are never without network visibility.
Custom Properties → Custom Fields
Section titled “Custom Properties → Custom Fields”N-central carries custom properties at customer, site, and device level. Only device-scope custom properties map onto Breeze custom fields, and they become partner-wide field definitions — N-central’s device scope has no per-organization narrowing, so one import covers every customer.
Customer- and site-scope custom properties are out of scope for the importer. Breeze has no custom-field owner narrower than an organization and no site axis at all, so a customer- or site-scope property does not translate cleanly onto either ownership axis. Re-home that data as organization-level fields by hand rather than guessing at the importer.
Use the Import from another RMM wizard (Settings → Custom Fields, or the Devices page) for the device-scope properties:
- Export device-scope custom properties per device (the endpoint above) and note which property names are actually populated across a sample.
- Open the wizard, choose N-central, and import the definitions with owner All organizations.
- On the values step, map
$DEVICE_ID(N-central’s own device id, used in the export URL above) to Source device ID — andlongNameas a fallback hostname identifier — then map each property column to the matching custom field. - The device id is the durable identifier Custom Fields records on this first run, so a later re-import — after more devices enroll — resolves exactly rather than by hostname guess.
A row the wizard can’t resolve to exactly one device is reported, never guessed at. Re-run after each enrollment wave; an already-applied value is left alone by default.
Service Templates and AMPs
Section titled “Service Templates and AMPs”Service Templates are N-central’s bundle of service monitors with thresholds, applied by device class or filter. Rebuild them as Breeze monitors plus alert rules, defined partner-wide so one definition covers every customer.
The translation is usually a simplification. A typical N-central estate runs a dozen templates that differ only in threshold values; in Breeze those become one partner-wide monitor set with an organization-level override where a customer genuinely differs.
AMPs are XML wrappers, and the useful part — the embedded PowerShell or VBScript — is extractable. Open the .amp in Automation Manager, copy the script object bodies out, and load them with Recipe 6. AMPs built entirely from Automation Manager’s own drag-and-drop objects (rather than a script object) do not port and need re-authoring.
Phase 6 — Decommission the N-able Agent
Section titled “Phase 6 — Decommission the N-able Agent”Only after Recipe 4 is clean for that customer, and the probe’s agentless coverage has been replaced.
-
Disable notifications for the customer at the SO level. Leave the agent installed.
-
Wait one full patch cycle.
-
Uninstall via N-central. Deleting a device in N-central triggers agent removal. To do it by AMP:
Terminal window $p = Get-CimInstance Win32_Product |Where-Object { $_.Name -match 'Windows Agent|N-able|SolarWinds MSP' }foreach ($x in $p) { msiexec /x $x.IdentifyingNumber /qn /norestart }Remove the probe separately — it is a distinct install (Windows Probe) on a different machine.
-
Verify from Breeze. Recipe 5 — Breeze Management Posture fingerprints N-able. Drive the count to zero, and check the probe machines explicitly since they will not appear in an agent-only list.
-
Delete the customer in N-central and reduce your licence count, after exporting anything you must retain.