Summary
A Salesforce Contact is transferred to an iPaaS.com Customer through the Add/Update Salesforce Contact TO iPaaS.com mapping collection. When a Contact is created or updated in Salesforce, a corresponding Customer is created or updated in iPaaS.com, and the Contact's mailing address and its relationship to the parent company flow to iPaaS.com through the child collections. Only Contacts that have an Account assigned are transferred, and the related Account must already exist as a Company in iPaaS.com first. Change capture is schedule based: the integration polls Salesforce for new and changed Contacts rather than receiving real-time notifications.
ID Format
Manual Sync ID Format
When syncing a Contact on demand from the Manual Sync page, enter the Salesforce Contact record Id. Salesforce object Ids are 15 or 18 character alphanumeric values.
Example: 003Ux00000ABcdEFGH
External ID Format
The Salesforce Contact Id is mapped to the Customer Number on the iPaaS.com Customer, and it is what the integration uses to match the same Contact on later updates so that an existing Customer is updated rather than duplicated. In addition, the integration links on the Contact's email address: when a Customer already matches on email, the integration ties to that existing record instead of creating a second Customer for the same person.
Deleted Record Support
Record deletion is not synced. Deleting a Contact in Salesforce does not delete the corresponding Customer in iPaaS.com, and no delete mappings are included in the default templates. To remove a Customer, subscribers or their MiSP should manage that record directly in iPaaS.com.
Custom Field Support
Salesforce Contact custom fields can be mapped to iPaaS.com Customer custom fields. The collection ships with two custom field examples, Languages and ContactTestCustomField, to demonstrate the pattern, including how to bring a custom field across with a dynamic formula when a plain field mapping is not enough.
To map a custom field, create a matching custom field in Salesforce (under Data Management, Custom Fields), keeping the data type consistent, and create the corresponding field within the Subscription in iPaaS.com named to match the Salesforce API name. Once the field exists in both places, add the mapping. Keeping a 1:1 relationship between the matching fields results in a smoother integration.
Placeholder value — replace during implementation: the custom field examples are for demonstration only. The actual custom fields to map depend on the implementation, so subscribers or their MiSP should replace the examples with the fields relevant to their Salesforce org.
Mapping Collection Status
Status: Enabled
Trigger Events: Create, Update. A Contact that is created or updated in Salesforce is picked up on the next poll cycle and synced to iPaaS.com.
Duplicate or Conflicting Mappings
This is the only active mapping for syncing Salesforce Contacts to iPaaS.com. Additional mappings may be needed to preserve other iPaaS.com Customer field values, such as Comments; the source values for those are specific to each implementation.
Collision Handling
When a Contact is created in iPaaS.com and a matching Customer already exists, the outcome depends on whether a collision-handling method is selected on the mapping collection in the iPaaS.com mapping UI. When a method is selected, the integration can link to the existing Customer instead of creating a duplicate. When no method is selected, the integration surfaces a duplicate error rather than guessing. Separately, the email-based linking described under ID Format prevents duplicate Customers for the same email address; if the integration cannot link by email it continues but warns that duplicate records may result. See the Salesforce Error Messages article for the duplicate-detected and email-link conditions and their resolutions.
Supported Child Collections
This is a parent-level mapping collection. It has two child collections:
Add/Update Salesforce Contact Address TO iPaaS.com: syncs the Contact's mailing address to the address on the associated iPaaS.com Customer.
Add/Update Salesforce Contact Relationships TO iPaaS.com: establishes the relationship that links the Customer to the company it belongs to in iPaaS.com.
System Caveats
iPaaS.com Caveats
A Customer in iPaaS.com requires a Customer Number and an Email Address. Every Contact that syncs must have a value for both, otherwise the Customer cannot be created. First Name and Last Name are also mapped and recommended for a complete Customer record. The address fields and all other Customer fields have no required values at the destination.
Salesforce Caveats
Address details are stored on the parent Salesforce Contact (its Mailing address fields). There are no separate Salesforce address records; the address child collection moves those parent fields. The relationship between a Contact and its company is derived from the Contact's parent Account.
Integration-Specific Caveats
The related Account must already exist as a Company in iPaaS.com before the Contact is synced, because the Customer is linked to its company during the sync. For that reason, sync Salesforce Accounts to iPaaS.com before syncing Contacts. Contacts with no Account assigned are skipped by the collection filter and are not synced.
Change capture is poll based, not real-time. The poll look-back is configurable through the Contact Poll Days setting (default 7 days), which controls how far back the integration looks on the initial poll. Because capture is scheduled, a newly created or updated Contact appears in iPaaS.com after the next poll rather than instantly. For large volumes, subscribers or their MiSP should stagger bulk changes so a single poll cycle is not overloaded.
Integration Flow
The integration polls Salesforce for Contacts created or changed within the configured look-back window.
Contacts that have no Account assigned are skipped by the collection filter; only Contacts with an Account are processed.
For each remaining Contact, the integration checks whether a matching Customer already exists in iPaaS.com, first by the saved Customer Number and then by email address.
If no matching Customer exists, a new Customer is created from the mapped Contact fields; the Customer Number and Email Address are required for this step.
If a matching Customer exists, the Customer is updated with the mapped Contact fields.
The Contact's mailing address is synced to the address on the associated Customer through the address child collection.
The relationship linking the Customer to its company is established through the relationships child collection, resolving the company from the Contact's parent Account.
Mappings
Mapping Filter
This collection processes only Contacts that have an Account assigned. A Contact with no Account is skipped and not synced. The filter is:
if(AccountId != null) return true; return false;
Add/Update Salesforce Contact TO iPaaS.com
This collection maps Salesforce Contact fields to the iPaaS.com Customer.
Mapping Type | Source Field (Salesforce) | Destination Field (iPaaS.com) | Required / Recommended / Optional | Description |
Field | Id | CustomerNumber | Required | Maps the Salesforce Contact's unique record Id to the Customer Number on the Customer. The Customer Number is required to create a Customer in iPaaS.com, and using the Salesforce Id keeps each Contact tied to a single Customer across future updates. |
Field | EmailAddress | Required | Maps the Salesforce Contact's Email to the Email Address on the Customer. The Email Address is required to create a Customer in iPaaS.com, and it is also used to link to an existing Customer where one matches, which prevents duplicate Customers. Ensure Contacts have a valid email before syncing. | |
Field | AccountId | Company | Recommended | Maps the Salesforce Account the Contact belongs to into the Company on the Customer, linking the Customer to its company. The related Account must already exist as a Company in iPaaS.com first; Contacts with no Account are skipped by the filter. |
Field | First Name | FirstName | Recommended | Maps the Salesforce Contact's First Name to the First Name on the Customer. |
Field | Last Name | LastName | Recommended | Maps the Salesforce Contact's Last Name to the Last Name on the Customer. |
Dynamic Formula | Languages (custom field) | Languages | Optional | Maps the value of the Salesforce custom field Languages to the corresponding Customer custom field. This is an implementation-specific example of custom-field mapping — see Custom Field Support. |
Dynamic Formula | ContactTestCustomField (custom field) | ContactTestCustomField | Optional | Maps the value of the Salesforce custom field ContactTestCustomField to the corresponding Customer custom field using a dynamic formula. This is an implementation-specific example showing the dynamic-formula pattern — see Custom Field Support. |
Placeholder value — replace during implementation: the Languages and ContactTestCustomField rows are custom-field examples only; replace them with the custom fields relevant to the implementation.
Add/Update Salesforce Contact Address TO iPaaS.com
This child collection maps the Salesforce Contact's mailing address to the address on the associated iPaaS.com Customer. The address fields are stored on the parent Salesforce Contact and flow to iPaaS.com together with the rest of the Customer record. This collection has no filter.
Mapping Type | Source Field (Salesforce) | Destination Field (iPaaS.com) | Required / Recommended / Optional | Description |
Field | Street | Address1 | Optional | Maps the Street from the Contact's mailing address to the first address line on the Customer address. An empty street leaves the corresponding value unchanged. |
Field | City | City | Optional | Maps the City from the Contact's mailing address to the city on the Customer address. An empty city leaves the corresponding value unchanged. |
Field | State | Region | Optional | Maps the State from the Contact's mailing address to the Region on the Customer address. An empty state leaves the corresponding value unchanged. |
Field | Country | Country | Optional | Maps the Country from the Contact's mailing address to the country on the Customer address. An empty country leaves the corresponding value unchanged. |
Field | Postal Code | PostalCode | Optional | Maps the Postal Code from the Contact's mailing address to the postal code on the Customer address. An empty postal code leaves the corresponding value unchanged. |
Static | Static value: | IsPrimaryShipping | Optional | Sets Is Primary Shipping to a fixed value of true, marking the synced mailing address as the Customer's primary shipping address. This is a static value configured on the mapping; it does not read from a Salesforce field. |
Add/Update Salesforce Contact Relationships TO iPaaS.com
This child collection establishes the relationship that links the iPaaS.com Customer to the company it belongs to. The relationship type is always Company by design. The relationship details are read from the parent Contact record. This collection has no filter.
Mapping Type | Source Field (Salesforce) | Destination Field (iPaaS.com) | Required / Recommended / Optional | Description |
Static | Static value: | Type | Recommended | Sets the relationship Type to a fixed value of Company. Every relationship created by this collection links the Customer to a company, so the type is always Company by design. |
Dynamic Formula | Created Date (parent Contact) | StartDate | Optional | Sets the relationship Start Date to the date the Salesforce Contact record was created. The value is read from the parent Contact record using a dynamic formula. The Source is: |
Dynamic Formula | Account Id (parent Contact) | RelatedToId | Recommended | Links the relationship to the related company in iPaaS.com. It takes the Salesforce Account the Contact belongs to and resolves the matching Company in iPaaS.com, then stores that company's iPaaS.com id on the relationship. The related Account must already exist as a Company, so sync Accounts before Contacts. The Source is: |
Dynamic Formula | Level (parent Contact) | IsPrimary | Optional | Sets Is Primary on the relationship. It returns true when the Salesforce Contact's relationship level is Primary, marking that contact as the primary contact for the company; otherwise the relationship is not primary. The value is read from the parent Contact record using a dynamic formula. The Source is: |
Error Handling
Errors raised while syncing a Contact appear under Dashboard, Integration Monitoring, Error Logs. The conditions that most often affect this direction are documented in the companion Salesforce Error Messages article, which describes each message together with why it occurs and how to resolve it. Common conditions include:
The related Account does not yet exist in iPaaS.com or in Salesforce. Resolution: sync the Salesforce Account so the Company exists in iPaaS.com before syncing the Contact, and confirm the Account is present in Salesforce.
A Contact has no Customer Number or no Email Address. Resolution: confirm the Contact has a valid record Id and email address before syncing; both are required to create a Customer.
A duplicate Contact is detected on create with no collision-handling method selected. Resolution: select a collision-handling method on the mapping collection so the integration can link to the existing record, or resolve the duplicate in Salesforce.
The integration cannot link to an existing Customer by email address. Resolution: review the Customer's email value; this condition warns that duplicate Customer records may result.
A Salesforce API call fails. Resolution: review the error detail in the Error Logs and confirm the connection settings and Salesforce permissions, then re-run the sync.
Testing & Validation
Test Scenarios
Create a new Contact in Salesforce with an Account assigned, a valid email, and a first and last name, and confirm a corresponding Customer is created in iPaaS.com on the next poll cycle.
Confirm the related Account has been synced first, then verify the Customer is linked to the correct Company and the relationship is established.
Update a mapped field (for example, First Name or Email) on an existing Contact and confirm the change propagates to the Customer.
Attempt to sync a Contact with no Account assigned and confirm it is skipped and no Customer is created.
Attempt to sync a Contact with no email address and confirm the Customer is not created and an appropriate error appears in the Error Logs.
Populate the Contact's mailing address and confirm the address details appear on the Customer and the address is marked as primary shipping.
Sync two Contacts that share an email address and confirm the integration links to the existing Customer rather than creating a duplicate.
Set the Contact's relationship level to Primary and confirm the relationship is marked as primary on the Customer.
Validation Checklist
The Customer Number and Email Address appear on the Customer.
First Name and Last Name match between the Contact and the Customer.
The Customer is linked to the correct Company and the relationship type is Company.
The mailing address fields appear on the Customer and the address is marked as primary shipping.
No duplicate Customer is created when the same Contact, or another Contact with the same email, syncs again.
The relationship is marked primary when the Contact's level is Primary.
Out of Scope
The following are not handled by this mapping collection, at the time this documentation was written:
Record deletion. Deleting a Contact in Salesforce does not delete the Customer in iPaaS.com.
Real-time capture. Change capture is poll based; there is no real-time push of Contact changes.
Separate address records. Addresses are limited to the Contact's Mailing fields on the parent record; there are no multiple, independent address records.
Contacts with no Account. Contacts that have no Account assigned are skipped; the related Company must exist in iPaaS.com before a Contact can sync.
Custom-field assignment. The custom-field examples are implementation-specific; the fields to map depend on each subscriber's Salesforce org and are configured during implementation.
