# Matching Overview

Matching is the process of identifying specific records in the target system.

Inaport provides various types of operations you can perform on a target table, such as:

- Create new record - always create a record
- Create Not Exist - try and find a record, and if not found create a new record
- Update - find a record and update; if not found, do nothing
- Match - find a record, but do nothing to it; used to then work with child tables.

These operations may also be combined (for example, Create or Update). Most of these operations rely on MATCHING, which means using information in the incoming record to identify a record in the target table.

For example, we may use the Company name in the incoming record to find an Account (for Dynamics CRM or SalesLogix), Company (for Sage CRM), or Contact (for GoldMine). To do this, Inaport must :

1. Build the match value from the incoming record (for example, get the Company name field)
2. Compare the match value with the each record in the target table and decide if it is a match or not
3. Take the appropriate action based on how many matches are found.

If the Company name in the incoming record is "InaPlex", every record in the target will be checked for "InaPlex".

## Normalization

You can improve the chances of finding a match by normalizing the data - changing it so it is in a standard form. For example, "InaPlex" would not match "Inaplex" because of the difference between "P" and "p". The ensure a match, you might use the lcase() function on both the source and target fields to map them both to lower case - this means that capitalization will no longer be an issue.

Some functions that are commonly used for normalization include normcomp(), norm(), lcase(), trim().

## Matching Techniques

Inaport supports different types of matching for handling different requirements.

Match Type | Description
--- | ---
Standard Match | This is the default matching technique. It provides excellent functionality and good performance for moderate sized data sets. For very large data sets, consider SQL Matching.
Fuzzy Match | Fuzzy matching enables matching of noisy or inconsistent data, and user review of possible matches.
SQL Match | SQL Match is designed to overcome the performance constraints of Standard Match for large data sets. Not quite as flexible as standard matching, and requires some knowledge of SQL.
External Match File | This technique makes it possible to use an external fuzzy match engine to generate a match between the source data and the target table, and then import the data using Inaport.