The Scenario
You are a course creator. You just closed enrollment and 900 new students landed in a Google Sheet overnight — email in column A, first name in column B, last name in column C, course name in column D.
The welcome email sequence in MailerLite is set to fire tomorrow. Every student needs to be in the 'New Students' group before that happens, with the COURSE_NAME custom field populated so the emails address the right course by name.
The bad version of this morning:
- You export the Sheet as a CSV
- You log into MailerLite, go to Subscribers, click Import
- You map the columns — email, first name, last name
- You realize the custom field COURSE_NAME is not in the standard mapping UI
- You spend twenty minutes figuring out how to include it in the import
- MailerLite finishes the import and shows you a summary — but the summary does not tell you which individual rows failed, just a count
- You walk into tomorrow not knowing if 40 students are going to get a welcome email about the wrong course.
The fast version writes the outcome per row, in the Sheet, so you know exactly what happened.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent inside your spreadsheet that calls the MailerLite API row by row and writes the result back, so you get a complete audit trail without leaving the Sheet.
Open the SheetXAI sidebar and type:
Import all rows in this sheet as MailerLite subscribers into the group named 'New Students' using email in column A, first name in column B, last name in column C — set the custom field COURSE_NAME to the value in column D for each. Write IMPORTED or ERROR into column E.
SheetXAI reads every row, calls the MailerLite subscriber API for each one, sets the custom field, adds the subscriber to the group, and writes the result into column E. If a row fails — because the email is malformed or the address already exists with a conflict — the ERROR status lands right next to it.
What You Get
A complete MailerLite import with per-row outcomes written back to the Sheet:
- 900 subscribers added to the 'New Students' group
- COURSE_NAME custom field set per subscriber from column D
- IMPORTED or ERROR written into column E for every row
- No import results page to click through — everything is in the Sheet
The per-row outcome is what makes this different from a CSV upload. If 12 rows failed, you know which 12. You fix them and rerun just those rows with a follow-up prompt: "Retry the rows in column E that say ERROR."
Want to add them to a second group at the same time? Tell SheetXAI: "Also add each subscriber to the group named 'All Students'." It handles both operations per row.
What If the Data Is Not Quite Ready
Real enrollment exports are never quite as clean as the scenario above. SheetXAI handles cleanup and the import in the same prompt.
When email addresses have extra spaces or mixed case
The export came from a form tool that did not normalize inputs. Some emails have trailing spaces, some have uppercase letters.
Before importing, trim whitespace from column A and convert all emails to lowercase. Then import each row into the 'New Students' MailerLite group using columns A–D, setting COURSE_NAME from column D. Write IMPORTED or ERROR into column E.
When some rows are missing a course name
A handful of students signed up through a promo link that did not capture the course field.
For rows where column D is blank, set COURSE_NAME to 'General Enrollment' before importing. Then import all rows into the 'New Students' MailerLite group. Write IMPORTED or ERROR into column E.
When duplicates snuck in from the form tool
The enrollment form had a bug that let some students submit twice. You do not want to double-import the same email.
Deduplicate column A, keeping the first occurrence of each email. Then import the deduplicated list into the 'New Students' MailerLite group with custom field COURSE_NAME from column D. Write IMPORTED or ERROR into column E.
When you also need to tag by subscription tier
Some students paid full price, some used a discount code stored in column E. You want a different custom field value for each tier.
Import all rows into the 'New Students' MailerLite group. Set COURSE_NAME from column D. If column E contains a discount code, also set the custom field ENROLLMENT_TYPE to 'Discounted'; otherwise set it to 'Full Price'. Write IMPORTED or ERROR into column F.
The pattern: instead of cleaning the Sheet first and running a separate import, you describe the cleanup and the import in one prompt. The outcome lands in the Sheet.
Try It
Get the 7-day free trial of SheetXAI and open any subscriber list sheet, then ask it to import the rows into MailerLite with the group and custom fields you need. The MailerLite integration is included in every SheetXAI plan. For related workflows, see how to sync group membership from a Sheet or the MailerLite in Google Sheets overview.
