Do you have lots of existing business contacts that you want to include in the shared address book in Exchange Online? Or add your contacts as members of distribution groups, just like you can with users inside your company? If so, you can use Windows PowerShell and a CSV (Comma Separated Value) file to bulk import external contacts into Exchange Online. It’s a three-step process:

Create a CSV file that contains information about the external contacts.

Create the external contacts with PowerShell.

Add information to the properties of each external contact with PowerShell.

Step1: Create a CSV file

Download the sample CSV file posted on the Downloads forum on the Office 365 community site. The sample file is actually a .txt file. So open it in Microsoft Excel, and save it as a CSV file. Use commas as the delimiters.

It includes sample data, which you can delete. But don’t delete the first row. It contains all of the properties for the external contacts. Create a row for each contact that you want to import to Exchange Online. Populate as many of the cells as possible. This information will be displayed in the shared address book for each contact.

However, the following parameters (which are the first four columns in the sample CSV file) are required to create an external contact and must be populated:

ExternalEmailAddress

Name

FirstName

LastName

When you’re finished preparing the CSV file, copy it to your desktop. Name it ExternalContacts.csv.

Note: This command assumes that you are in the desktop directory in PowerShell. For example, C:\Users\Administrator\desktop.

To view the new external contacts, in the Exchange Control Panel, click Users & Groups > External Contacts > Refresh. They also appear in the shared address book in Outlook and Outlook Web App.

Step 3: Add information to the properties of the external contacts

After you run the command in step 2, the external contacts are created, but they don’t contain any of the contact or organization information, which is the information from the most of the cells in the CSV file).

Run the following commands to add the other properties from the CSV file to the external contacts you created:

Don’t worry if you don’t have all the information populated in the CSV file. If it’s not there, it won’t be added.

Note: The Manager parameter can be problematic. If the cell is blank in the CSV file, you will get an error and none of the property information will be added to the contact. If you don’t need to specify a manager, then just delete –Manager $_.Manager from the previous PowerShell command.

That’s it. You can view the contact properties in the Exchange Control Panel. Users can see the contacts in the address book Outlook and Outlook Web App.

Adding more external contacts

You can repeats steps 1 through 3 to add new external contacts in Exchange Online. You or users in your company can just add a new row in the CSV file for the new contact. Then you can run the PowerShell commands from steps 2 and 3 to create and add information to the properties of the new contacts.

Note: When you run the command to create new contacts, you will get errors saying that the contacts that were created earlier already exist. But any new contact added to the CSV file is created.

Hide external contacts from the shared address book

Some companies may use external contacts only so they can be added as members of distribution groups. In this scenario, they may want to hide external contacts from the shared address book. Here’s how: