3 min lesson
Importing into tables
Import CSV data into Frontline tables with a file, Max, or the CLI and API. Use tables for reference lists, not for people or companies.
Tables are the spreadsheet-shaped lists in your model: fee schedules, model portfolios, custodian codes. Importing into a table is the same idea as objects, with less CRM behavior. There is no Lead vs Contact. There is no email uniqueness unless you added it. There is no timeline. That is why the file often feels easier, and why you must not use a table as a hidden People import.
Files, Max, or an agent
Load CSV or Excel, map each column to a table field, and create the rows. A model portfolio table wants Name, Risk profile, Minimum, Fee. A fee schedule wants Share class, Breakpoint, Rate. Use the types you already set. A percent in a text column will not total on a view.
Max can do the mapping if you say which table and what “good” means. “This CSV is model portfolios. Match on Name. Update the fee if the name exists.” Bring your own agent with the CLI or the API when the file will arrive on a schedule. Bulk-create rows, or upsert if you have a unique key you created on purpose.
Sharing still applies. A user who cannot edit the table cannot import into it, including via an API key that is theirs. Admins, the table creator, and anyone with full access can reshape and load.
When the import belongs on a table
Import a table when the row is reference data the objects will point at. After the portfolios are in, a relation on People or Deals can select “Balanced Tax-Aware.” Changing the fee in the table updates the source of truth. Importing that fee onto every Contact as text does not.
Do not import clients into a table because the CSV was handy. You lose sync, unique email, Company Brain, and the timeline. Do not import emails or WhatsApp threads as table rows. Those are activities.
If you need a one-time staging area, import to a table, clean it, then have Max or a script write the clean rows into People. Do not leave the firm living in the staging table.
Keep the load small and repeatable
Name columns like the fields. Include a stable key if you will reload: a portfolio code, a share-class name. The second import should update, not duplicate, if you designed that key. Views and calculations on the table will follow the rows you just added. No record-type default is required. No pending review appears. Ignore rules do not apply here. Those are for contact sync.
A wealth firm might import sixty model portfolios on Tuesday and never touch the file again. James stays an object. The portfolio is a table row he relates to. Company Brain still reads James and Harrington Family Office, not the fee grid.
That is the close of Syncing your data. Email and WhatsApp are connected, defaults and overrides are set, personal WhatsApp goes through review, ignore and internal keep the book clean, Company Brain synthesizes what you allowed in, and anything that will never sync arrives as an import. Next in the academy is Setting up Max, on top of a workspace that already knows who James is.