Mapping is the hardest part of a PSA integration. Get it wrong and counts land on the wrong line.

Authenticating to a PSA is a solved problem. Mapping is not. The hard part of a billing-related integration is matching your products to the MSP's own catalog items and agreement lines, because if the match is wrong, a quantity lands on the wrong line and the invoice is wrong with it.
Because every MSP builds its catalog differently. The same product can be named three ways across three agreements. Catalog items carry their own IDs, units, prices, and costs. A vendor's single product might be several items in the PSA, such as one per tier. And MSPs rename and retire items over time.
Matching on names alone breaks the first time someone edits a label.
Four design choices make mappings hold up:
Mappings go stale when the PSA changes. Plan for it:
Good mapping is mostly invisible when it works and very expensive when it does not. MSPCentric builds PSA integrations with mapping that is stable, visible, and easy for MSPs to maintain.
What is a PSA catalog item?
It is a product or service record in the MSP's PSA, with its own ID, name, unit, price, and cost. Agreement lines and invoices are built from these items, so your integration has to point at the right ones.
Why not match products to PSA items by name?
Names change, differ between MSPs, and collide. A stable ID survives renames and edits, and a name match should only be used to suggest a mapping for the MSP to confirm.
What happens when a mapped PSA item is deactivated?
The integration should stop writing to it, flag the mapping as broken, and tell the MSP. Quietly continuing to sync, or quietly dropping the data, are both worse than a visible alert.
Stay tuned for all things MSPCentric and PSA integrations.