The Scenario
You are a growth engineer. Your team is migrating from Intercom to Gleap and the deadline is end of week.
You have 2,000 user records in a Google Sheet exported from Intercom: column A is user ID, column B is email, column C is name, column D is plan tier, column E is a custom tag like "beta" or "enterprise."
Every record needs to be imported into Gleap as a user session before the Intercom contract lapses Friday at midnight.
The bad version of this week:
- You read Gleap's API docs and realize the session import endpoint expects userId, email, name, plan, and tags as separate JSON fields
- You write a script to read the sheet and call the API
- The script fails on row 847 because column E has an unexpected value
- You debug for three hours
- You re-run, it fails again at row 1,203 because some emails have trailing spaces
- Friday arrives and 400 records are still missing.
The fast version is one prompt.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent inside your spreadsheet that reads each row and calls Gleap's session import API, so you do not have to write a script.
Open the SheetXAI sidebar and type:
Import all rows in this sheet as Gleap user sessions — userId in column A, email in column B, name in column C, plan in column D, custom tag in column E. Skip rows where column A is blank.
SheetXAI reads the sheet, calls Gleap's API for each row, and imports the sessions. Blank rows in column A are skipped automatically.
What You Get
2,000 Gleap user sessions, each with:
- userId — mapped from column A
- email — from column B
- name — from column C
- plan — from column D, preserved exactly
- custom tag — from column E, attached as Gleap session metadata
The import runs in the background while you do something else. You do not sit watching a progress bar. When SheetXAI finishes, it writes a summary into the sheet: how many rows were imported, how many were skipped.
The Gleap team sees all 2,000 sessions in their dashboard before Friday midnight. The migration is done.
What If the Data Is Not Quite Ready
Intercom exports are never perfectly clean. SheetXAI handles data cleanup and the import in the same prompt.
When emails have trailing spaces or inconsistent casing
The Intercom export has mixed-case emails and some trailing spaces that would create duplicate sessions in Gleap.
Before importing, trim whitespace from column B and convert all emails to lowercase. Then import each row as a Gleap user session with userId in column A, email in column B (cleaned), name in column C, plan in column D, tag in column E.
When plan values use Intercom's labels, not Gleap's
Intercom says "pro_monthly," "pro_annual," "enterprise." Gleap expects "pro," "enterprise," or "free."
Normalize the plan values in column D: pro_monthly → pro, pro_annual → pro, enterprise → enterprise, anything else → free. Then import all rows as Gleap sessions.
When some rows are missing a userId
The Intercom export has gaps where userId was never set, leaving column A blank for some users.
For rows where column A is blank, generate a userId using the email in column B with the prefix "imported-". Then import all rows as Gleap sessions. Write the generated userId back to column A so we have a record.
When you want to skip users already in Gleap to avoid overwriting live session data
You have 400 users who already exist in Gleap from a beta cohort. You only want to import the net-new records.
Before importing, check each email in column B against existing Gleap sessions. Skip any row where the email already exists in Gleap. Import the remaining rows as new sessions and write "IMPORTED" or "SKIPPED — EXISTS" to column F for each row.
The pattern: clean the data and run the import in one prompt. No pre-processing script, no separate dedup pass, no mid-run debugging.
Try It
Get the 7-day free trial of SheetXAI and open your user migration sheet, then ask it to import every row into Gleap as a session. The Gleap integration is included in every SheetXAI plan. For related workflows, see how to export Gleap sessions for cohort analysis or the Gleap in Google Sheets overview.
