The Scenario
The new platform goes live in 72 hours. Your CTO confirmed this morning: the checkout is wired up, the infrastructure is ready, the domain is pointing at the new servers. The one thing still missing — 500 customers from the old system who need to exist in Paystack before anyone can check out.
An ops coordinator exported the customer list last week: email, first name, last name, phone, in an Excel workbook. The workbook has been sitting in the shared drive since then. Nobody created the customers.
The bad version:
- You open Paystack, click into Customers, hit Create Customer, fill in four fields, save, and repeat.
- After 30 rows you notice that about 1 in 10 phone numbers has a country code prefix and the rest don't. You have no consistent format. A few fail to save because of invalid phone format.
- You're on row 55 when you realize you should have checked for existing Paystack customers first — some of these emails might already be there from a previous partial migration. You stop and try to figure out how to check without re-creating duplicates.
500 customers. 3 minutes each. No time to lose.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Excel workbook. It reads your customer table and creates each Paystack customer through the API row by row, writing the returned customer code back into the Paystack Code column — so you have a full migration record you can hand off.
For every row in my Excel 'Customers' table, create a new Paystack customer using the Email, First Name, Last Name, and Phone columns, then record the returned customer code in the 'Paystack Code' column.
What You Get
- Paystack Code column filled with the customer code per row (e.g., CUS_xxxxxxxxxxxxxxxx)
- Rows where creation fails — duplicate email, invalid phone — get the error reason in the Paystack Code column for triage
- All rows processed in one run, no manual dashboard entry
What If the Data Is Not Quite Ready
Phone numbers are in mixed formats
Normalize phone numbers in the Phone column to international format starting with +234, then create a Paystack customer for each row using Email, First Name, Last Name, and normalized phone — write the returned customer code to the 'Paystack Code' column.
Some emails may already exist in Paystack
For each row, check if a Paystack customer already exists for the email in the Email column — write 'EXISTS' to the Paystack Code column if so. Then create new customers for all rows where Paystack Code is still blank after the check, and write the returned code.
Email addresses have trailing whitespace from the export
Trim all email addresses in the Email column, then create a Paystack customer for each row using the cleaned email, First Name, Last Name, and Phone — write the returned customer code to 'Paystack Code'.
Trim emails, normalize phones, skip existing customers, and create in one shot
Trim emails, normalize phones to +234 format, check each email against existing Paystack customers (write 'EXISTS' to Paystack Code for matches), then create new Paystack customers for remaining rows using cleaned email, First Name, Last Name, and normalized phone — write the returned code to the Paystack Code column.
Running the full migration in one prompt means your CTO sees all 500 customers in Paystack before the launch window opens — not after the first checkout error.
Try It
Open the Excel workbook where your customer migration data lives, then Get the 7-day free trial of SheetXAI and ask it to push your customers into Paystack in bulk. You can also see how to create payment requests for those customers or pull your transaction history after go-live.
