Before creating the customer sync saved searches, it is important to understand how the NetSuite Customer record syncs with the Stripe Customer.
Sync to Stripe Logic
When the PayPack bundle is installed in NetSuite, there is a custom transaction body field, STRIPE CUSTOMER ID (PAYPACK), which is added to store the Stripe Customer Id.
In order to see Stripe payment methods or process payments, a NetSuite Customer record must have a Stripe Customer Id populated.
If the field is populated, the NetSuite customer will use this Stripe customer to sync payment methods and process payments. Even when changing the NetSuite customer email address, it will still use the existing Stripe Customer Id.
Note: When changing the NetSuite customer email address, manually process PayPack Sync to update the Stripe customer's email address.
In order to re-sync a NetSuite customer to a different Stripe customer, STRIPE CUSTOMER ID (PAYPACK) must be blank and an email address must be present on the NetSuite customer record.
Any changes to a customer record in Stripe does not impact the NetSuite customer because it is linked by the field STRIPE CUSTOMER ID (PAYPACK).
The NetSuite customer sync lookup parameter priority is STRIPE CUSTOMER ID (PAYPACK) and then EMAIL ADDRESS.
Customer Sync Methods
- Single customer sync by pressing PayPack Sync button on Customer Record. This action will only sync the primary subsidiaryof a NetSuite Customer.
- For mass customer sync, we need to schedule our PayPack deployment script: nm PayPack for NS custsync mapr. This action will sync all subsidiaries of a NetSuite Customer.
- For new customer sync, enable PayPack user event script: PayPack Auto Sync Customer. The script is enabled by default during initial bundle install.
Add Saved Search IDs to Configuration
- Customer Sync Saved Search ID → This saved search uses column headers only for individual sync on the customer record.
- Mass Customer Sync Saved Search ID → The mass saved search is used if the customer sync script schedule is deployed.
Sync a NetSuite Customer with No Email Address
In the scenario where a NetSuite customer does not have an email address, it can still sync a Stripe Customer to the NetSuite customer record. It requires populating the NetSuite customer record bundle field name Stripe Customer Id (PayPack).
This can be achieved by using Stripe Customer export of Customer Ids from Stripe Dashboard → Customers and using NetSuite CSV import functionality.
Stripe Customer Portal
To allow customers to view and edit their payment methods as a self-service option, a custom field is added to the NetSuite customer record and includes the customer portal session URL. This custom field can be added to NetSuite email templates for automating communication.
By visiting the session's URL, the customer can manage their billing details. For security reasons, sessions are short-lived and will expire if the customer does not visit the URL.
Troubleshooting Tips
- Generate customer portal links for existing customers: Manually click the button, PayPack Sync, at the top of the customer record page.
- Diagnose script issues: Ensure the scripted deployment for customdeploy_nm_paypack_external_cus_por is released.
- Error message "Getting error while generating customer portal Session URL" when clicking NetSuite customer portal link: Go to Settings → Customer Portal and click Activate link.