Skip to main content

Salesforce to iPaaS.com Customer Mapping Documentation

How Salesforce Contacts sync to iPaaS.com Customers: field mappings, email-based linking, and sync behavior.

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

  1. The integration polls Salesforce for Contacts created or changed within the configured look-back window.

  2. Contacts that have no Account assigned are skipped by the collection filter; only Contacts with an Account are processed.

  3. 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.

  4. 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.

  5. If a matching Customer exists, the Customer is updated with the mapped Contact fields.

  6. The Contact's mailing address is synced to the address on the associated Customer through the address child collection.

  7. 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

Email

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: true

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: Company

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:

Parent.CreatedDate

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:

return await GetSpaceportIdAsync(Parent.AccountId, "Company", SpaceportSystemId)

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:

if(!string.IsNullOrEmpty(Parent.Level__c) && Parent.Level__c == "Primary") return true

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

  1. 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.

  2. Confirm the related Account has been synced first, then verify the Customer is linked to the correct Company and the relationship is established.

  3. Update a mapped field (for example, First Name or Email) on an existing Contact and confirm the change propagates to the Customer.

  4. Attempt to sync a Contact with no Account assigned and confirm it is skipped and no Customer is created.

  5. 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.

  6. Populate the Contact's mailing address and confirm the address details appear on the Customer and the address is marked as primary shipping.

  7. Sync two Contacts that share an email address and confirm the integration links to the existing Customer rather than creating a duplicate.

  8. 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.

Related Documents

Did this answer your question?