Skip to main content

Klaviyo Profile Add To iPaaS.com Mapping

Map Klaviyo Users to iPaaS Customers

Updated today

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

  1. A new customer profile is added, or an existing one is updated in Klaviyo.

  2. iPaaS retrieves key attributes (FirstName, LastName, Email, Company, PhoneNumber, and Address).

  3. Dynamic formulas extract nested data from CustomerAttributes.

  4. iPaaS validates the data

  5. The child address mapping validates that Address1, City, and Country are not null.

  6. Once validated, iPaaS updates the corresponding address record for the customer profile.

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

GetValueByPath(Subscriptions, "email.marketing.consent");

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

var custField = await GetValueFromCustomField(CustomerAttributes.Properties,"Last Active"); if(custField != null && custField.ToString() != ""){ return custField.ToString(); }

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

CustomerAttributes.PhoneNumber ?? "N/A"

CustomerNumber

Retrieves the PhoneNumber property from CustomerAttributes. If PhoneNumber is null, it returns "N/A" as a default value.

Dynamic Formula

CustomerAttributes.FirstName

FirstName

Retrieves the FirstName property from CustomerAttributes.

Dynamic Formula

CustomerAttributes.LastName

LastName

Retrieves the LastName property from CustomerAttributes.

Dynamic Formula

CustomerAttributes.Email

EmailAddress

Retrieves the Email property from CustomerAttributes.

Dynamic Formula

CustomerAttributes.Organization

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

Parent.CustomerAttributes.FirstName

FirstName

Retrieves the FirstName attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity

Dynamic Formula

Parent.CustomerAttributes.LastName

LastName

Retrieves the LastName attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity

Dynamic Formula

Parent.CustomerAttributes.Organization

Company

Retrieves the Organization attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity

Dynamic Formula

Parent.CustomerAttributes.Location.Address1

Address1

Retrieves the Address1 attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity

Dynamic Formula

Parent.CustomerAttributes.Location.Address2

Address2

Retrieves the Address2 attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity

Dynamic Formula

Parent.CustomerAttributes.Location.City

City

Retrieves the City attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity

Dynamic Formula

Parent.CustomerAttributes.Location.Region

Region

This mapping retrieves the Region attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity

Dynamic Formula

Parent.CustomerAttributes.Location.Country

Country

This mapping retrieves the Country attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity

Dynamic Formula

Parent.CustomerAttributes.Location.Zip

PostalCode

This mapping retrieves the Zip attribute from CustomerAttributes within Parent, implying the parent object represents a customer entity

Dynamic Formula

Parent.CustomerAttributes.PhoneNumber

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.

Did this answer your question?