SyncroMSP Migration
Import your data from SyncroMSP into Ascent so you can switch without re-keying your customers, contacts, and history. The migration is read-only and one-directional — nothing is ever written back to your SyncroMSP tenant.
The importer brings over your full SyncroMSP data set: customers, leads, products, contacts, assets, tickets, estimates, invoices and appointments. (SyncroMSP staff/technician users are not imported — Ascent user accounts are created and invited separately so each person controls their own login.)
Who can run a migration
Running a migration is available to the organization Owner and Admins
by default. Because it is controlled by a dedicated migrations permission, you
can also create a custom role that grants migration access to specific people
and withhold it from other admins. It handles raw source credentials and
bulk-creates records, so grant access deliberately.
Before you start
In SyncroMSP, go to Admin → API Tokens and create a token (API key) with at least read access to Customers and Contacts. You'll need two values:
- Subdomain — the
acmeinacme.syncromsp.com. - API Key — the token string SyncroMSP generates.
Connecting and running
- Go to Admin → SyncroMSP Migration.
- Enter your Subdomain and API Key.
- Click Test connection. Ascent runs an authenticated probe against your tenant. A clear error is shown if the credentials are rejected.
- Click Create migration. Your credentials are validated and stored encrypted at rest; they are never shown again or written to logs.
- Press Start. The import runs in the background and you can watch per-entity progress (pulled / loaded / skipped / failed).
How it works
- Throttling — every call goes through a single conservative rate limiter
that stays well under SyncroMSP's request threshold and backs off on
429, so a migration can never throttle your live SyncroMSP API access. - Idempotent — each SyncroMSP record is matched to its Ascent record by source id. Re-running a migration updates existing records instead of creating duplicates.
- Resumable — progress is tracked per entity. If a run is interrupted, starting it again skips anything already fully imported and re-imports the rest from the start. Because the import is idempotent, re-importing never creates duplicates — it simply fills in what was missing.
- Reported — each run produces per-entity counts plus a log of skips and any records that failed (with the raw payload retained for review).
What is mapped
| SyncroMSP | Ascent | Notes |
|---|---|---|
| Customers | Clients | Business name (or full name) becomes the client name; disabled customers import as Inactive. The Syncro customer id is kept as the client's reference number. |
| Leads | Clients (type Lead) | Imported as lead-type clients so they show up in your pipeline. |
| Products | Products | Retail price → price, cost → cost; stock-tracked items import as physical products. |
| Contacts | Contacts | Linked to their imported customer. A contact whose customer was not imported is skipped and logged. |
| Customer assets | Assets | Linked to their customer; the Syncro asset type is matched to the closest Ascent asset type (anything unrecognized imports as Other and is flagged). |
| Tickets | Tickets | Linked to their customer (and contact, if any). Priority is mapped; the Syncro status is matched to one of your ticket statuses by name when possible. A ticket whose customer was not imported is skipped. |
| Estimates | Quotes | Including line items. |
| Invoices | Invoices | Including line items; fully-paid invoices import as Paid. |
| Appointments | Calendar events | Placed on a SyncroMSP Imported calendar (or your default calendar), linked to the customer when present. |
Anything the importer can't map cleanly (e.g. an unrecognized asset type or ticket priority) is surfaced in the run report rather than dropped or silently defaulted.
Cleaning up
Deleting a migration run removes its staging data, id map, logs and the stored encrypted credentials — use it once a migration is complete.