# Importing into Bento

You've exported your data—now let's bring it into Bento! This guide walks you through importing your contacts, preserving their status, and maintaining all your tags and custom fields. 


  Take your time with imports. It's better to import correctly once than to clean up mistakes later. Most imports take 15-30 minutes.


## Before You Begin

<div className="grid grid-cols-1 sm:grid-cols-2 gap-6 mb-8">
  <div>

    ### What You'll Need

     Exported CSV files from your previous platform <br />
     Separate files for active and unsubscribed contacts<br />
     Access to your Bento account<br />
     30 minutes of uninterrupted time<br />

  </div>
  <div>

    ### Import Order Matters

    1. **Create custom fields first** (if needed)
    2. **Import unsubscribed contacts**
    3. **Import active contacts**
    4. **Verify everything imported correctly**
    5. **Test with a few email addresses**

  </div>
</div>


> **Download Sample CSV**: Start with our sample CSV file to understand the exact format Bento expects. This template shows proper column naming and data formatting.


## Bento's CSV Format

### Required Fields

Only one field is absolutely required:

| Field   | Format              | Example          | Notes                               |
|---------|---------------------|------------------|-------------------------------------|
| `email` | Valid email address | john@example.com | Primary identifier for each contact |


  There is currently no way to customize or change email as the primary identifier.


### Common Optional Fields

Add these columns to enrich your contact data:

| Field          | Format          | Example           | Purpose                      |
|----------------|-----------------|-------------------|------------------------------|
| `first_name`   | Text            | John              | Personalization              |
| `last_name`    | Text            | Doe               | Full name display            |
| `tags`         | Comma-separated | customer,vip,2024 | Organization & segmentation  |
| `created_at`   | ISO date        | 2024-01-15        | Historical data              |
| `subscription` | Text            | Pro Plan          | Data Enrichment in Templates |


> ⚠️ **Warning**
> All custom field names must be **lowercase** and use **underscores** instead of spaces. For example: `company_name` not `Company Name`.


### Special Columns

These columns have specific behaviors:

| Column         | Purpose              | Format                     | Example                   |
|----------------|----------------------|----------------------------|---------------------------|
| `tags`         | Add tags to contacts | Comma-separated, no spaces | `customer,newsletter,vip` |
| `remove_tags`  | Remove existing tags | Comma-separated, no spaces | `prospect,trial`          |
| `tag_as_event` | Trigger automations  | true/false                 | `true`                    |


> Setting `tag_as_event` to `true` creates an event for each tag, which can trigger Flows. Leave it empty or set to `false` for normal tag imports.


## Step-by-Step Import Process

div]:mb-3">
  <Timeline.Item title="1. Prepare Your Custom Fields">
    <p className="mb-4">Before importing, create any custom fields your data uses:</p>
    <ol className="list-decimal ml-6 space-y-2">
      <li>Go to `People → Fields` in Bento</li>
      <li>Click <strong>Add Field</strong></li>
      <li>Give it a friendly name for example: Subscription Status (spaces and capitals are ok here)</li>
      <li>For the Key enter exactly as it appears in your CSV (lowercase, underscores)</li>
      <li>Choose the appropriate field type (text, number, date)</li>
      <li>Save each field</li>
    </ol>
    
      Some examples of common fields you might create: company_name, phone_number, customer_id, signup_source
    
  </Timeline.Item>

  <Timeline.Item title="3. Import Active Contacts">
    <p className="mb-4">Always import **Active** subscribers first:</p>
    <ol className="list-decimal ml-6 space-y-2">
      <li>Navigate to `People` and click the `Import` Button in the upper right</li>
      <li>Select the `Import CSV` button</li>
      <li>Click `Next` then Select **Subscribe Users** from the select command dropdown</li>
      <li>Make sure you select all the fields you created in step 1</li>
      <li>Leave <strong>"Mark as unsubscribed"</strong> unchecked</li>
      <li>Map columns (should auto-detect if named correctly)</li>
      <li>Verify tag formatting looks correct</li>
      <li>Click <strong>Import</strong></li>
    </ol>
    
> Large imports process in the background. You'll receive an email when complete.

  </Timeline.Item>

  <Timeline.Item title="2. Import Unsubscribed Contacts First">
    <p className="mb-4">Always import unsubscribed contacts before active ones:</p>
    <ol className="list-decimal ml-6 space-y-2">
      <li>Navigate to <strong>People → Import</strong></li>
      <li>Select your unsubscribed contacts CSV</li>
      <li>Check <strong>"Mark as unsubscribed"</strong> option</li>
      <li>Map your columns to Bento fields</li>
      <li>Review the preview carefully</li>
      <li>Click <strong>Import</strong></li>
    </ol>
    
> 🚨 **Important**
> This includes bounced, blocked, and complaint contacts. Importing them as unsubscribed prevents accidental emails.

  </Timeline.Item>

  <Timeline.Item title="4. Verify Your Import">
    <p className="mb-4">Check that everything imported correctly:</p>
    <ul className="list-disc ml-6 space-y-2">
      <li>Total contact count matches your expectations</li>
      <li>Search for a few known contacts</li>
      <li>Verify tags appear correctly</li>
      <li>Check custom fields populated</li>
      <li>Confirm unsubscribed status preserved</li>
    </ul>
  </Timeline.Item>


---

## CSV Formatting Examples

### ✅ Correct Format
| email            | first_name | last_name | tags                 | company_name |
|------------------|------------|-----------|----------------------|--------------|
| john@example.com | John       | Doe       | customer, vip        | Acme Corp    |
| jane@example.com | Jane       | Smith     | prospect, newsletter | Tech Inc     |

### ❌ Common Mistakes
| Email Address     | First Name | Last Name | Tags                   | Company Name |
|-------------------|------------|-----------|------------------------|--------------|
| john@example.com  | John       | Doe       | customer, vip          | Acme Corp    |
| jane@example.com  | Jane       | Smith     | prospect, newsletter   | Tech Inc     |


> 🚨 **Important**
> Don't use **semicolons (;)** and **pipes (|)** as tag delimiters, which isn’t standard for CSV files.<br /> Column names should match the **sample csv file**, be all lower case and use an underscore (_) in place of spaces. <br /> Importantly you must match formatting for things like names for Stripe integrations so you do not have multiple versions of a contact's name.


  
    **Problems with the incorrect example:**
    - Column headers use capitals and spaces
    - Tags separated by semicolons instead of commas
    - Inconsistent tag separators
  
  
    **The correct format uses:**
    - Lowercase column names with underscores
    - Commas to separate multiple tags
    - No spaces between tags
  


---

## Advanced Import Options

### Triggering Automations on Import

To have tags trigger Flows during import:

| email            | tags           | tag_as_event |
|------------------|----------------|--------------|
| john@example.com | welcome_series | true         |
| jane@example.com | customer       | false        |


> Only use `tag_as_event` if you want to trigger automations immediately. For most imports, leave this column out.


### Updating Existing Contacts

When importing contacts that already exist in Bento:

- **Email matches**: Existing contact is updated
- **New fields**: Added to the contact
- **Existing fields**: Overwritten with new values
- **Tags**: Added (not replaced) unless using `remove_tags`

### Removing Tags During Import

To remove tags while importing:

| email            | tags     | remove_tags          |
|------------------|----------|----------------------|
| john@example.com | customer | vip, trial, prospect |

This adds "customer" and "vip" while removing "trial" and "prospect".

## Troubleshooting Common Issues


## Import Best Practices

<div className="grid grid-cols-1 md:grid-cols-2 gap-6 my-8">
  
    
      
        
        Do This
      
    
    
      <ul className="space-y-2">
        <li>• Test with 10-100 contacts first</li>
        <li>• Create custom fields before importing</li>
        <li>• Import unsubscribes before active contacts</li>
        <li>• Use our sample CSV as a template</li>
        <li>• Keep original export files as backup</li>
        <li>• Verify data after each import</li>
      </ul>
    
  

  
    
      
        
        Avoid This
      
    
    
      <ul className="space-y-2">
        <li>• Importing all contacts in one file</li>
        <li>• Using spaces in field names</li>
        <li>• Mixing active and unsubscribed contacts</li>
        <li>• Rushing without checking formatting</li>
        <li>• Deleting original exports too soon</li>
        <li>• Ignoring import error reports</li>
      </ul>
    
  
</div>

## After Successful Import

Once your contacts are in Bento:

div]:mb-3">
  <Timeline.Item title="Set Up Segments">
    <p>Recreate your dynamic segments using Bento's powerful filtering:</p>
    <ul>
      <li>Go to People → Segments</li>
      <li>Use tags, fields, and behavior to build segments</li>
      <li>Test each segment shows expected contacts</li>
    </ul>
  </Timeline.Item>

  <Timeline.Item title="Configure Flows">
    <p>Rebuild your automations as Bento Flows:</p>
    <ul>
      <li>Start with welcome sequences</li>
      <li>Add abandoned cart flows</li>
      <li>Set up re-engagement campaigns</li>
    </ul>
  </Timeline.Item>

  <Timeline.Item title="Test Everything">
    <p>Before going live:</p>
    <ul>
      <li>Send test emails to yourself</li>
      <li>Verify personalization works</li>
      <li>Check unsubscribe links function</li>
      <li>Test form submissions</li>
    </ul>
  </Timeline.Item>


## Quick Reference

### Import Checklist

Before starting any import:

<Checklist items={[
  'CSV saved in UTF-8 format',
  'Column headers are lowercase with underscores',
  'Email addresses validated',
  'Tags formatted with commas, no spaces',
  'Custom fields created in Bento',
  'Unsubscribed contacts in separate file',
  'Test file with 10 rows ready'
]} />

### Field Naming Cheat Sheet

| ❌ Incorrect  | ✅ Correct    |
|--------------|--------------|
| First Name   | first_name   |
| Company Name | company_name |
| Phone Number | phone_number |
| signupDate   | signup_date  |
| User-ID      | user_id      |
| ZIPCode      | zip_code     |

## Need Help?

If you encounter any issues during import:

- **Email**: support@bentonow.com
- **Discord**: [Join our community](https://discord.gg/ssXXFRmt5F)
- **Import Report**: Check your email for detailed error logs
- **Documentation**: Visit [docs.bentonow.com](https://docs.bentonow.com)


> Our support team specializes in migration assistance. Don't hesitate to reach out—we've helped thousands of businesses switch to Bento successfully.


> ⚠️ **Warning**
> Remember: You can always re-import if something goes wrong. Keep your original export files until you're completely satisfied with the import.