> For the complete documentation index, see [llms.txt](https://prohelp.assetpanda.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://prohelp.assetpanda.com/tools/import/import-spreadsheet-notes.md).

# Import spreadsheet notes

This topic explains how to format your spreadsheet data so it imports correctly into Asset Panda Pro. Before importing, confirm that the values in your spreadsheet match the formats described here for each field type. Most import errors are caused by formatting mismatches.

***

## Formatting notes

* **Supported file types:** CSV (.csv) and Excel (.xlsx)
* **Header row:** Your spreadsheet must include a header row with column names that match the field names in your collection. You can choose which row (1–10) contains your headers during the import process.
* **Required fields:** Any field marked as required in your collection must be included in your spreadsheet and have a value in every row.
* **System fields:** System-generated fields (such as Created Date or Modified Date) cannot be updated through imports.

***

## Date & Time fields

Date fields are one of the most common sources of data import errors. To avoid issues, your spreadsheet dates must match the **Date format** configured for the field in your collection.

To check your field's date format, access the field's settings and review the **Date format** setting.

### Supported date formats

| Asset Panda Pro Date format | Spreadsheet Format                         | Example                                      |
| --------------------------- | ------------------------------------------ | -------------------------------------------- |
| MM-DD-YYYY                  | <p>MM/DD/YYYY<br>MM/D/YYYY<br>M/D/YYYY</p> | <p>03/15/2024<br>02/5/2025<br>3/15/2026</p>  |
| MM-DD-YYYY                  | <p>MM-DD-YYYY<br>MM-D-YYYY<br>M-D-YYYY</p> | <p>03-15-2024<br>02-5-2025<br>3-15-2026</p>  |
| DD-MM-YYYY                  | <p>DD/MM/YYYY<br>D/MM/YYYY<br>D/M/YYYY</p> | <p>15/03/2024<br>5/02/2025<br>15/3/2026</p>  |
| DD-MM-YYYY                  | <p>DD-MM-YYYY<br>D-MM-YYYY<br>D-M-YYYY</p> | <p>15-03/-2024<br>5-02-2025<br>15-3-2026</p> |

{% hint style="info" %}

* If your spreadsheet does not support a listed date format, you can format the cells at Text in the spreadsheet and enter the date in a supported format.
* If your field expects MM-DD-YYYY but your spreadsheet has DD-MM-YYYY, the values may be swapped. For example, 03/05/2024 could be read as May 3rd instead of March 5th during the import.
  {% endhint %}

### Input types

Based on the date field's **Input type**, you may need to provide a date, a time, or both:

* **Date only**: Enter only the date in the format configured on the field. For example:  `03/15/2024`
* **Date & Time**: You **must** enter both the date and the time (in 12-hour format with AM/PM). For example: `03/15/2024 02:30:00 PM`
* **Time only**: Enter the time in 12-hour format (with AM/PM) or 24-hour format. For example:  `02:30:00 PM` or `14:30:00`

{% hint style="info" %}
The import uses the timezone from your user profile to process dates. Make sure your profile timezone is set correctly before importing, especially if your spreadsheet contains times.
{% endhint %}

***

## Currency fields

Currency values should be entered as numbers. You can optionally include a currency symbol at the beginning.

#### Accepted formats

| Format             | Example                        | Valid? |
| ------------------ | ------------------------------ | ------ |
| Plain number       | `1234.56`                      | Yes    |
| With symbol        | `$1,234.56` / `£100` / `€0.99` | Yes    |
| Negative value     | `-$50.25`                      | Yes    |
| Text currency code | `USD 100`                      | **No** |
| Trailing text      | `1,234.56 USD`                 | **No** |

#### Currency rules

* **Currency symbols only**: You can use symbols, such as  `$`, `£`, `€`, `¥`, or `₹`. Text codes (for example, USD or GBP) are not supported.
* **Thousands separators**:  Commas can be used to groups of three digits (for example, `1,234,567`). Spaces or periods are not supported.
* **Decimal separators**: Period (.) is the only supported decimal separator.

***

## Phone number fields

Phone numbers can be entered in several common formats.

{% hint style="info" %}
If you are using the native CSV import (not OneSchema), phone numbers are accepted in any format.
{% endhint %}

| Format             | Example         |
| ------------------ | --------------- |
| Digits only        | `5551234567`    |
| With dashes        | `555-123-4567`  |
| With dots          | `555.123.4567`  |
| With parentheses   | `(555)123-4567` |
| With plus sign     | `+5551234567`   |
| With country codes | `+15551234567`  |

{% hint style="warning" %}
You should avoid spaces between digit groups (for example, `555 123 4567`) or full contry codes with spaces (for example, `+1 555 123 4567`).
{% endhint %}

***

## Pull From fields (Parent/Child Relationships)

Pull From fields link records in your collection to records in another collection or category. Issues can occur when importing into these fields.

### Pull From field types

When you configure a **Pull from another collection** field, two types of fields are created:

* **Primary (parent) field**: The main lookup field that contains the value the system uses to find the matching record in the related collection.
* **Secondary (child) fields**: The additional fields that automatically populate with data from the matched record. You do not need to enter these values manually because they are populated after the primary field finds a match.

### Import rules for Pull From fields

* **The primary (parent) field is required when importing secondary data.** \
  If you include any secondary (child) fields in your spreadsheet, the primary field must also exist and be filled. The system needs the primary field to identify the related record to look up.
* **You can import the primary field by itself.**\
  If you include only the primary field in your spreadsheet (and exclude the secondary fields), the system will look up the matching record and automatically populate all secondary fields after the import.&#x20;

{% hint style="info" %}
This approach is recommended for most imports.&#x20;
{% endhint %}

* **If you include secondary fields, their values narrow the search.** When both primary and secondary fields are included in the spreadsheet, the import searches for a record in the related collection that matches ALL of the values exactly before updating the record.

{% hint style="info" %}
You can leave secondary field cells blank to avoid having to include them as matches.
{% endhint %}

* **The import lookup must find exactly one matching record. Otherwise, an error is logged:**
  * No match is found: *"pull from collection value does not match with any record"*
  * More than one match is found: *"pull from collection value match with more than one record"*

{% hint style="info" %}
Exact matches are required, so ensure that capitalization, spacing, and punctuation is formatted accurately.
{% endhint %}

* **For category references, the value must match the category name exactly.** \
  If the primary field refers to a category and the value in your spreadsheet does not match any Category value, an error is logged: *"Mapped value does not exist"*

***

## Field types

| Field Type               | How to Format                                                                                                                                                | Example                        |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------ |
| **Text**                 | Any text value (up to 256 characters)                                                                                                                        | `Laptop Model X`               |
| **Long Text**            | Any text value (unlimited length)                                                                                                                            | `Detailed description here...` |
| **Numeric**              | Plain numbers (decimals allowed)                                                                                                                             | `1234.56` or `-42`             |
| **Percent**              | Number with optional % symbol                                                                                                                                | `75` or `75%`                  |
| **Currency**             | Number with optional currency symbol. See [Currency fields](#currency-fields).                                                                               | `$1,234.56`                    |
| **Date & Time**          | See [Date & Time fields](#date-and-time-fields).                                                                                                             | `03/15/2024 02:30:00 PM`       |
| **Email**                | Standard email address                                                                                                                                       | `user@example.com`             |
| **Phone**                | See [Phone number fields](#phone-number-fields).                                                                                                             | `555-123-4567`                 |
| **URL**                  | Full web address                                                                                                                                             | `https://www.example.com`      |
| **Address**              | <p>Single line of text, with commas between street, city, and state (no comma after state)<br><br>Separate columns are not supported for city/state/zip.</p> | `123 Main St, City, ST 12345`  |
| **GPS Coordinates**      | <p>Latitude and longitude separated by a comma (for example, <code>33.4484,-112.0740</code>) <br>Latitude: -90 to 90</p><p>Longitude: -180 to 180.</p>       | `33.4484,-112.0740`            |
| **Single Select List**   | <p>Text that exactly matches one of the predefined options.<br><br>New options are not created during import.</p>                                            | `Active`                       |
| **Multiple Select List** | <p>Options separated by the pipe character (do not use commas). <br><br>Spaces around the pipe are trimmed automatically.</p>                                | `Option A\|Option B\|Option C` |
| **IP Address**           | Standard IPv4 or IPv6 format                                                                                                                                 | `192.168.1.1`                  |
| **Auto-Increment**       | Cannot be updated via import (auto-generated)                                                                                                                | —                              |
| **Link to User**         | Email address of an existing, active user. The email search is not case sensitive.                                                                           | `john@company.com`             |

***

## Common import errors

| Error Message                                                            | What It Means                                                                                   | How to Fix                                                                                                                        |
| ------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| *"Invalid date format. Please use the format \[format] for this column"* | The date in your spreadsheet doesn't match the format configured on the field.                  | Check the field's **Date format** setting and adjust your spreadsheet to match.                                                   |
| *"Primary field: \[name] is not mapped"*                                 | You included a secondary (child) Pull From field but didn't map the primary (parent) field.     | Add the primary field column to your spreadsheet, or remove the secondary field columns.                                          |
| *"pull from collection value does not match with any record"*            | The value you entered for a Pull From field doesn't match any record in the related collection. | Verify the value exists in the related collection. Check for typos, extra spaces, or capitalization differences.                  |
| *"pull from collection value match with more than one record"*           | Multiple records in the related collection match your Pull From value.                          | Add more specific secondary field values to narrow the search, or make the primary field values unique in the related collection. |
| *"Mapped value does not exist"*                                          | A category reference value doesn't match any existing category.                                 | Check that the category name is spelled exactly as it appears in the system.                                                      |
| *"Multiple records found matching field"*                                | During an update import, the identifier field matched more than one existing record.            | Use a more unique identifier field, or clean up duplicate values in your collection.                                              |
| *"No records matching duplicate field(s) found"*                         | During an update import, no existing record was found matching the identifier field value.      | Verify the identifier value exists in the collection. It must be an exact match.                                                  |
| *"No user found"*                                                        | A Link to User field value doesn't match any active user's email address.                       | Check that the email address belongs to an active (non-deleted) user in the module.                                               |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://prohelp.assetpanda.com/tools/import/import-spreadsheet-notes.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
