All Collections
Getting Started
Importing your contacts from a spreadsheet
Importing your contacts from a spreadsheet

Sheep has an easy to use import system. Here's how it works

James Scholes avatar
Written by James Scholes
Updated over a week ago

If you have a number of contacts you wish to add to Sheep, you can fill in an import file and upload it directly.

When importing contacts, we recommend you import people and organisations separately.

Importing People

First, you'll need the import template, which provides the column headings required for the import. From any page, click the +  in the top navigation bar, then select "People" from the Bulk Upload section

Download the template and open it in your preferred spreadsheet application (e.g. Excel, Numbers, LibreOffice Calc)

Standard template

Sheep uses these standard field headings:

title: text field  (e.g. Mr, Mrs, Rev)
first name: text field (e.g. Joe, John, Mary Jane)
last name: text field (e.g. Smith, Jones)
email: email  or email;type - accepts multiple (e.g.,;home,;work)
telephone: telephone  or telephone;type  - accepts multiple (e.g. 01234 567 890, 01234 567 890;home, 07720 123 456;mobile)
address_lines: text field - accepts multiple (e.g. The Manor, 1 Straight Street)  
locality: text field - use for village, town, city in UK context (if missing will be auto populated from UK postcode)
region: text field  - use for county in UK context (if missing will be auto populated from UK postcode)
postal_code: text field - use for postcode / zip code
country: text field - please use ISO country codes when known
job_title: text field
date_of_birth: date field - YYYY/MM/DD  preferred but most variations accepted
gender: text field - standard values: 'F', 'M', 'Unspecified' or a text string
website: text field - website url with or without http(s)://
tags: text field - accepts multiple, always stored in lower case (e.g. import dec 2019, donor, vip)
connections: organisation  or organisation;connection type  - accepts multiple (e.g. Widget Corp or Widget Corp;Manager) Note any organisation not already found in Sheep will be created as an new contact (name only)

Where a field accepts multiple values, use numbered dot notation, starting at 1, e.g. email.1, email.2, email.3

Advanced template

It is possible to download an advanced template with many additional fields available. Please note some of these fields are designed to update based on actions performed in Sheep and may not be accepted as part of an upload. If a field is not listed below please do not use it in your upload.

abilities: text field - accepts multiple - used as part of the Staffing pack
adult: boolean field
anniversary: date field - use for tracking any significant anniversary e.g. wedding date
authorised_pickup: text field - used as part of the Children pack
bio: text field - can also be populated using Contact enrichment
colour: RGB hex field - used as part of the Staffing pack (e.g. #1a2b3c)
comms_permission: DEPRECATED - please use GDPR consents
date_of_death: date field - use for recording deceased contacts who still have pertinent information attached
deceased: boolean field - will also be set to True  by setting date_of_death
driving_licence: enum field - one of not-required , requested , verified - used as part of Staffing pack
editable_formatted_name: text field - overrides generated formatted_name field
editable_salutation: text field - overrides generated salutation
email_opt_out: boolean field - set to True  if contact has specifically requested no email contact, however please consider using GDPR consents instead
emergency_contact_details: text field
emergency_contact_details_2: text field
expertise: text field
external_photo_url: url field - can be used to link an external image to a contact which will be saved in photo
facebook_username / instagram_username / twitter_username / linkedin_public_profile / skype_username: text fields
geo: lat;long  - used if contact address does not generate an accurate map
initial: text field - used for a middle initial or initials
interests: text field - accepts multiple - available front-end options are driven from a setting in Sheep, but field will accept any valid text string
known_as: text field - used if contact has a commonly used name that is different to their given name
language: text field
legacy_uid: text field - useful if multiple partial imports are expected. Sheep will attempt to match a legacy_uid and update before creating a new record
name_suffix: text field (e.g. OBE, CBE)
notes: DEPRECATED please use Journals
photo: DO NOT USE please use external_photo_url instead
photo_required: boolean field - used as part of the Staffing pack
school_year_modifier: numeric field - used as part of the Schools and Children pack - modifier added to calculated school year based on child age
sen: text field - used as part of the Schools and Children pack - If a child has Special Education Needs, details can be stored here
source: DEPRECATED please use Provenance instead
uri: Unique SheepCRM ID. Used if updating records from an import. Sheep will match and update a given uri or return an error if the record cannot be found


Boolean fields will accept any sane 'truthy' or 'falsy' value, e.g. True, yes , Y, 1 (or false, No, n, 0)
Fields accepting multiple values can also be passed a comma separated list of values. Tags could be under the heading tags as 'hello, goodbye, eggman, walrus'  or entered more formally as tags.1  = hello , tags.2  = goodbye
In the case where an import is designed to update a record using the comma separated list will replace all the previous values. Using dot notation can replace specific items. To add new values to a field, use dot notation starting at a sufficiently high number to avoid a collision, e.g. tags.101 = new tag

Did this answer your question?