Skip to main content

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 acme in acme.syncromsp.com.
  • API Key — the token string SyncroMSP generates.

Connecting and running

  1. Go to Admin → SyncroMSP Migration.
  2. Enter your Subdomain and API Key.
  3. Click Test connection. Ascent runs an authenticated probe against your tenant. A clear error is shown if the credentials are rejected.
  4. Click Create migration. Your credentials are validated and stored encrypted at rest; they are never shown again or written to logs.
  5. 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

SyncroMSPAscentNotes
CustomersClientsBusiness 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.
LeadsClients (type Lead)Imported as lead-type clients so they show up in your pipeline.
ProductsProductsRetail price → price, cost → cost; stock-tracked items import as physical products.
ContactsContactsLinked to their imported customer. A contact whose customer was not imported is skipped and logged.
Customer assetsAssetsLinked to their customer; the Syncro asset type is matched to the closest Ascent asset type (anything unrecognized imports as Other and is flagged).
TicketsTicketsLinked 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.
EstimatesQuotesIncluding line items.
InvoicesInvoicesIncluding line items; fully-paid invoices import as Paid.
AppointmentsCalendar eventsPlaced 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.