99minds to iPaaS.com Customer Mapping Documentation
iPaaS.com customers can be created and updated from 99minds customer data through Manual Sync or an automatic webhook transfer. On creation the integration brings the 99minds customer's identity (name, email, contact identifier) into iPaaS.com and attaches the customer's current 99minds loyalty data — loyalty card ID, points balance, and loyalty transaction history — as custom fields. On update it refreshes that loyalty data on the existing iPaaS.com customer while preserving the customer's identity fields, so downstream systems can read loyalty state directly from the iPaaS.com customer without overwriting name, email, or other customer data.
ID Format
Manual Sync ID Format
On the iPaaS.com Manual Sync page, enter the 99minds Customer ID — for example, customer_35b4d7776af9ac875a.
External ID Format
After a successful transfer, the 99minds Customer ID is saved as the external-id link. Subsequent transfers use this link to update the same iPaaS.com customer rather than creating a duplicate. Whether an incoming customer is created or updated in iPaaS.com is determined by whether it is already linked by an external id, not by which webhook event fired.
Deleted Record Support
Inbound delete is not supported. This integration creates and updates customers only; the Delete operation is not implemented, delete mappings are not included in the default template, and removing a customer in 99minds does not delete the linked customer in iPaaS.com.
Mapping Collection Status
Status: Enabled.
Trigger Events: Automatic transfers run when 99minds sends a customer webhook to iPaaS.com. These webhook events must be configured manually in 99minds (Settings → Webhooks → Manage → New Webhook) using your iPaaS.com subscription Webhook API Key — see the 99minds Installation Instructions. The applicable 99minds customer events are customer/created, customer/updated, and customer/deleted. No automatic transfers occur until the 99minds webhook is configured. Manual Sync is available at any time. Whether an incoming customer is created or updated is determined by whether it is already linked by an external id, not by which event fired.
Duplicate or Conflicting Mappings
Other mapping collections operate on the same Customer:
Add 99minds Customer FROM iPaaS.com — creates the 99minds customer from an iPaaS.com customer.
Update 99minds Customer FROM iPaaS.com — updates an existing 99minds customer from iPaaS.com.
Within this document, the Add To iPaaS and Update To iPaaS collections move the same customers in the same direction (99minds → iPaaS.com); the Add collection creates the iPaaS.com customer and the Update collection refreshes its loyalty data. Review each collection's filters and Add/Update settings before enabling, and decide which system is the source of truth for customer data.
Collision Handling
This Customer integration does not use iPaaS.com collision handling — it is not supported for Customer. Records are routed to the Add or Update collection by external-id presence; there is no collision recovery step.
Supported Child Collections
None — these are standalone collections with no dependent child collections.
System Caveats
99minds Caveats
Email is mandatory in 99minds and is the value used to satisfy the required iPaaS.com Email Address.
Because the iPaaS.com Customer Number is sourced from the 99minds Phone field, a 99minds customer without a Phone value receives N/A as its iPaaS.com Customer Number — confirm this is acceptable for your customer-matching strategy.
The loyalty values reflect the customer's current 99minds loyalty card; a customer with no loyalty card reports a balance of 0.
iPaaS.com Caveats
Customer Number and Email Address are required, and Email Address must be unique. At least one of First Name, Last Name, or Company must be present.
The four 99minds loyalty fields are custom fields — they must already exist on the iPaaS.com customer configuration before these collections can populate them.
The Update collection expects the customer to already exist in iPaaS.com; only the loyalty custom fields are changed and existing identity values are preserved.
Integration-Specific Caveats
First Name and Last Name are derived by splitting the 99minds Name, with common titles (Mr./Mrs./Ms.) removed first.
The Transaction Journal custom field can grow large for active customers.
Setup Requirements
iPaaS.com Configuration
Create the four 99minds loyalty custom fields on the customer under Subscription Settings → Custom Fields: 99minds Loyalty Card ID, 99minds Loyalty Points Balance, 99minds Loyalty Points Synced, and 99minds Transaction Journal.
99minds Configuration
Configure the customer webhook in 99minds (Settings → Webhooks → Manage → New Webhook) using your iPaaS.com subscription Webhook API Key, subscribing to the customer/created, customer/updated, and customer/deleted events. See the 99minds Installation Instructions.
Authentication & Security
Authentication uses the 99minds API key configured on the subscription — see the 99minds Installation Instructions.
Integration Flow
Receive the 99minds customer (by webhook or Manual Sync) and resolve whether it is already linked to an iPaaS.com customer by external id.
Retrieve the customer record from 99minds.
Retrieve the customer's 99minds loyalty card to read the loyalty card ID, points balance, and loyalty transaction history.
On a new customer (Add), create the iPaaS.com customer with the mapped identity fields and the 99minds loyalty custom fields, then save the 99minds Customer ID as the external-id link.
On an existing customer (Update), refresh the 99minds loyalty custom fields on the iPaaS.com customer while preserving its identity fields.
Mappings
Add 99minds Customer TO iPaaS.com
Mapping Filter
This mapping collection does not have a mapping filter applied. All records routed to it are processed.
Description: Creates a customer in iPaaS.com from a 99minds customer record, bringing the customer's identity fields into iPaaS.com and attaching the current 99minds loyalty data (loyalty card ID, points balance, synced flag, and transaction history) as custom fields.
Mapping Type | Source Field (99minds) | Destination Field (iPaaS.com) | Description |
Field | EmailAddress | The 99minds customer email becomes the iPaaS.com Email Address. This is a required field in iPaaS.com and it must be unique — two customers cannot share an email address. Email is also mandatory in 99minds, so a value is always present. | |
Dynamic Formula | Phone | CustomerNumber | Sets the iPaaS.com Customer Number, which is a required field. The value is taken from the 99minds Phone field; when Phone is empty, the value N/A is used instead. Because the Customer Number is the customer's unique identifier in iPaaS.com, confirm that 99minds Phone is reliably populated so customers receive a meaningful, unique number. |
Dynamic Formula | Name | FirstName | Derived from the 99minds customer Name by taking the first word, after removing common titles such as Mr., Mrs., and Ms. iPaaS.com requires at least one of First Name, Last Name, or Company, so this mapping helps satisfy that requirement. |
Dynamic Formula | Name | LastName | Derived from the 99minds customer Name by taking the last word, after removing common titles. Recommended alongside First Name so the iPaaS.com customer has a complete name. |
Dynamic Formula | Loyalty card ID | 99minds Loyalty Card ID | Stores the customer's 99minds loyalty card identifier on the iPaaS.com customer as a custom field, so downstream systems can read it without calling 99minds. This custom field must already exist on the iPaaS.com customer configuration. It is empty when the customer has no loyalty card. |
Dynamic Formula | Loyalty card balance | 99minds Loyalty Points Balance | Stores the customer's current 99minds loyalty card balance on the iPaaS.com customer as a custom field. Defaults to 0 when the customer has no loyalty card. This custom field must already exist on the iPaaS.com customer configuration. |
Static |
| 99minds Loyalty Points Synced | Flags the iPaaS.com customer as carrying synced 99minds loyalty data. This collection always sets it to true. This custom field must already exist on the iPaaS.com customer configuration. |
Dynamic Formula | Transaction list for the card | 99minds Transaction Journal | Stores the customer's 99minds loyalty card transaction history on the iPaaS.com customer as a custom field. This custom field must already exist on the iPaaS.com customer configuration. For active customers this value can grow large. |
CustomerNumber formula:
Phone ?? "N/A"
FirstName 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;}
LastName 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;}
99minds Loyalty Card ID formula:
var cardId = "";
if(LoyaltyCard != null && LoyaltyCard.CardId != null) {
cardId = LoyaltyCard.CardId;
}
return cardId;
99minds Loyalty Points Balance formula:
var balance = "0";
if(LoyaltyCard != null && LoyaltyCard.Balance != null) {
balance = LoyaltyCard.Balance;
}
return balance;
99minds Transaction Journal formula:
return await GetTransactionListForCard(LoyaltyCard.CardId);
Update 99minds Customer TO iPaaS.com
Mapping Filter
This mapping collection does not have a mapping filter applied. All records routed to it are processed.
Description: Updates the 99minds loyalty data held on an existing iPaaS.com customer, refreshing the loyalty card ID, points balance, synced flag, and transaction history while preserving the customer's existing identity fields (Customer Number, First Name, Last Name, Email Address, Company, Comment).
Mapping Type | Source Field (99minds) | Destination Field (iPaaS.com) | Description |
Dynamic Formula | Loyalty card balance | 99minds Loyalty Points Balance | Refreshes the customer's current 99minds loyalty card balance on the iPaaS.com customer custom field. Defaults to 0 when the customer has no loyalty card. This custom field must already exist on the iPaaS.com customer configuration. |
Dynamic Formula | Loyalty card ID | 99minds Loyalty Card ID | Refreshes the customer's 99minds loyalty card identifier on the iPaaS.com customer custom field, so downstream systems can read it without calling 99minds. This custom field must already exist on the iPaaS.com customer configuration. It is empty when the customer has no loyalty card. |
Static |
| 99minds Loyalty Points Synced | Flags the iPaaS.com customer as carrying synced 99minds loyalty data. This collection always sets it to true. This custom field must already exist on the iPaaS.com customer configuration. |
Dynamic Formula | Transaction list for the card | 99minds Transaction Journal | Refreshes the customer's 99minds loyalty card transaction history on the iPaaS.com customer custom field. This custom field must already exist on the iPaaS.com customer configuration. For active customers this value can grow large. |
Dynamic Formula | (existing iPaaS.com value) | CustomerNumber | Preserves the existing iPaaS.com Customer Number so the Update does not overwrite the customer's identifier. The value is read from the existing iPaaS.com customer rather than from 99minds. |
Dynamic Formula | (existing iPaaS.com value) | FirstName | Preserves the existing iPaaS.com First Name so the Update does not overwrite the customer's name. The value is read from the existing iPaaS.com customer rather than from 99minds. |
Dynamic Formula | (existing iPaaS.com value) | LastName | Preserves the existing iPaaS.com Last Name so the Update does not overwrite the customer's name. The value is read from the existing iPaaS.com customer rather than from 99minds. |
Dynamic Formula | (existing iPaaS.com value) | EmailAddress | Preserves the existing iPaaS.com Email Address so the Update does not overwrite the required, unique email. The value is read from the existing iPaaS.com customer rather than from 99minds. |
Dynamic Formula | (existing iPaaS.com value) | Company | Preserves the existing iPaaS.com Company so the Update does not overwrite it. The value is read from the existing iPaaS.com customer rather than from 99minds. |
Dynamic Formula | (existing iPaaS.com value) | Comment | Preserves the existing iPaaS.com Comment so the Update does not overwrite it. The value is read from the existing iPaaS.com customer rather than from 99minds. |
99minds Loyalty Points Balance formula:
var balance = "0";
if(LoyaltyCard != null && LoyaltyCard.Balance != null) {
balance = LoyaltyCard.Balance;
}
return balance;
99minds Loyalty Card ID formula:
var cardId = "";
if(LoyaltyCard != null && LoyaltyCard.CardId != null) {
cardId = LoyaltyCard.CardId;
}
return cardId;
99minds Transaction Journal formula:
return await GetTransactionListForCard(LoyaltyCard.CardId);
CustomerNumber formula:
DestinationValue.CustomerNumber
FirstName formula:
DestinationValue.FirstName
LastName formula:
DestinationValue.LastName
EmailAddress formula:
DestinationValue.EmailAddress
Company formula:
DestinationValue.Company
Comment formula:
DestinationValue.Comment
Error Handling
Email Address required / not unique — iPaaS.com requires a unique Email Address on every customer. Because the value comes from the mandatory 99minds Email, confirm the 99minds customer has a distinct email; two iPaaS.com customers cannot share an email address.
Customer Number required — iPaaS.com requires a Customer Number. When 99minds Phone is empty the integration substitutes N/A; confirm 99minds Phone is reliably populated so customers receive a meaningful, unique number.
Missing custom fields — the four 99minds loyalty custom fields must already exist on the iPaaS.com customer configuration before these collections can populate them. Create them under Subscription Settings → Custom Fields if they are not present.
Testing & Validation
Test Scenarios
Create a customer — create or update a customer in 99minds (with a Name, Email, and Phone) so 99minds sends a customer webhook, and confirm a new iPaaS.com customer is created with the mapped Email Address, Customer Number, First Name, and Last Name.
Loyalty custom fields populate — confirm the new iPaaS.com customer carries the 99minds Loyalty Card ID, 99minds Loyalty Points Balance, 99minds Loyalty Points Synced (true), and 99minds Transaction Journal custom fields from the customer's 99minds loyalty card.
No loyalty card — transfer a 99minds customer with no loyalty card and confirm the balance custom field defaults to 0 and the card ID is empty.
Update refresh — change the loyalty balance in 99minds and re-transfer; confirm the iPaaS.com customer's loyalty custom fields refresh while the identity fields (Customer Number, First Name, Last Name, Email Address, Company, Comment) are preserved.
External-id reuse — re-transfer the same 99minds customer and confirm the existing iPaaS.com customer is updated rather than a duplicate being created.
Manual Sync by ID — on the iPaaS.com Manual Sync page, enter the 99minds Customer ID (for example, customer_35b4d7776af9ac875a) and confirm the customer is brought into iPaaS.com.
Validation Checklist
New iPaaS.com customers are created with the correct Email Address, Customer Number, First Name, and Last Name.
The four 99minds loyalty custom fields are populated from the customer's current 99minds loyalty card.
The Update collection refreshes loyalty custom fields without overwriting identity fields.
The external-id link (99minds Customer ID) is saved on Add and reused on subsequent transfers so no duplicate customer is created.
Additional Notes
The four 99minds loyalty custom fields must exist on the iPaaS.com customer configuration before enabling either collection.
The Transaction Journal custom field can grow large for active customers.
Because the iPaaS.com Customer Number is sourced from the 99minds Phone field, confirm 99minds Phone is reliably populated for your customer-matching strategy.
Related Documents
Setup & Reference
Mapping Documentation
