Customers Template

The Customers template for the import/export tools describes your customer accounts and contact information. This data is used to manage orders, subscribed messages, promotional emails, newsletters, and so on. If you are preparing your initial data import for a new Kibo eCommerce tenant, import customers first.

Merchants can also import/export customers with associated customer segments. An option at the top of the attribute selection dropdown will allow you to specify filtering on customer segment information. The export action exports all segments to a file when "customer segment" is selected. The import action updates existing segments and adds any new segments to the Customer Segment page within admin.

Customers template file content with example data

Access the Tools

With the Kibo eCommerce Import-Export Application installed and enabled, go to Main > Customers > Import/Export in Kibo eCommerce Admin.

Supported File Formats

  • CSV (.csv): Each sheet is a separate CSV file. For both imports and exports, sheets are compressed into a ZIP file. When importing, the ZIP file can have any file name but each individual CSV file name must match the export file name and the sheet. You can remove CSV files for data you do not want to import.

These CSV files should not be opened in Excel, as that may cause errors with their formatting. Instead, use a different CSV editing program to make changes to the data.

You should only use the default Windows zipper to zip the files, as using different software may cause errors. You can upload multiple files at once as long as they all are zipped.

Template Key

For each sheet, we define each column and describe valid values for the column. Some values are not required for an import, but are required Kibo eCommerce data. For example, you do not have to specify a customer's FirstName every time you modify the customer account, but all customer accounts require a FirstName when they are created. If you have questions or concerns specific to your data, please contact your integration partner or Kibo Support.

Information Provided for Each Sheet of the Template
Corresponding REST API ResourceEvery column in a sheet corresponds to a property in the Kibo eCommerce REST API. For each sheet, we provide a link to any API resources that contain properties in the sheet.
Column NameThe name of the column in the sheet.
DescriptionA description of the data a column contains.
Valid ValuesLists valid values for the column.

Sheets

Accounts

Corresponding REST API Resource: commerce/customer/accounts

Required With: CustomerContacts

This sheet defines customer accounts within Kibo eCommerce. Customer accounts can be registered shopper accounts or guest accounts. Registered accounts are created through a registration event, typically completed by the customer. Guest accounts are created when a customer chooses not to register. Guest accounts still have account IDs and associated data necessary to fulfill orders.

Column NameDescriptionValid Values
ExternalIdA unique identifier you can use to refer to the customer in import/export operations or the Kibo eCommerce API. Typically, this is a value that is used by an external program to identify a customer in Kibo eCommerce. This value is not exposed in Admin.Any string that is unique among all customer accounts.
AccountIDThe unique identifier for the customer account. Kibo eCommerce automatically generates this value when a customer creates their own account or when you create a new customer account from Admin. This is the same as the Customer Id in other sheets.Any integer that is unique among all customer accounts. Can be the same or different than the Id.
User NameThe username the customer uses to log in to the account.Any string. If empty, the username defaults to the Email.
EmailThe email address associated with the account.Any string. The email address should be unique across all registered customer accounts. A Kibo eCommerce customer cannot create two separate registered accounts linked to the same email address. However, for import operations, you can use the same email address any number of times, provided it is associated with a unique AccountID each time. Also, customers who check out as guests can use the same email address any number of times.
PasswordThe password for the account. Setting a password creates a registered customer account.Any string.
First NameThe first name on the account.Any string.
Last NameThe last name on the account.Any string.
Company Or OrganizationThe company or organization the customer works for.Any string.
Customer SetThe customer set that the customer account belongs to. This field is optional. Each unique customer account can only belong to one customer set. For more information, refer to the Customer Sets topic.The name of the customer set you want to assign the customer account to. The customer set must already exist. You cannot create new customer sets through the Kibo eCommerce Import-Export Application.
Tax ExemptSpecifies whether the account has tax exempt status.A Boolean value, specified as Yes or No.
TaxIdThe tax ID associated with the account.Any string.
Accepts MarketingSpecifies whether the customer has agreed to receive marketing communications.A Boolean value, specified as Yes or No.
Is AnonymousSpecifies whether the customer account is anonymous. If Yes the customer is shopping as a guest and not using a registered account.A Boolean value, specified as Yes or No.
Total Order AmountThe total amount, in the currency specified by LocaleCode, of all orders that have been processed on this account. This value includes cancellations and refunds.Any decimal value.
Total OrdersThe total number of orders that have been processed on this account.Any integer value.
Last Order DateThe date and time at which the last order was placed on this account.A date and time in UTC format.
Last Modified DateThe date and time that the customer account was last edited, either by the customer or by the system.A date and time in UTC format.

Contacts

Corresponding REST API Resource: commerce/customer/accounts/contacts

Required With: CustomerAccounts

This sheet defines the contacts for customer accounts. Contacts include such information as telephone numbers, shipping and billing addresses, and so on. A single customer account can have multiple contacts associated with it.

Column NameDescriptionValid Values
ExternalIdA unique identifier you can use to refer to the customer in import/export operations or the Kibo eCommerce API. Typically, this is a value that is used by an external program to identify a customer in Kibo eCommerce. This value is not exposed in Admin.Any string that is unique among all customer accounts.
AccountIDThe unique identifier for the customer account. Kibo eCommerce automatically generates this value when a customer creates their own account or when you create a new customer account from Admin. This is the same as the Customer Id in other sheets.Any integer that is unique among all customer accounts. Can be the same or different than the Id.
ContactIdThe unique identifier for a specific contact within a customer account. This value is not exposed in Admin.Any string that is unique among all contact IDs on the tenant. Typically, this will be a number. For accounts with only one contact, the ContactID usually matches the AccountID.
TypeThe type of the contact.A string matching one of the following:
  • Shipping
  • Billing
IsPrimarySpecifies whether the contact is the primary contact of the specified Type for the customer account.A Boolean value, specified as Yes or No.
Company Or OrganizationThe company or organization associated with the contact. This can differ from the CompanyOrOrganization on the customer account. For example, a customer with an account from Company X might order a product and ship it to Company Y.Any string.
First NameThe first name for the contact. This can differ from the name on the customer account.Any string.
Middle NameThe middle name or initial for the contact.Any string.
Last NameThe last name or surname for the contact.Any string.
EmailThe email address associated with the contact.Any string. Kibo eCommerce does not validate email addresses.
Fax NumberThe fax number associated with the contact.Any string. You can include spaces and characters.
Home PhoneThe home phone number associated with the contact.Any string. You can include spaces and characters.

For a contact to be valid in Kibo eCommerce, it must include at least one of the following: HomePhone, MobilePhone, or WorkPhone.
Mobile PhoneThe mobile phone number associated with the contact.Any string. You can include spaces and characters.

For a contact to be valid in Kibo eCommerce, it must include at least one of the following: HomePhone, MobilePhone, or WorkPhone.
Work PhoneThe work phone number associated with the contact.Any string. You can include spaces and characters.

For a contact to be valid in Kibo eCommerce, it must include at least one of the following: HomePhone, MobilePhone, or WorkPhone.
Address TypeThe type of the address, such as Residential or Commercial.A string matching one of the following:
  • Residential
  • Commercial
  • None
Address1The first line of the address.Any string. Character limit: 200.
Address2The second line of the address.Any string. Character limit: 200.
Address3The third line of the address.Any string. Character limit: 200.
Address4The fourth line of the address.Any string. Character limit: 200.
City Or TownThe city or town name for the address.Any string.
State Or ProvinceThe state, province, or territory for the address, typically expressed as a two-letter code. For example, TX.Any string. You can enter a location outside the US or Canada.
Postal Or ZipCodeThe postal code or zip code for the address.Any string. This can be a full 9-digit code with a dash or an international postal code.
Country CodeThe 2-letter ISO country code for the address.Any 2-letter country code.
Last Modified DateThe date and time that the contact was last edited, either by the customer or by the system.A date and time in UTC format.

PurchaseOrderAccounts

Corresponding REST API Resource: commerce/customer/accounts/purchaseOrder

This sheet defines purchase order accounts within Kibo eCommerce.

Column NameDescriptionValid Values
ExternalIdA unique identifier you can use to refer to the customer in import/export operations or the Kibo eCommerce API. Typically, this is a value that is used by an external program to identify a customer in Kibo eCommerce. This value is not exposed in Admin.Any string that is unique among all customer accounts.
AccountIDThe unique identifier for the customer account. Kibo eCommerce automatically generates this value when a customer creates their own account or when you create a new customer account from Admin. This is the same as the Customer Id in other sheets.Any integer that is unique among all customer accounts. Can be the same or different than the Id.
EnabledWhether purchase orders are enabled as a payment method for the customer account.Yes or No.
Credit LimitThe total the customer can spend using purchase orders.Any decimal amount.
Overdraft Allowance TypeSpecifies the type and units of the overdraftAllowance amount.Amount — specifies that the overdraft allowance amount is a decimal amount.

Percent — specifies that the overdraft allowance amount is a percentage amount.
Overdraft AllowanceThe total monetary amount or percentage the customer can spend over their purchase order credit limit. The overdraft allowance type controls whether this value is an amount or a percentage.Any decimal amount.
Available BalanceThe available balance the customer has on their purchase order account. This balance is the result of the credit limit minus the customer's total amount due.Any decimal amount.

PurchaseOrderPaymentTerms

Corresponding REST API Resource: commerce/customer/accounts/purchaseOrder

This sheet allows you to assign payment terms within a site to specific customer accounts.

Column NameDescriptionValid Values
ExternalIdA unique identifier you can use to refer to the customer in import/export operations or the Kibo eCommerce API. Typically, this is a value that is used by an external program to identify a customer in Kibo eCommerce. This value is not exposed in Admin.Any string that is unique among all customer accounts.
AccountIDThe unique identifier for the customer account. Kibo eCommerce automatically generates this value when a customer creates their own account or when you create a new customer account from Admin. This is the same as the Customer Id in other sheets.Any integer that is unique among all customer accounts. Can be the same or different than the Id.
SiteIdThe unique identifier for a site.Any number. This number must be unique among your sites.
Site NameThe name of a site.Any string.
CodeUser-defined code that uniquely identifies the payment term.Any string.

PurchaseOrderTransactions

Corresponding REST API Operation: GetCustomerPurchaseOrderTransactions

This sheet defines purchase order transactions for customer accounts.

Column NameDescriptionValid Values
AccountIDThe unique identifier for the customer account. Kibo eCommerce automatically generates this value when a customer creates their own account or when you create a new customer account from Admin. This is the same as the Customer Id in other sheets.Any integer that is unique among all customer accounts. Can be the same or different than the Id.
Site NameThe name of a site.Any string.
Order NumberThe order number that the customer sees on the storefront when they place the order.Any integer that is unique among all order numbers.
Order TypeSpecifies how the order was placed.Either Offline or Online.
Purchase Order NumberA unique identifier for the purchase order.Any alphanumeric string.
Transaction AmountThe amount of the purchase order transaction.Any decimal value. A positive value increases the customer's available balance, while a negative number decreases the available balance.
Transaction Type IdA number that identifies the type of transaction and displays it within the purchase orders transaction log.The following list describes the types of transactions each number corresponds to:

1 — Line of Credit Change

2 — Payment Requested

3 — Payment Collected

4 — Payment Voided

5 — Payment Refund

6 — Manual Adjustment
Transaction DescriptionThe string that describes the transaction type in the purchase orders transaction log.This field is read-only and corresponds to the transaction type ID:

1 — Line of Credit Change

2 — Payment Requested

3 — Payment Collected

4 — Payment Voided

5 — Payment Refund

6 — Manual Adjustment
AuthorThe author of the purchase order transaction.A string that corresponds to the Admin user name of the transaction author or to the name of the API version or application that created the transaction.
Transaction DateThe date the transaction took place.A date. For example, 6/8/2016 7:35:23 PM.
Additional Transaction DetailAdditional transaction details or notes that you want to associate with the transaction.Any string.
Credit LimitThe total the customer can spend using purchase orders.Any decimal amount.
Available BalanceThe available balance the customer has on their purchase order account. This balance is the result of the credit limit minus the customer's total amount due.Any decimal amount.

StoreCredits

Corresponding REST API Resource: commerce/customer/credits

This sheet allows you to assign store credit to specific customer accounts.

Column NameDescriptionValid Values
Activation DateThe date the store credit is available for the customer to use.A date. For example, 9/27/2016 12:00:00 AM. If blank, the store credit is immediately available.
CodeUser-defined code that uniquely identifies the store credit.Any string.
Credit TypeThe type of store credit.Either StoreCredit or GiftCard.
Currency CodeThe currency for the store credit.Any three-letter currency code. For example: USD.
Current BalanceThe current balance to set for the store credit.Any decimal value.
Customer IdThe unique identifier for the customer account. Kibo eCommerce automatically generates this value when a customer creates their own account or when you create a new customer account from Admin. This is the same as the AccountId in other sheets.Any integer that is unique among all customer accounts.
Expiration DateThe date the store credit is no longer available for the customer to use.A date. For example, 9/27/2016 12:00:00 AM. If blank, the store credit does not expire.
Initial BalanceThe initial balance to set for the store credit.Any decimal value.

StoreCreditTransactions

Corresponding REST API Resource: commerce/customer/credits/transactions

This sheet allows you to assign store credit transactions based on a store credit code.

Column NameDescriptionValid Values
CodeUser-defined code that uniquely identifies the store credit.Any string that matches an existing store credit code.
CommentsAn optional field that allows users to make notes about the store credit transaction.Any string.
IdThe unique identifier for the transaction.This is a read-only, system-generated ID. If you are creating an import of a store credit transaction, leave this field blank.
Impact AmountThe amount to subtract or add from the store credit balance.Any decimal value. Use a negative value for debits, and a positive value if adding more credit.
Transaction TypeIdentifies the transaction as either a debit or a credit to the store credit balance.Either Debit or Credit.

Customer Segments

Corresponding REST API Resource: commerce/customer/segments

This sheet defines customer segments within Kibo eCommerce.

Column NameDescriptionValid Values
Customer Segment IdThe unique identifier for the customer segment.This is a read-only, system-generated ID. If you are creating an import of a customer segment, leave this field blank.
CodeUser-defined code that uniquely identifies the customer segment.Any string that matches an existing customer segment code.
NameThe name of the customer segment as it appears in Admin.Any string.
DescriptionAn optional description of the customer segment.Any string.

Best Practices

Use the Kibo eCommerce API to Export > 50,000 Records

For optimal performance, Kibo eCommerce recommends only using the import/export tool if you are working with fewer than 50,000 customer records. If you need to export or import more than 50,000 records, refer to the samples below for more information about using the Kibo eCommerce API to import your customer records.

Customer Import Code Samples

The following sample code demonstrates how to import customers using the Kibo eCommerce API. These samples were implemented using the Kibo eCommerce .NET SDK, but the general implementation is the same across all the Kibo eCommerce SDKs.

Required Behaviors

Any application that implements code to import or update customers must have the following behaviors enabled:

  • Customer Create
  • Customer Read
  • Customer Update

Import Customers

The following code sample organizes various calls to import customers to Kibo eCommerce:

private System.Collections.Concurrent.ConcurrentDictionary ImportCustomers(IEnumerable accountAuthCollection)
{
    var accountResource = new Mozu.Api.Resources.Commerce.Customer.CustomerAccountResource(_apiContext);
    var contactResource = new Mozu.Api.Resources.Commerce.Customer.Accounts.CustomerContactResource(_apiContext);

    var accountExternalIds = new System.Collections.Concurrent.ConcurrentDictionary();

    Parallel.ForEach(accountAuthCollection, new System.Threading.Tasks.ParallelOptions() { MaxDegreeOfParallelism = 1 }, accountAuthInfo =>
    {
        var filter = string.Format("ExternalId eq '{0}'", accountAuthInfo.Account.ExternalId);

        var importedResultStatus = string.Empty;

        Mozu.Api.Contracts.Customer.CustomerAccount existingAcct = null;

        var existingAcctCollection = accountResource.GetAccountsAsync(filter: filter).Result;

        if (existingAcctCollection.Items.Count == 0)
        {
            try
            {
                existingAcct = accountResource.AddAccountAsync(accountAuthInfo.Account, "Id,ExternalId").Result;
                importedResultStatus = string.Format("Added-New-Account-Id:{0}", existingAcct.Id);

                var existingAcctAuthTicket = accountResource.AddLoginToExistingCustomerAsync(new Mozu.Api.Contracts.Customer.CustomerLoginInfo()
                {
                    EmailAddress = accountAuthInfo.Account.EmailAddress,
                    IsImport = accountAuthInfo.IsImport,
                    Password = accountAuthInfo.Password,
                    Username = accountAuthInfo.Account.UserName,
                }, existingAcct.Id).Result;

                foreach (var contact in accountAuthInfo.Account.Contacts)
                {
                    var existingContact = contactResource.AddAccountContactAsync(contact, existingAcct.Id, "Id").Result;
                }
            }
            catch (Exception ex)
            {
                importedResultStatus = "Error-Encountered";
            }

            accountExternalIds.TryAdd(existingAcct.ExternalId, importedResultStatus);
        }
    });

    return accountExternalIds;
}

Add a Customer Account

The following code sample is a unit test that demonstrates the uses of various customer import methods:

[TestMethod]
public void Add_Customer_Accounts_Test()
{
    var tblAccounts = GetAccountTestData();
    var tblContacts = GetContactTestData();
    var accountAndAuths = new List();

    foreach(System.Data.DataRow drAcct in tblAccounts.Rows)
    {
        var customerLoginInfo = MapCustomerLoginInfo(drAcct);
        var account = MapCustomerAccount(drAcct);

        System.Data.DataRow[] drContacts = tblContacts.Select(string.Format("Id = '{0}'", drAcct["Id"].ToString()));

        account.Contacts = new List();
        foreach(System.Data.DataRow drContact in drContacts)
        {
            var  contact = MapCustomerContact(drContact);
            account.Contacts.Add(contact);
        }

        accountAndAuths.Add(new Mozu.Api.Contracts.Customer.CustomerAccountAndAuthInfo()
        {
            Account = account,
            IsImport = Convert.ToBoolean(customerLoginInfo.IsImport),
            Password = customerLoginInfo.Password
        });
    }

    var importedAcctIds = ImportCustomers(accountAndAuths);
}

Add Account Login

The following code sample maps customer account login information to a customer object in Kibo eCommerce:

private Mozu.Api.Contracts.Customer.CustomerLoginInfo MapCustomerLoginInfo(System.Data.DataRow drAccount)
{
    var mappedAccountAndAuthInfo = new Mozu.Api.Contracts.Customer.CustomerLoginInfo()
    {
        IsImport = true,
        EmailAddress = drAccount["Email"].ToString(),
        Password = drAccount["Password"].ToString(),
        Username = drAccount["Username"].ToString(),
    };

    return mappedAccountAndAuthInfo;
}

Get Account Test Data

The following code sample retrieves test data for customer accounts that you can then map to a customer object in Kibo eCommerce:

private System.Data.DataTable GetAccountTestData()
{
    var tblAccount = new System.Data.DataTable();
    tblAccount.Columns.Add("Id");
    tblAccount.Columns.Add("AccountID");
    tblAccount.Columns.Add("UserName");
    tblAccount.Columns.Add("Email");
    tblAccount.Columns.Add("Password");
    tblAccount.Columns.Add("FirstName");
    tblAccount.Columns.Add("LastNameOrSurname");
    tblAccount.Columns.Add("CompanyOrOrganization");
    tblAccount.Columns.Add("TaxExempt");
    tblAccount.Columns.Add("TaxId");
    tblAccount.Columns.Add("AcceptsMarketing");
    tblAccount.Columns.Add("LocaleCode");
    tblAccount.Columns.Add("UserRole");
    tblAccount.Columns.Add("IsActive");
    tblAccount.Columns.Add("IsAnonymous");
    tblAccount.Columns.Add("Total Order Amount");
    tblAccount.Columns.Add("Total Orders");
    tblAccount.Columns.Add("Last Order Date");
    tblAccount.Columns.Add("Total Contacts");
    tblAccount.Columns.Add("LastModifiedDate");
    
    System.Data.DataRow newRow = tblAccount.NewRow();
    newRow["Id"] = "101"; //externalId
    newRow["UserName"] = "vip_shopper";
    newRow["Email"]  = "vip_shopper@mozu.com";
    newRow["Password"] = "IBuyOnline2015";
    newRow["FirstName"] = "Jon";
    newRow["LastNameOrSurname"] = "Smithe";
    newRow["CompanyOrOrganization"] = "Main Corp";
    newRow["TaxExempt"] = false;
    newRow["AcceptsMarketing"] = true;
    newRow["LocaleCode"] = "en-US";
    newRow["IsActive"] = true;
    newRow["IsAnonymous"] = false;
    tblAccount.Rows.Add(newRow);
    
    return tblAccount;
}

Map Account Data

The following code sample maps customer account data to a customer object:

private Mozu.Api.Contracts.Customer.CustomerAccount MapCustomerAccount(System.Data.DataRow drAccount)
{
    var mappedAccount = new Mozu.Api.Contracts.Customer.CustomerAccount()
    {
        ExternalId = drAccount["Id"].ToString(),
        EmailAddress = drAccount["Email"].ToString(),
        FirstName = drAccount["FirstName"].ToString(),
        LastName = drAccount["LastNameOrSurname"].ToString(),
        CompanyOrOrganization = drAccount["CompanyOrOrganization"].ToString(),
        TaxExempt = Convert.ToBoolean(drAccount["TaxExempt"]),
        TaxId = drAccount["TaxId"].ToString(),
        AcceptsMarketing = Convert.ToBoolean(drAccount["AcceptsMarketing"]),
        LocaleCode = drAccount["LocaleCode"].ToString(),
        IsActive = Convert.ToBoolean(drAccount["IsActive"]),
        IsAnonymous = Convert.ToBoolean(drAccount["IsAnonymous"]),
        UserName = drAccount["UserName"].ToString(),
    };

    return mappedAccount;
}

Get Contact Test Data

The following code sample retrieves test data for customer contacts that you can then map to a customer object in Kibo eCommerce:

private System.Data.DataTable GetContactTestData()
{
  var tblContact = new System.Data.DataTable();
  tblContact.Columns.Add("Id");
  tblContact.Columns.Add("Type");
  tblContact.Columns.Add("IsPrimary");
  tblContact.Columns.Add("CompanyOrOrganization");
  tblContact.Columns.Add("FirstName");
  tblContact.Columns.Add("MiddleNameorInitial");
  tblContact.Columns.Add("LastNameOrSurname");
  tblContact.Columns.Add("Email");
  tblContact.Columns.Add("FaxNumber");
  tblContact.Columns.Add("HomePhone");
  tblContact.Columns.Add("MobilePhone");
  tblContact.Columns.Add("WorkPhone");
  tblContact.Columns.Add("AddressType");
  tblContact.Columns.Add("Address1");
  tblContact.Columns.Add("Address2");
  tblContact.Columns.Add("CityOrTown");
  tblContact.Columns.Add("StateOrProvince");
  tblContact.Columns.Add("PostalOrZipCode");
  tblContact.Columns.Add("CountryCode");

  System.Data.DataRow newRow = tblContact.NewRow();
  newRow["Id"] = "101"; //externalId
  newRow["Type"] = "Billing";
  newRow["IsPrimary"] = true;
  newRow["CompanyOrOrganization"] = "Main Corp";
  newRow["FirstName"] = "Jon";
  newRow["LastNameOrSurname"] = "Smithe";
  newRow["Email"] = "vip_shopper@mozu.com";
  newRow["WorkPhone"] = "555-555-5555";
  newRow["AddressType"] = "Commercial";
  newRow["Address1"] = "100 Main Corp Way";
  newRow["Address2"] = "Building 9";
  newRow["CityOrTown"] = "New York";
  newRow["StateOrProvince"] = "NY";
  newRow["PostalOrZipCode"] = "10026";
  newRow["CountryCode"] = "US";
  tblContact.Rows.Add(newRow);
  return tblContact;
}

Map Contact Data

The following code sample maps customer contact data to a customer object:

private Mozu.Api.Contracts.Customer.CustomerContact MapCustomerContact(System.Data.DataRow drContact)
{
    var mappedContact = new Mozu.Api.Contracts.Customer.CustomerContact()
    {
        CompanyOrOrganization = drContact["CompanyOrOrganization"].ToString(),
        Email = drContact["Email"].ToString(),
        FaxNumber = drContact["FaxNumber"].ToString(),
        FirstName = drContact["FirstName"].ToString(),
        LastNameOrSurname = drContact["LastNameOrSurname"].ToString(),
        MiddleNameOrInitial = drContact["MiddleNameOrInitial"].ToString(),
        Types = new List() 
        { 
            new Mozu.Api.Contracts.Customer.ContactType()
            {
                Name = drContact["Type"].ToString(),
                IsPrimary = Convert.ToBoolean(drContact["IsPrimary"]),
            }
        },
        Address = new Mozu.Api.Contracts.Core.Address() 
        {
            Address1 = drContact["Address1"].ToString(),
            Address2 = drContact["Address2"].ToString(),
            AddressType = drContact["AddressType"].ToString(),
            CityOrTown = drContact["CityOrTown"].ToString(),
            StateOrProvince = drContact["StateOrProvince"].ToString(),
            PostalOrZipCode = drContact["PostalOrZipCode"].ToString(),
            CountryCode = drContact["CountryCode"].ToString()
        },
        PhoneNumbers = new Mozu.Api.Contracts.Core.Phone()
        {
            Home = drContact["HomePhone"].ToString(),
            Mobile = drContact["MobilePhone"].ToString(),
            Work = drContact["WorkPhone"].ToString(),
        }
    };

    return mappedContact;
}