Bring Your Own Data
Bring the people, events, orders, tickets, reviews and transcripts your tools already hold, map their columns once, and read the report before anything is imported.
Configure > Bring Your Own Data takes what your other tools hold, as a CSV or XLSX file or from your coding agent. People (Users, Accounts, Subscriptions) write attributes on people. Events (Product events, Orders) become past events on their timeline. Records (Support tickets, Feedback, Survey responses, Reviews, Chat transcripts) are text that Insights read as themes.
Before you start
- Only an admin imports or deletes an import; a member reads.
- Each import names one environment, Production by default.
- One file of up to 100 MB with a header row: CSV, or XLSX read from its first sheet.
Setting it up
Pick a Dataset card. The dialog lists the columns it needs, with Download an example on
four of them. A People or Events row names its person in user_id, email or
anonymous_id, the user id winning when a row has both; a Record needs none and keeps the
person when it has one.
Upload and read reads the headers. Map the columns shows each header beside the field
it goes to, matched by its exact name, display name or a common alias such as
Requester Email. Fix a wrong one, put a column you do not want on
Set aside, then Read the file; a required field with no column holds the button. The
mapping is remembered per Product and Dataset and offered first next time.
The report counts the rows, the people to create and match, and what was skipped and why.
On a People Dataset, new columns appear under New attributes with a guessed type to tick
and fix. Event names work the same way under New events; an Orders file proposes
order_placed, which carries each row's amount. Import declares what you ticked, then
imports.
Your coding agent sends the same rows with import_people,
import_events and import_records on ARCY MCP; its import
waits in Past imports for your Import.
What it changes
- An imported person appears on Users and
Organizations. A person imported by email alone shows No user id
yet until a verified
identify()sends that email with a user id: they become that user, once. Ananonymous_idjoins a live visitor only throughidentifyAnonymous()(Reference). - A blank cell never clears a value; the latest write wins. A repeated event, or a Record with the same id, is skipped, so the same export twice changes nothing.
- Imported events and Records are kept 12 months, cost no credits and are not tracked events. Insights and the timeline read them; Lift, Traffic, Conversations, flow analytics and the chat assistant never do.
- A card number, IBAN or API key is refused in a cell and masked inside a Record's text; a column named like a password or CVV is refused (What we never do).
Delete this import removes its events and Records, and the people it created who never visited and were never linked to a user id. Attribute values it wrote stay. It cannot be undone.
When it goes wrong
- Every row skipped as No Match key: no column maps to
user_id,emailoranonymous_id. Map one and read again. - Rows skipped as Email matches more than one person: two people carry that email. Give
those rows a
user_id. - Rows skipped as No text or Amount could not be read: that column is empty, or not a number.
- The file will not open: save it as
.csvor.xlsxfrom Excel or Google Sheets and upload again. - A mapping nobody confirms and a report nobody imports expire after 30 days.