Skip to main content

99minds Customer To iPaaS.com

Synchronize customer records from 99Minds to iPaaS

Updated over 2 weeks ago

Overview

Customer records from 99minds can be synchronized into iPaaS.com using a manual synchronization method. This mapping enables the creation of customer profiles in iPaaS.com based on data extracted from 99minds via the Customer API.

This integration ensures that essential customer fields such as Name, Email, and Phone are accurately transferred, maintaining data consistency across both platforms.

Mapping Collection Status

  • Mapping Status: Enabled.

  • Trigger Events: The sync is triggered manually or when a customer record is created or updated in 99minds.

  • ID Format: When manually syncing, the correct 99minds CustomerID must be entered.

  • Conflicting Mappings: This mapping applies only to Customer records. Ensure no other mappings target the same Magento entity to prevent data from being overwritten.

System Caveats

iPaaS Caveats

  • The EmailAddress field is required; without it, the customer will not be created in iPaaS.

  • FirstName and LastName must not be null or empty to properly populate the 99minds Name field.

  • Customer Number is required.

99minds Caveats

  • The Email field is mandatory in 99minds.

  • The Phone number must be in a valid numeric or international format (e.g., +1XXXXXXXXXX).

  • The Amount field must always be numeric. If not provided, the mapping defaults to 0.

Setup Requirements

iPaaS Configuration

  • CustomerID: Unique identifier in iPaaS.

  • EmailAddress: Must be valid.

  • FirstName / LastName: Required fields.

99minds Configuration

  • The Name and Email fields are mandatory in 99minds.

  • The Phone number must be in a valid numeric or international format (e.g., +1XXXXXXXXXX).

  • The Amount field must always be numeric. If not provided, the mapping defaults to 0.

Authentication & Security

  • API Key / OAuth token

    99minds API Secret Key: Used to access iPaaS API for Customer and related data.

    iPaaS.com: Requires an access token for the Customer API endpoint with create/update permissions.

Integration Flow

  1. Retrieve Data: Get customer data from iPaaS.

  2. Map Fields: Map customer data to 99minds fields, applying any dynamic formulas.

  3. Apply Overrides: Apply static or computed values as needed during mapping.

Mappings

Customer Add From 99minds to iPaaS.com

Mapping Type

Source Field (99minds)

Destination Field (iPaaS.com)

Static

true

99minds Loyalty Points Synced

Dynamic Formula

var balance = "0"; if(LoyaltyCard != null && LoyaltyCard.Balance != null) { balance = LoyaltyCard.Balance; } return balance;

99minds Loyalty Points Balance

Dynamic Formula

var cardId = ""; if(LoyaltyCard != null && LoyaltyCard.CardId != null) { cardId = LoyaltyCard.CardId; } return cardId;

99minds Loyalty Card ID

Dynamic Formula

return await GetTransactionListForCard(LoyaltyCard.CardId);

99minds Transaction Journal

Dynamic Formula

Phone ?? "N/A"

CustomerNumber

Dynamic Formula

if (Name != null){ var fullName = Name; var cleanName = fullName.Replace("Mr. ",""); cleanName = cleanName.Replace("Mrs. ",""); cleanName = cleanName.Replace("Ms. ",""); cleanName = cleanName.Replace("Mrs ",""); cleanName = cleanName.Replace("Mr ",""); cleanName = cleanName.Replace("Ms ",""); var firstName = cleanName.Split(); return firstName[0]; } else {return null;}

FirstName

Dynamic Formula

if (Name != null){ var fullName = Name; var cleanName = fullName.Replace("Mr. ",""); cleanName = cleanName.Replace("Mrs. ",""); cleanName = cleanName.Replace("Ms. ",""); cleanName = cleanName.Replace("Mrs ",""); cleanName = cleanName.Replace("Mr ",""); cleanName = cleanName.Replace("Ms ",""); var lastName = cleanName.Split(); return lastName[lastName.Length - 1]; } else {return null;}

LastName

Field

Email

EmailAddress

Customer Update From 99minds to iPaaS.com

Mapping Type

Source Field (99minds)

Destination Field (iPaaS.com)

Static

true

99minds Loyalty Points Synced

Dynamic Formula

var balance = "0"; if(LoyaltyCard != null && LoyaltyCard.Balance != null) { balance = LoyaltyCard.Balance; } return balance;

99minds Loyalty Points Balance

Dynamic Formula

var cardId = ""; if(LoyaltyCard != null && LoyaltyCard.CardId != null) { cardId = LoyaltyCard.CardId; } return cardId;

99minds Loyalty Card ID

Dynamic Formula

return await GetTransactionListForCard(LoyaltyCard.CardId);

99minds Transaction Journal

Dynamic Formula

Phone ?? "N/A"

CustomerNumber

Dynamic Formula

if (Name != null){ var fullName = Name; var cleanName = fullName.Replace("Mr. ",""); cleanName = cleanName.Replace("Mrs. ",""); cleanName = cleanName.Replace("Ms. ",""); cleanName = cleanName.Replace("Mrs ",""); cleanName = cleanName.Replace("Mr ",""); cleanName = cleanName.Replace("Ms ",""); var firstName = cleanName.Split(); return firstName[0]; } else {return null;}

FirstName

Dynamic Formula

if (Name != null){ var fullName = Name; var cleanName = fullName.Replace("Mr. ",""); cleanName = cleanName.Replace("Mrs. ",""); cleanName = cleanName.Replace("Ms. ",""); cleanName = cleanName.Replace("Mrs ",""); cleanName = cleanName.Replace("Mr ",""); cleanName = cleanName.Replace("Ms ",""); var lastName = cleanName.Split(); return lastName[lastName.Length - 1]; } else {return null;}

LastName

Field

Email

EmailAddress

Dynamic Formula

DestinationValue.Company

Company

Dynamic Formula

DestinationValue.Comment

Comment

Error Handling

Collection: Customer

Missing Name Fields

  • Description: FirstName or LastName not found

  • Resolution: Ensure both are populated before sync.

Collection: Customer

Missing EmailAddress

  • Description: Email required for customer creation.

  • Resolution: Provide valid email in iPaaS.

Testing & Validation

Validation Checklist

  • Email and Name validation successful.

Test Scenario

  1. Sync Customer to ensure that the customer has created.

  2. Update existing customer: Ensure updates apply without duplication.

  3. Missing email: Expect error message in iPaaS logs.

Additional Notes

  • Ensure dynamic formulas return valid references for all dependent entities.

Did this answer your question?