Customer Sync

  • Updated

There are two ways to sync NetSuite customers to Stripe. In the PayPack configuration, the selected saved searches are used to pull the header columns only so values are not included. The headers will tell NetSuite which data columns to use in a single or mass customer sync.

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.

PayPack_Custom_Transaction_Body_Field_for_Stripe_Customer_Id.png

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 Sync to Stripe (PayPack) 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.

Blank_PayPack_Customer_Id.png

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

  1. Single customer sync by pressing Sync to Stripe (PayPack) button on Customer Record.
    Single-Customer-Sync.png

  2. For mass customer sync, we need to schedule our PayPack deployment script: nm PayPack for NS custsync mapr.

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

Manually_Sync_Stripe_Customer_Id_to_NetSuite_Customer_Record.png

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, Sync to Stripe (PayPack), 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.
    Activate