In order to determine if a record already exists when creating or updating Salesforce records the following process is followed:
1. | Check if external id(s) have been specified on the Salesforce object. If so use the external id field(s) and value(s) to create a query on the Salesforce object. If the query result is not empty the record is deemed to exist. |
2. | Check if the mappings in SmartConnect have mapped to a field named id on the Salesforce object. If so a record of that id is queried from the Salesforce object. If the query result is not empty the record is deemed to exist. |
3. | Check the map line. If columns have been grouped on the line, use the grouped column(s) and value(s) to create a query on the Salesforce object. If the query result is not empty the record is deemed to exist. |
4. | Check the map data source key field(s). |
• | If the key field(s) have been mapped use the key field(s) and value(s) to create a query on the Salesforce object. If the query result is not empty the record is deemed to exist. |
• | If the key fields have not been mapped throw an error telling the user that existence could not be determined. |
5. | If none of the options above returned records, and the key fields have been mapped as per step 4 the record is deemed not to exist in Salesforce. |