Skip to content

Import Relations Between Objects via CSV

Overview

This guide walks you through importing relations between objects—for example, linking People to Companies, or Opportunities to People.

Note

What can be imported: Only one-to-many relations pointing to a single object type. Relations pointing to multiple object types (like Notes linking to People AND Companies) are not yet supported for import.

Understanding Relations

What is a "One-to-Many" Relation?

In a one-to-many relation:

  • One Company has many People (employees)
  • One Company has many Opportunities
  • One Person has many Tasks

The "one" side is the parent. The "many" side is the child.

Common Relations in Grovana

Relation "One" Side (Parent) "Many" Side (Child)
Companies → People Company People
Companies → Opportunities Company Opportunities
People → Tasks Person Tasks
People → Notes Person Notes

Step 1: Identify the "One" and "Many" Sides

Before importing, determine which object is the parent and which is the child.

Ask yourself: "Does ONE [Object A] have MANY [Object B]?"

  • One Company → Many People ✓ (Company is parent)
  • One Person → Many Companies ✗ (This is wrong—a person belongs to one company)

Step 2: Import the Parent Records First

The parent ("one" side) must exist in Grovana before you can reference it.

Import order:

  1. Companies first (no dependencies)
  2. People second (link to Companies)
  3. Opportunities third (link to Companies and/or People)
  4. Tasks/Notes (link to any of the above)

Warning

If the parent record doesn't exist, the import will fail.

Always verify that Companies are imported before importing People with company references.

Step 3: Note the Parent's Unique Identifier

You need to reference the parent record using a unique identifier. Available options:

Parent Object Available Unique Identifiers
Companies id (UUID), domain (recommended), or any custom unique field
People id (UUID), email, or any custom unique field
Workspace Members id (UUID), email (not name)
Custom Objects id (UUID), or any field marked as unique

Note

Recommended: Use domain for Companies and email for People. These are human-readable and easy to verify in your spreadsheet.

Finding the Identifier

If you need the id:

  1. Export the parent records from Grovana
  2. The export includes the id column
  3. Use these IDs in your child records file

Step 4: Verify the Relation Field Exists

Before importing, ensure the relation field exists between your objects.

To check or create:

  1. Go to Settings → Data Model
  2. Select your child object (e.g., People)
  3. Look for a relation field pointing to the parent (e.g., Company)
  4. If it doesn't exist, create it:
    • Click + Add field
    • Select Relation type
    • Choose the parent object

Step 5: Prepare Your CSV File

Add a column to your child CSV that references the parent using its unique identifier.

Example: People Linking to Companies

Your People CSV:

firstName,lastName,email,jobTitle,companyDomain
John,Smith,[email protected],CEO,https://acme.com
Jane,Doe,[email protected],CTO,https://widgets.co
Bob,Johnson,[email protected],Developer,https://techstart.io

The companyDomain column references the Company's domain.

Format Requirements

Identifier Format Example
Domain URL format https://acme.com
Email Standard email [email protected]
ID UUID c776ee49-f608-4a77-8cc8-6fe96ae1e43f

Warning

Domain format matters!

Use https://domain.com (not just domain.com). This matches how Grovana stores Company domains and prevents matching errors.

Important Rules

  1. Exact match required — the value must exactly match the parent record
  2. Map only ONE unique identifier — don't include both companyId AND companyDomain
  3. Case sensitiveAcme.comacme.com

Step 6: Upload and Map the Relation

  1. Navigate to the child object (e.g., People)
  2. Click Import records
  3. Upload your CSV file
  4. In the field mapping step:
    • Find your relation column (e.g., companyDomain)
    • Map it to the Company relation field
  5. Complete the remaining mapping
  6. Review errors and confirm

Grovana will automatically link each child record to the matching parent.

Step 7: Verify the Import

After importing:

  1. Open a few child records (e.g., People)
  2. Verify the relation field shows the correct parent (e.g., Company)
  3. Open a parent record and check the related records section

Common Mistakes to Avoid

Mistake Problem Solution
Wrong import order Importing People before Companies Always import parents first, then children
Wrong domain format Using acme.com instead of https://acme.com Use full URL format with https://
Multiple unique fields Mapping both companyId AND companyDomain Map only ONE unique identifier
Missing relation field The relation field doesn't exist in the data model Create it in Settings → Data Model before importing
Non-existent records The parent record doesn't exist in Grovana Import parent records first, or check for typos
Case mismatch Acme.com in file but acme.com in Grovana Ensure exact case matching

Linking to Workspace Members

When linking to Workspace Members (your team):

taskName,assignedTo
Follow up with client,[email protected]
Review proposal,[email protected]

FAQ

What if my parent record doesn't have a domain or email?

You have two options:

  1. Use the Grovana id (export parent records to get their IDs)
  2. Create a custom unique field in your data model to store an external ID from your previous system
Can I update relations on existing records?

Yes! Include the child record's unique identifier (e.g., email for People) and the new relation value. The import will update the relation.

Can I import Many-to-Many relationships?

Many-to-Many relations are not yet supported for import. This is planned for H1 2026.

Can I link to multiple object types (like Notes to People AND Companies)?

Relations pointing to multiple object types are not yet supported for import/export. This is on our roadmap.

What happens if a parent record doesn't exist?

The import will show an error for that row. You can either:

  • Import the parent record first, then re-import
  • Fix the reference value
  • Remove the row from import
Why is my relation not linking correctly?

Common causes:

  • Wrong format (use https://domain.com for domains)
  • Case mismatch (check exact spelling)
  • Parent doesn't exist (import parents first)
  • Mapping multiple identifiers (use only one)

Warning

Remember: Soft-deleted records count toward uniqueness.

If you're getting "not found" errors but the record seems to exist, check Command Menu → See deleted records. The parent may have been soft-deleted.

Troubleshooting

Having issues? Check: