Getting your data in
Bring the customer facts your campaigns need into the model you have defined. Use a CSV for an existing list, the app for individual records, forms for signups, and the Public API for ongoing updates from your product.
Upload a spreadsheet
Start here if your list is already in a spreadsheet, which is how most first lists arrive.
In the top navigation, open Records and pick the contact type your list belongs to. On that list, click the import button beside Add: it carries the type's plural name, so for a type called Customer it reads Import Customers. That opens the CSV import dialog.
Click Download sample CSV before you do anything else. There is no column matching screen: maxclicks reads your header row as field keys, exactly and case sensitively, so email is understood and Email is skipped without a warning. The sample's header row is already the exact set of columns your type accepts, so filling your data in underneath it is the safest route.
Add any tags you want on everyone in this file, then click Upload CSV and start import. A file can be up to 50 MB and 500,000 rows. The import runs in the background; leaving the page does not stop it.
Watch the run on the same page. It shows Pending, Running, Succeeded, Partial, Failed or Canceled. The importer processes validated rows in checkpointed batches, so a run can finish Partial: it then tells you how many rows made it, how many failed, and gives you a failure log to download that says why each one failed.
Blank cells are omitted rather than clearing existing values. New records use the field's missing-value policy; matched records do not rerun creation-time defaults or AI autofill. Unknown headers can be omitted without a visible column warning, so inspect several imported profiles after the run.
During onboarding, maxinja can inspect a CSV sample and propose a mapping into an existing schema. Review that plan before starting the mapped import. This is separate from the standard dialog's exact-key format, and sample validation does not prove every row is valid.
Import a contact list covers format, consent defaults, progress and recovery.
Three things worth knowing before you upload:
- Objects import the same way, but their lists have no import button. Go to Settings, then Schemas, open the type and use its Import tab. That page is where every import lives and is tracked, contacts included.
- Events cannot be imported from a CSV. Use the event interface with occurrence identity and timestamps; supported occurrence-time limits apply.
- A type kept in sync by a connected tool cannot be imported into. Its Import tab says which tool owns it, and the upload is turned off, because that tool adds and updates those records itself.
Add someone by hand
For the one lead who came in by phone, or a couple of test records before a launch, skip the spreadsheet. On a contact list, Add followed by the type's name opens a form with that type's fields. On an object list the same button reads New followed by the type's name.
Add your contacts shows the form and how to edit someone afterwards.
Collect people from your website
A form collects the information and communication preferences a visitor chooses to provide. Build one under Forms in the top navigation, put it on your site, and every submission becomes a contact.
A form can ask for email consent at the moment someone submits it, and it can require double opt-in: the person is held to one side, maxclicks emails them a single-use confirmation link, and they become a contact only when they click it. Double opt-in records that the person used the confirmation link; it does not guarantee future engagement.
Create a signup form covers building and embedding one.
Write records from your own systems
If your product already knows these people, keep them in sync instead of exporting a spreadsheet every month. Your own code can create and update contacts and objects and fire events as they happen, and a workflow step can create records while it runs.
Connecting your own systems covers what to hand a developer.
Keep identity consistent
Matching reduces duplicates only when you supply a consistent identity and choose the intended operation. For contacts without a platform ID, userId takes priority, otherwise email, otherwise phone. It does not try all three against unrelated profiles until one matches. Objects use platform ID or externalId.
Repeated upserts of the same stable identity can update one record; input with no identity can create another. A supplied platform ID that does not exist can be reported as unmatched rather than created. Inspect failures and API responses, particularly when moving from email-only contacts to your application's user IDs.
Only email the people who agreed
Imported contacts are not subscribed to email unless you tick Subscribe to email by default in the import dialog. Tick it only for people who have explicitly agreed to hear from you. If your file has a subscriptions column, the value on the row wins over the checkbox. The checkbox reaches only the contacts this import creates: a row that matches someone already in your space leaves subscriptions unchanged unless the row explicitly supplies them.
Use consented audiences and maintain the preferences people give you. maxclicks does not permit unsolicited cold email; importing an address is not evidence of permission to market to it. Deliverability explains what that costs you.
The rest of the rules live with the records themselves: marketing messages require the relevant channel consent and, when assigned, the topic preference. The Contacts page has the full picture.
Knowing where a contact came from
Every contact carries a Source field showing how it arrived: import, api, form, manual, workflow or integration. maxclicks sets it and nobody can edit it, not you and not your code, which is what makes it worth trusting when you are working out why a list looks the way it does.
It is an ordinary field, so a segment can filter on it, for example the people who signed up through a form in the last month.
Next
Once you have checked imported values, identities and consent, group the records into audiences.
Segments