Summary
Customers can be transferred from Klaviyo to iPaaS.com using manual sync or outbound webhooks. The integration process involves the Customer element.
Mapping Collection Status
Status: Enabled
Trigger Events: Create, Update of Customer in iPaaS.com
Id Format
When performing a manual transfer, use the Klaviyo internal profile ID, for example, 9878, as the record identifier. This ID uniquely identifies each customer profile in Klaviyo and ensures accurate linking when syncing with iPaaS.com.
Duplicate or Conflicting Collections
If the email matches, the existing Klaviyo profile is automatically linked, and any duplicate Customer ID is not transferred.
System Caveats
An email address is a required, unique identifier for customer matching. If an email already exists in iPaaS, the profile will be updated instead of recreated.
Custom fields (e.g., Last Active) are optional; if a field is missing, the system continues without error.
Setup Requirements
Klaviyo Configuration
Ensure Profile API access is enabled for Add and Update events.
Map the following fields in Klaviyo:
Subscriptions.email.marketing.consent > Consent
CustomerAttributes.Properties.Last Active > C5_Custom_Customer
CustomerAttributes.PhoneNumber > CustomerNumber
CustomerAttributes.FirstName > FirstName
CustomerAttributes.LastName > LastName
CustomerAttributes.Email > EmailAddress
CustomerAttributes.Organization > Company
Address fields (Address1, Address2, City, Region, Country, Zip, PhoneNumber) should be properly structured in CustomerAttributes.Location.
iPaaS.com Configuration
Mapping collection must be enabled in iPaaS.
The PreventDuplicate flag should be set for address child collections.
Ensure Email is marked as unique and required in iPaaS configuration.
CustomerNumber should be mapped as a key field if available.
Default data validation rules should be enabled to reject incomplete records.
Integration Flow
A new customer profile is added, or an existing one is updated in Klaviyo.
iPaaS retrieves key attributes (FirstName, LastName, Email, Company, PhoneNumber, and Address).
Dynamic formulas extract nested data from CustomerAttributes.
iPaaS validates the data
The child address mapping validates that Address1, City, and Country are not null.
Once validated, iPaaS updates the corresponding address record for the customer profile.
The PreventDuplicate flag ensures that only one address is created per profile.
Mappings
Parent Collection: Klaviyo Profile Add To iPaaS
Mapping Type | Source (iPaaS.com) | Destination (Klaviyo) | Description |
Dynamic Formula |
| consent | The GetValueByPath function retrieves values from nested objects using a dot-separated path, supporting dictionaries, JObjects, and .NET objects. It can also handle lists by returning a specific indexed value or concatenating all values with a separator. |
Dynamic Formula |
| C5_Custom_Customer | Retrieves the value of a custom field named "Last active" from CustomerAttributes.Properties. It checks if the fetched value (custField) is not null and not an empty string before returning it. |
Dynamic Formula |
| CustomerNumber | Retrieves the PhoneNumber property from CustomerAttributes. If PhoneNumber is null, it returns "N/A" as a default value. |
Dynamic Formula |
| FirstName | Retrieves the FirstName property from CustomerAttributes. |
Dynamic Formula |
| LastName | Retrieves the LastName property from CustomerAttributes. |
Dynamic Formula |
| EmailAddress | Retrieves the Email property from CustomerAttributes. |
Dynamic Formula |
| Company | Retrieves the Organization property from CustomerAttributes. |
Child Collection: Child Profile Address Add To iPaaS
Mapping Filter
Parent.CustomerAttributes.Location.Address1 != null
&& Parent.CustomerAttributes.Location.City != null
&& Parent.CustomerAttributes.Location.Country != null
Description
This code verifies that essential address details (Address1, City, and Country) are present within Parent.CustomerAttributes.Location. If all three fields Address1, City, and Country are not null, it indicates that a complete address is available, which can be critical for operations like shipping, billing, or location-based services. The Parent.CustomerAttributes.Location structure implies that the address belongs to a parent customer entity.
Mapping Type | Source (iPaaS.com) | Destination (Klaviyo) | Description |
Static | true | PreventDuplicate |
|
Dynamic Formula |
| FirstName | Retrieves the FirstName attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity |
Dynamic Formula |
| LastName | Retrieves the LastName attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity |
Dynamic Formula |
| Company | Retrieves the Organization attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity |
Dynamic Formula |
| Address1 | Retrieves the Address1 attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity |
Dynamic Formula |
| Address2 | Retrieves the Address2 attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity |
Dynamic Formula |
| City | Retrieves the City attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity |
Dynamic Formula |
| Region | This mapping retrieves the Region attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity |
Dynamic Formula |
| Country | This mapping retrieves the Country attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity |
Dynamic Formula |
| PostalCode | This mapping retrieves the Zip attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity |
Dynamic Formula |
| PhoneNumber | Retrieves the PhoneNumber attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity |
Error Handling
Profile (Parent)
Invalid Customer ID
Description: The provided CustomerId does not exist in iPaaS.
Resolution: Verify that the CustomerId in Klaviyo corresponds to an existing record in iPaaS or ensure the mapping retrieves the correct identifier.
Invalid Email Address
Description: Email address is missing or not in a valid format.
Resolution: Ensure each Klaviyo profile includes a valid email address in the format user@example.com.
Invalid Phone Number
Description: The phone number is missing or not properly formatted, preventing transfer.
Resolution: Use the GetKlaviyoFormattedPhoneNumber or equivalent formatting function to return a valid number, or exclude the record if not required.
Missing Required Fields
Description: One or more required fields (e.g., FirstName, LastName, or Email) are null.
Resolution: Validate and populate all mandatory fields in Klaviyo before synchronization.
Profile Address (Child)
Incomplete Address
Description: Address1, City, or Country fields are missing.
Resolution: Ensure all three address fields are populated before syncing; incomplete addresses will be skipped.
Duplicate Address Record
Description: The same address already exists for the profile.
Resolution: The PreventDuplicate flag avoids duplicates automatically; ensure it remains enabled.
Testing & Validation
Test Scenarios
Valid Profile Record: Profile added successfully to iPaaS.
Invalid Customer ID: Error logged; profile not created.
Missing Email: Sync rejected; email is required.
Invalid Phone Number: Sync fails; phone formatting must follow helper logic.
Valid Update Flow: Existing profile updated with new name, email, or organization details.
Duplicate Address Prevention: Sync skips address creation if an identical record already exists.
Validation Rules
Email Address: Required and unique must be in a valid email format.
FirstName and LastName: Recommended that it cannot contain numeric or special characters.
CustomerNumber: Should be unique if provided.
PhoneNumber: Must be numeric and properly formatted
Address1, City, Country: Required for address mapping; all must be non-null.
Validation Checklist
Email present, valid, and unique.
FirstName and LastName populated (recommended).
PhoneNumber formatted correctly.
CustomerNumber unique.
Address1, City, Country populated for address sync.
PostalCode valid.
PreventDuplicate flag active on address mapping.
Mapping collection status set to Enabled.
No duplicate or conflicting mapping collections targeting the same Klaviyo entity.
