Importing and Updating Contacts


When importing Contacts, you have 4 options on the kind of job you can perform:  

  1. Create Contacts
  2. Update Contacts
  3. Add Contacts to Opportunities
  4. Add Contacts to Campaigns 


When choosing the Create Contacts job, users can use any type of CSV they have with any headers - this is particularly helpful when importing data which is an export of another system. Once picking the Create Contact option and selecting the appropriate  CSV file, clicking on next gives a list of Spiro columns available for import. Spiro's out of the box columns available for contact import are:

First Name Single line text. Required
Last Name Single line text. Required 
Email Email - needs to be a valid email format
Title Single line text
Description Multiple line text
Phone Phone field - needs to be in valid Spiro format IE +16175551212
Mobile Phone field - needs to be in valid Spiro format IE +16175551212
Home Phone Phone field - needs to be in valid Spiro format IE +16175551212
Company Phone Phone field - this populates the company level's phone.
Needs to be in valid Spiro format IE +16175551212
Owner (User ID) User Picker -  a reference to the user entity. Required 
External ID Single line text
Company Name Company Picker - a reference to the company entity
Company Website URL - this populates the company's website field. 
Company Address Single line text - this populates the company level's street address
Company City Single line text - this populates the company level's street address
Company State
Single line text - this populates the company level's street address
Company Zipcode Single line text - this populates the company level's street address
Company Country Single line text - this populates the company level's country
Company Description Multiple line text - this populates the company level's description

Additional Considerations:

  • In addition to these default Spiro fields, when importing Contacts the user will also be able to see any custom fields from the contact level as well as from any custom section entities. 
  • Custom Section Entities on the contact level will be loaded with the following format: "Section Entity name Field Name". For example, if you have a section entity called "Additional Contact Information" with a field on it called "Favorite Ice cream", the column header for that field should be: "Additional Contact Information Favorite Ice cream"
  •  It is worth mentioning that the default fields will be named differently depending on the organization setup of display fields (renaming default Spiro columns) 

Once the user does the mapping for all of the fields and continues, they will see the approximate amount of records that will be imported, and import can be started. 

Deduplication based on email

Spiro does not allow for contacts to have a duplicate email address in the system. This allows for the email syncing to behave appropriately. When handling imports, it's totally feasible that a contact might attempt to be loaded that has an email address that matches an existing Spiro contact. In these scenarios, the row will be skipped and contact will not be updated with the data from the CSV row. Also, contact section will not be updated with data from the row

Contacts Relation to Companies

Contacts are the most complex import, due to its relation to Companies as well as the fact that they are not able to stand alone with out a Company. Due to this, there are some rules that need to be followed in order to make sure there are no duplicates and the feature behaves as intended. 

  • When loading contacts, Spiro will check to see if the company exists by matching upon the combination of Company name and Website
  • If the organization already has a company with the same company name, company website or company website matches the domain part of contact email (the part after the @ sign in the email address) as the contact that is trying to be imported, contact will be created but company information will not be updated for the existing company. 
  • Inversely, it may be possible to create duplicates if you are loading a contact and the company's name and website do not match exactly the name and website in Spiro. For example, if you were trying to load a contact that had a value of "Acme" in the company name field, but the company in Spiro is named "Acme Inc", a duplicate company would be created with the contact load.


When updating contacts, users cannot use any CSV they want, they must use CSV provided by Spiro. By provided by Spiro, this means that users can only use files that they got using the export feature. When users select Update Contacts, they see a screen which contains a list of contacts that they usually see by clicking on Contacts Tab in Spiro. In this screen, users can filter contacts they want to update. Once they are satisfied with the query results, they click export and Spiro Engine serves a file for them to download. The file has predefined column names and they should never be changed. All columns that are exported can be updated, except for the columns that in their name have (Read only) suffixed. 

Once the user opens the exported file, makes changes to the file and is satisfied with the changes, they upload the file to the Spiro Web Application. Notice how update contacts does not have the mapping of fields part, because we assume that the user is using the file given by export feature and has not tempered with column names. Every change of column names will cause the field to be ignored during the update. Also, all columns added randomly will be ignored. 

There is one thing worth mentioning in contact update. When performing update contacts, sections will be either created or updated if they already exist. 


 Add Contacts to Campaigns is also an extension of the Create Contact functionality. It behaves exactly like Add Contacts to Opportunity, so for the brevity of the guide consider the guide for Add Contacts to Opportunity to apply to this section as well.