The Scenario
Someone on the team handed you an Excel workbook with 500 churned customer contacts — names, emails, and postal addresses across six columns — and said the plan is a win-back card campaign next month. Your job is to get them into Cardly as a named contact list so the campaign can be targeted correctly.
The bad version:
- Export the worksheet as a CSV. Open the CSV, discover that Cardly's import expects columns in a specific order that your workbook doesn't follow. Reorder the columns in the CSV, re-save.
- Upload to Cardly. The import wizard flags 47 rows with address validation errors. Download the error report. Cross-reference back to the original workbook. Fix the errors row by row.
- Upload again. Three rows still fail. You're not sure if those three contacts were already in Cardly from a previous import or if the address is genuinely invalid.
This is one contact list. The campaign has three segments.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Excel workbook. It reads your data and talks to Cardly directly — creating the contact list and importing the records without a CSV export or an import wizard.
Open the SheetXAI sidebar and ask:
Upload all contacts from this Excel workbook to a new Cardly contact list named 'Holiday Campaign 2026' — use columns A through F for the required contact fields.
What You Get
- A new Cardly contact list with all valid contacts imported.
- A status column in the workbook noting which rows imported cleanly and which were flagged by Cardly's address validation.
- No CSV formatting, no column reordering, no manual error-report reconciliation.
What If the Data Is Not Quite Ready
Some contacts are missing a postcode
About 30 rows have a blank postcode field. Cardly requires a postcode for physical mail. You want to import the valid rows and flag the incomplete ones.
Create a Cardly contact list called 'Holiday Campaign 2026 — Clean' and import only rows where column F (Postcode) is not blank. For rows where the postcode is missing, write "missing postcode" in column G so I can follow up.
The workbook has duplicate email addresses
There are some contacts who appear twice — once from a legacy export and once from a more recent one. You only want the most recent record for each email.
Before importing to Cardly, deduplicate the worksheet by the email address in column B — keep the row with the higher row number for each duplicate. Then create a Cardly contact list called 'Holiday Campaign 2026' and import the deduplicated records.
Contacts need to be split into two lists by country
Half your contacts are in the UK, half in the US. Cardly campaigns are typically run by region so you want two separate lists.
Create two Cardly contact lists — 'Holiday Campaign UK' for rows where column F (Country) is "GB", and 'Holiday Campaign US' for rows where column F is "US". Import the relevant rows into each list and write the list name to column G for each contact after import.
The contact data is spread across three worksheets and needs to be merged first
You have one worksheet per sales region, each with the same column structure. The Cardly import should cover all three.
Merge all rows from the "North", "South", and "West" worksheets into a single Cardly contact list called 'Holiday Campaign 2026 — All Regions'. Deduplicate by email before importing. Write the source worksheet name to column G for each contact after import.
The pattern: describe the merge, the dedup, and the import together — SheetXAI handles all three without intermediate exports.
Try It
Get the 7-day free trial of SheetXAI and open the Excel workbook where your Cardly campaign contact data lives. Ask it to create the list and import the records. Or jump to exporting your Cardly artwork catalog, or back to the Cardly integration overview.
