Matching and avoiding duplicates

How imports and integrations decide whether something already exists, and how to keep your documentation free of duplicates.

Knowpoint never overwrites or deletes your documentation to "fix" a duplicate. Instead, before it adds anything, it checks whether the item is already there. This article explains how that check works for imports and integrations, and how to set things up so duplicates don't happen.

The short version

  • Names are what match. Imports and first-time syncs recognize existing items by name, within the same organization. Capital letters and extra spaces don't matter, so FB-DC01, fb-dc01 and *FB-DC01 * are the same.
  • Devices from an integration also match by serial number and hostname. So fb-dc01.fabrikam.local from NinjaOne finds the FB-DC01 you already have.
  • Imports never change existing items. Anything that already exists is skipped.
  • Integrations remember what they synced. After the first sync, each record stays linked to the item it became, even if someone renames it. If you delete it, it stays deleted.
  • Get organization names right first. Almost everything else is matched inside an organization, so a duplicate organization leads to duplicate everything.

Imports

When you import a Knowpoint export or a CSV file in Admin β†’ Export & import, every row is checked against what's already in the workspace:

What Counts as "already here" when it has the same…
Organization name
Asset type, flexible asset type name (missing types are created with their fields)
Tag name, in the same place (global, or the same organization)
Location name, in the same organization
Contact email, or else first and last name, in the same organization
Asset name and asset type, in the same organization
Flexible asset name and type, in the same organization
Password name and username, in the same organization
Client document title, in the same organization
Knowledge base article title
Domain domain name, in the same organization

What that means in practice:

  • Existing items are skipped, never updated. If the file has a newer IP address for a server that's already documented, the server is left as it is. Update it by hand, or let an integration keep it current.
  • Organizations, types and tags are reused. Importing into "Contoso Ltd" when it already exists adds the new items to the existing organization.
  • The same file twice is safe. The second time, everything shows under Already here (skipped) and nothing is added.
  • Links only go on new items. Related items and tags from the file are added to items the import creates, not to ones that already existed.
  • The preview tells you before anything happens. Check the Already here column. If something you expected to match shows under Will be added, its name is spelled differently in the file. Fix the file and upload it again.

Watch out for these:

  • An asset filed under a different type (Network Device vs Firewall) doesn't match, so it's added again.
  • Organization names that differ slightly (Contoso, Contoso Ltd, Contoso Ltd.) are three different organizations. Rename either side to match before importing.

Integrations (ConnectWise PSA, HaloPSA, NinjaOne)

The first sync: matching to what you already have

  1. Companies to organizations. Each company is matched to an organization with the same name. You can see and change every match on the integration's Match companies page: pick a different organization, or choose Don't sync this company. Companies that don't match anything are created as new organizations only if Create organizations for companies that don't match one is ticked. Otherwise they wait on the Match companies page for you to choose.

  2. Sites to locations: by name, in the matched organization.

  3. Contacts: by email first, then by first and last name, in the matched organization.

  4. Devices to assets, in the matched organization, trying in this order:

    1. The same serial number. Placeholder serials such as To be filled by O.E.M. or Default string are ignored.
    2. The same name.
    3. The same short hostname. fb-dc01.fabrikam.local and FB-DC01 are the same device. The asset's name and its Hostname field are both checked.

    A serial number or hostname only counts when exactly one asset fits, and an asset that's already synced from another record of the same integration is never taken over. The asset type doesn't need to match, and an existing asset keeps the type you gave it.

Every sync after that

Each record is linked to the item it became. Later syncs update that same item, using the PSA or RMM's own ID rather than the name. So if someone renames SRV01 to SRV01 (old) in Knowpoint, the sync still updates it and doesn't create a new SRV01.

What a sync changes:

  • Synced fields are overwritten on assets, contacts and locations, such as serial number, OS, IP address, phone and address.
  • Organizations only get missing details filled in. Their names, and any phone or website you already entered, are never changed.
  • Everything else is left alone: notes, passwords, documents, tags, related items and fields the integration doesn't know about.
  • Nothing is deleted. If a device is removed from the PSA or RMM, its asset stays in Knowpoint.

Two integrations, one device

If the same server is in both ConnectWise and NinjaOne, the second integration matches it on its first sync, by serial number, name or short hostname, and links to the same asset. From then on both keep it updated. NinjaOne's fb-dc01.fabrikam.local and ConnectWise's FB-DC01 end up as one asset.

You only get two assets when nothing lines up: the serial numbers differ or are missing, and the names are actually different (FB-DC01 vs FABRIKAM-DC-1). In that case, rename one so they match before the second integration's first sync.

Deleting a synced item

If you delete an asset, contact, location or organization that an integration manages, it stays deleted. Later syncs skip it, even though it still exists in the PSA or RMM.

  • Changed your mind? The integration's page (Admin β†’ Integrations, open the integration) shows how many items were deleted, with Sync them again. They're created again on the next sync.
  • For a deleted organization, open Match companies and choose an organization for that company again.
  • Want to keep something out from the start? Use Don't sync this company on the Match companies page, or the option to skip devices that aren't servers, workstations, network gear, firewalls or printers.

How to avoid duplicates

  1. Decide where each kind of data comes from. If ConnectWise or NinjaOne knows about your clients and devices, let the integration create them, and don't also import the same devices from a CSV.
  2. Connect integrations before you import or type things in. Then the sync creates organizations and assets once, with the right names, and your imports and manual work add to them.
  3. Check Match companies before the first sync. It's the most important step: every site, contact and device follows the company's match.
  4. Use the same names everywhere. Pick one naming convention for organizations (Contoso Ltd, not sometimes Contoso) and use it in your PSA, RMM and Knowpoint. For devices, fill in serial numbers where you can: they're the most reliable match.
  5. Import in order: organizations, then locations and contacts, then assets, passwords and domains. Use the CSV templates so the columns are recognized.
  6. Read the preview. If a number under Will be added looks too high, cancel and compare names.
  7. Rename instead of re-creating. To change what an item is called, edit it. Deleting and adding it again breaks its history, related items and sync link.

Found duplicates anyway?

  1. Open πŸ–₯️ Assets (or the organization's tabs) and filter by name to find them.
  2. Decide which one to keep. If one came from an integration, keep that one, so it keeps being updated. If you delete the synced one instead, it isn't re-created, but it isn't updated anymore either.
  3. Copy anything worth keeping, such as notes, passwords, related items and tags, onto the one you're keeping.
  4. Delete the extra with bulk actions: tick it and choose Delete.

See also: Export and import Β· Integrations

Didn't find what you needed? Email us about this page