> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rescueconsole.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Import

> Bring animals, people, donations, events and organizations across from a spreadsheet, and check exactly what will be created first.

Open **Settings → Data & customization → Import** to bring a spreadsheet across. Nothing is created until you have seen exactly what the file will do: you choose a file, say which column is which, check it, and only then import it.

The tabs across the top choose what the file holds. One file is one kind of record.

| Tab               | One row is                                               |
| ----------------- | -------------------------------------------------------- |
| **Animals**       | One animal.                                              |
| **People**        | One person.                                              |
| **Donations**     | One gift.                                                |
| **Events**        | One event on the calendar.                               |
| **Organizations** | One organization: a vet practice, a shelter, a supplier. |

## Who can import

You need **Change** on the workspace the records belong to: Animals for animals, People for people, Fundraising for donations, Shifts for events, and Organizations for organizations. Without it, the tab says you need permission to add those records before you can import them, and points you to [Export](/settings/export) instead.

## Choose a file

The file must be a CSV with a header line: the first line names the columns and every line under it is one record. Line numbers in every message count the header as line 1, so line 2 is your first record, the same number your spreadsheet shows beside it.

Press **Choose a CSV file**. The button then shows the file's name and how many rows it has; press it again to choose another.

A single import takes at most 2,000 rows (1,000 for events). Split a bigger file and import it in parts.

## Which column is which

Once a file is chosen, the **Which column is which?** card lists every field this kind of record can take, each with a drop-down of your file's column headings. RescueConsole fills them in by guessing from your headings.

Check every guess. A wrong column does not fail: it imports the wrong values. A field marked with a star must be matched before you can go on, and until it is, the card says which column to choose. A field you leave on **Not in this file** is left blank on every record.

## Check the file

Press **Check the file**. It runs the whole import without saving anything and shows one of two cards.

* A card such as **3 rows need fixing**: *Nothing has been created.* Each problem is listed with its line number and what is wrong, the first 50 of them. Fix them in your spreadsheet, save it, and choose the file again.
* **Ready**: how many records will be created from how many rows, how many are already here and will be left untouched, and a table of the first ten records as they will be saved, each with its line number.

The **Import** button only works after a check that came back **Ready**, and it says how many records it will create: **Import 42 animals**. Press it to create them. The **Done** card then says how many were created.

An import is all or nothing. If any row has a problem, no row is created, so a file is never left half imported.

## Records already here

Importing never changes a record you already have. A row that matches one is skipped and the existing record is left exactly as it is, even if the file says something different. What counts as a match depends on the kind of record:

| Kind          | Matched on                                                                                                                           |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| Animals       | The **Pet ID**. Two animals with the same name and no Pet ID are two animals.                                                        |
| People        | The **Email**, whatever its capitals. Someone you have deleted still counts as here, so an old spreadsheet does not bring them back. |
| Donations     | The **Reference** only. Nothing is matched on donor, amount or date.                                                                 |
| Events        | Nothing. Every row is created.                                                                                                       |
| Organizations | The **Name**, whatever its capitals. Archived organizations count as here.                                                           |

The same Pet ID, email, reference or organization name twice inside one file is a problem to fix, and the message names the other line.

<Warning>
  A donations file with no **Reference** column, and any events file, cannot recognize what you already have. Importing the same file twice records every gift, or puts every event on the calendar, a second time. The **Ready** card says so before you import.
</Warning>

## Animals

Only **Species** is required. Anything you do not match is left blank.

| Field                | What it takes                                                                                                                                                                   |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Species**          | Required.                                                                                                                                                                       |
| **Name**             | The animal's name.                                                                                                                                                              |
| **Breed**            | The breed.                                                                                                                                                                      |
| **Sex**              | `male`, `female` or `unknown`, in any capitals.                                                                                                                                 |
| **Date of birth**    | A date.                                                                                                                                                                         |
| **Intake date**      | A date. A blank intake date becomes the day of the import.                                                                                                                      |
| **Status**           | One of your organization's animal statuses. A status it does not know is refused, and the message lists the ones your organization uses. A blank status gets your first status. |
| **Pet ID**           | Your ID for the animal. This is what recognizes an animal you already have.                                                                                                     |
| **Microchip**        | The microchip number.                                                                                                                                                           |
| **Description**      | The description.                                                                                                                                                                |
| **Adoption fee**     | An amount, such as `150` or `$150.00`. Zero or more.                                                                                                                            |
| **Photo links**      | Web links to photos, up to 10 in one cell. See [Photos and attachments](#photos-and-attachments).                                                                               |
| **Attachment links** | Web links to documents, up to 10 in one cell.                                                                                                                                   |

Imported animals are private until you publish them, so nothing goes onto your public page. No workflow starts for an imported animal.

## People

A row needs at least a **first name, last name or email**. A donation export is often nothing but an email column, and that is enough.

| Field                         | What it takes                                                                                                      |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **First name**, **Last name** | The person's names.                                                                                                |
| **Email**                     | An email address. This is what recognizes someone you already have.                                                |
| **Phone**                     | A phone number. Spaces, brackets and dashes are removed and the digits kept.                                       |
| **Phone country code**        | The calling code as digits, like `1` for the US or `44` for the UK. A country name such as `US` is refused.        |
| **Roles**                     | Any of `adopter`, `donor`, `volunteer` and `foster`, separated by commas or semicolons. Any other word is refused. |
| **Status**                    | `active`, `inactive` or `archived`. Blank means active.                                                            |
| **Title**, **Suffix**         | Such as Dr. or Jr.                                                                                                 |
| **Photo link**                | One web link to the person's photo.                                                                                |

## Donations

**Amount** and **Date** are required. Match the **Reference** column if your export has one: it is your payment processor's own ID for the gift, and it is the only thing that lets a second import recognize a gift it has already recorded.

| Field              | What it takes                                                                                                                                                           |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Amount**         | Required. More than zero, such as `25` or `$1,234.56`.                                                                                                                  |
| **Date**           | Required. The day of the gift.                                                                                                                                          |
| **Donor email**    | The donor's email. It must belong to someone already in **People**, or the row is refused: import your people first, or clear the cell to record the gift as anonymous. |
| **Campaign**       | The name of a campaign you already have. A name that matches none is refused.                                                                                           |
| **Reference**      | Your payment processor's ID for the gift.                                                                                                                               |
| **Type**           | `one_time`, `recurring`, `post_adoption_bump` or `upsell`. Blank means one\_time.                                                                                       |
| **Status**         | `pending`, `completed`, `failed` or `refunded`. Blank means completed.                                                                                                  |
| **Payment method** | `stripe`, `paypal`, `square`, `zelle`, `cashapp`, `venmo` or `other`.                                                                                                   |
| **Currency**       | A currency code such as `usd`. Blank means usd.                                                                                                                         |

The **Ready** card also gives the total of the gifts about to be created. Check it against your own records before you import: a wrong amount column shows up there first.

## Events

**Name** and **Starts** are required.

| Field           | What it takes                                                                                                                                    |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Name**        | Required. Up to 200 characters.                                                                                                                  |
| **Starts**      | Required. A date alone, like `2026-04-11`, makes an all-day event. A date and a time, like `2026-04-11 10:00`, makes a timed one.                |
| **Ends**        | The same form as **Starts**: both dates, or both dates and times. It cannot be before the start.                                                 |
| **Kind**        | `adoption`, `fundraiser`, `clinic`, `transport`, `training`, `meeting`, `events` or `other`.                                                     |
| **Status**      | `draft`, `scheduled`, `active`, `completed` or `cancelled`. Blank means scheduled.                                                               |
| **Location**    | The name of one of your locations. A name that matches none is refused: add it under **Settings → Organization → Locations**, or clear the cell. |
| **Description** | The description.                                                                                                                                 |

The **Ready** card says how many of the events have no time and will be imported as all-day events. If that is every row when your calendar has times, the start column lost its times in the export.

## Organizations

**Name** is required.

| Field                                                      | What it takes                                                                                                                                                                                                                                                                |
| ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**                                                   | Required. This is what recognizes an organization you already have.                                                                                                                                                                                                          |
| **Kind**                                                   | Written the way your spreadsheet says it, such as Vet, Animal control or Supplier, and matched to a kind: `veterinary_practice`, `rescue`, `shelter`, `supplier`, `employer`, `government` or `other`. A word that matches none is refused with the list. Blank means other. |
| **Email**                                                  | An email address.                                                                                                                                                                                                                                                            |
| **Phone**                                                  | A phone number.                                                                                                                                                                                                                                                              |
| **Website**                                                | A web address. `example.org` is read as `https://example.org`.                                                                                                                                                                                                               |
| **Address**, **City**, **State / region**, **Postal code** | The address.                                                                                                                                                                                                                                                                 |
| **Country**                                                | A two-letter code, like `US` or `GB`.                                                                                                                                                                                                                                        |
| **Relationship**                                           | `prospect`, `active_client`, `past_client`, `partner`, `supplier` or `competitor`. Common words such as active, former and vendor are matched too.                                                                                                                           |
| **Industry code**                                          | A NAICS or SIC code, up to 12 characters.                                                                                                                                                                                                                                    |
| **Industry**                                               | The industry, in words.                                                                                                                                                                                                                                                      |
| **Notes**                                                  | Anything else.                                                                                                                                                                                                                                                               |

## Dates and amounts

A date is read as `2026-04-11` or as `4/11/2026`, month first. A time can follow a date for an event's **Starts** and **Ends**. A date written any other way is not read: a date that is not required is left blank, and a required one is refused.

An amount can carry a dollar sign and thousands commas. An amount in brackets, `(12.34)`, is read as negative.

## Photos and attachments

An animal's **Photo links** and **Attachment links**, and a person's **Photo link**, are web links that RescueConsole fetches after the import. A cell can hold several links for an animal, separated by spaces, semicolons, `|` or new lines. Commas do not separate links.

A link must start with `https://` or `http://`, name a website rather than an IP address, and open without a login. A link that breaks these rules is refused at the check, with the line. One import fetches at most 2,000 links.

After the import, the **Done** card shows **Photos and attachments** arriving. You can leave the page: whatever is left is fetched in the background within a few minutes. A link that could not be fetched is listed with its line number, the link and the reason. Add that photo or file on the record by hand.

## What cannot be undone

The Import page has no undo. Once **Import** is pressed, the records exist like any other: to take one away, delete it from its own list or record. This is why the check comes first, and why the **Import** button waits for it.
