Summary
Customers can be transferred from iPaaS.com to Klaviyo using manual sync or outbound webhooks. The integration process involves the Customer and Transaction elements.
Mapping Collection Status
Status: Enabled
Trigger Events: Create, Update of Customer in Klaviyo
Id Format
When manually transferring products from iPaaS.com, you need to enter the valid product ID (internal ID), for example, 55260, into the iPaaS.com ID field on the iPaaS.com manual sync page
Duplicate or Conflicting Collections
If the email matches, the existing Klaviyo profile is linked automatically.
If no email match is found, the phone number will be used.
Conflicting values may overwrite data in Klaviyo unless mappings are split (Add vs. Update).
System Caveats
iPaaS.com Caveats
Duplicate SKUs or missing Customer IDs will cause sync failure.
Integration-Specific Caveats
Customer resolution logic defaults to email, phone number, or if the customer's external ID is not found.
Setup Requirements
Klaviyo Configuration
Create custom fields in iPaaS.com for:
SubscribeProfile
LIST_{list name}
UCLIST_{list name}
Any additional custom mappings
iPaaS.com Configuration
Configure manual sync and outbound webhooks.
Define mappings for required and optional fields
Integration Flow
The integration process for a profile from iPaaS.com to Klaviyo follows a straightforward sequence:
Customer Creation: Customer data created/updated in iPaaS.
Relevant Fields: Email, phone, Name, Address, and Subscription flags.
Phone number: Klaviyo Phone number must be provided in the E.164 format. No Other format is accepted.
Profile Resolution: The system identifies the corresponding profile in Klaviyo by matching the customer’s email address first, or by phone number if no email match is found
Profile Creation/Update in Klaviyo: If no profile match is found, a new profile is created or an existing profile is updated using the mapped details from PaaS.com, such as name, email, phone number, and company.
Custom Fields Insertion
Related details are inserted into the profile, including:Primary billing address (Country, Region, Postal Code, Address1, Address2, City)
Subscription status (SubscribeProfile)
List assignment (LIST_{list name} or UCLIST_{list name})
Any additional custom fields defined in iPaaS.com.
Mappings
Parent Collection: Klaviyo Sales Order From iPaaS.com
Mapping Type | Source (iPaaS.com) | Destination (Klaviyo) | Description |
Static | true | LIST_Sms Subscribers |
|
Static | true | SubscribeProfile |
|
Static | Example values | My Custom |
|
Static | true | Claustrophobic List |
|
Static | profile | Type |
|
Dynamic Formula |
| Id | Retrieves the external ID for a customer by calling GetExternalIdAsync, which accesses a Klaviyo system. This code is intended to retrieve a Klaviyo system's ID for a customer. Returns the customer's Klaviyo ID if found. If the ID cannot be retrieved, it returns null. |
Field | EmailAddress |
| |
Dynamic Formula |
| PhoneNumber | Calls a conversion function GetKlaviyoFormattedPhoneNumber with the CustomerNumber to retrieve a customer number by removing non-digit characters and formatting it based on the country code. If phoneNumber is not null and not an empty string, it indicates a valid formatted phone number. |
Field | Id | ExternalId |
|
Field | FirstName | FirstName |
|
Field | LastName | LastName |
|
Field | Company | Organization |
|
Dynamic Formula |
| Address1 | Locates the first iPaaS.com address in the Addresses collection, where "IsPrimaryBilling" is true, and returns the "Address1" field from that matched address. |
Dynamic Formula |
| Address2 | Locates the first iPaaS.com address in the Addresses collection, where "IsPrimaryBilling" is true, and returns the "Address2" field from that matched address. |
Dynamic Formula |
| City | Locates the first iPaaS.com address in the Addresses collection, where "IsPrimaryBilling" is true, and returns the "City" field from that matched address. |
Dynamic Formula |
| Country | Locates the first iPaaS.com address in the Addresses collection, where "IsPrimaryBilling" is true, and returns the "Country" field from that matched address. |
Dynamic Formula |
| Region | Locates the first iPaaS.com address in the Addresses collection, where "IsPrimaryBilling" is true, and returns the "Region" field from that matched address. |
Dynamic Formula |
| Zip | Locates the first iPaaS.com address in the Addresses collection, where "IsPrimaryBilling" is true, and returns the "PostalCode" field from that matched address. |
Error Handling
Profile (Customer)
Invalid Customer ID
Description: The provided CustomerId does not exist in Klaviyo.
Resolution: Ensure an external ID mapping exists or provide a valid email address.
Invalid Customer Phone Number
Description: The provided customer phone number is missing or invalid, preventing Klaviyo profile creation.
Resolution: Use the GetKlaviyoFormattedPhoneNumber function to remove non-digit characters and format the number by country code; ensure it returns a valid, non-empty value.
Missing Billing/Shipping Address
Description: No BillTo or ShipTo address provided.
Resolution: Ensure at least one billing and one shipping address are mapped.
Missing Required Fields
Description: FirstName, LastName, City, or Country is null.
Resolution: Validate all address fields in iPaaS.com before pushing.
Invalid Postal Code
Description: PostalCode format fails regex check.
Resolution: Correct the postal code to a numeric-only or a valid local format.
Testing & Validation
Invalid Customer ID: Error Logged, Customer Rejected
Valid customer (with email and phone): Syncs successfully.
Missing or invalid phone number: Transfer error.
Missing email but valid phone number: Customer matched by phone.
Missing both email and phone: Sync fails.
Subscription status = false: Profile unsubscribed in Klaviyo.
List assignment (double opt-in): Triggers consent email.
List assignment (single opt-in): Auto-subscribed without consent email.
Invalid postal code or country: Address mapping rejected.
Validation Rules
If a customer ID already exists in Klaviyo with a matching email, the existing customer will be linked automatically.
If the customer's email is not matched, a phone number match will also be attempted
An email address or phone number must be present (formatted using GetKlaviyoFormattedPhoneNumber).
Subscribed Status (SubscribeProfile) must be set correctly (true/false).
List Assignments must be mapped to LIST_{list name} (double opt-in) or UCLIST_{list name} (single opt-in).
The address must have at least one Primary Billing address with a valid country, region, postal code, city, and address lines.
ExternalId must be retrieved from Klaviyo using GetExternalIdAsync.
Validation Checklist
Customer ID resolved (via ExternalId).
Email exists, or the phone number is valid and formatted.
Subscribed Status (SubscribeProfile) mapped correctly.
List assignment values (true/false) configured properly.
At least one Primary Billing Address is available.
Country, Region, PostalCode, Address1, and City populated.
ExternalId mapping returns a valid Klaviyo ID.
Additional Notes
iPaaS.com is treated as the source of truth for profile data.
It is highly recommended to split mappings into Add-only and Update-only to prevent overwriting Klaviyo-managed values (e.g., unsubscribes directly in Klaviyo).
If no valid email or phone number exists, the profile cannot be transferred.
