Data Migration - Customer Data Import

Summary

This article covers the recommended and proper order for importing customer data into EngageIP. When importing large amounts of data it is recommended to use the DataMigration Utility.

Before you can proceed with any import process here please follow the article: Data Migration – Import Methods and Configuration.

XML Format

Warning: Format is important. XML files for the migrator are case sensitive for element names and element values (those of which are being matched to data already in the system such as bill groups, or credit rating items).

Special Characters Note: If you have special characters ( % ^ & * # @ ! ) in  usernames for example when importing and its causing issues, you can replace the special character with its ASCII code and it will import as the correct symbol.

Importing Owner Accounts

See the System Configuration Import kb article for details on importing Owner accounts.

Importing User Accounts

<User Name="test_customer" Password="test" Owner="admin" Role="Admin" Culture="English" Currency="USA" Language="English" CreatedDate="1/15/2007 12:00:00 AM" StatusType="MyCustomAccountStatusType" TaxCode="Residential" BillGroup="Default" CreditRating="Default" BillDay="1" DisableReason="Cancelled"/>

Name

Name of user, can be alpha numeric, any unique identifier for customers, companies or accounts

‘Bob McCowan’ or ‘CUST2838382’ or ‘3334445555’ etc.

Password

Password belonging to the user account for login to the AdminPortal

‘password’ or ‘FidDz73Ds’

Owner

Name of the Owner the country belongs to

this will be based on previous import

Role

The intended role of the account once in the system

Predefined by previous import, Customer role or Admin role

Culture

Culture of account

Predefined in database table called 'Culture'. The name of the culture needs to exist so that it can look up the name and enter the ID in the USER table.

Currency

The alpha character currency of account

‘USA’ or ‘USD’ for United States or ‘CAD’ for Canada, or ‘EUR’

Language

The primary language of the account, to be used when determining the language the interface displays in

‘English’, ‘Spanish’, etc.

CreatedDate

The creation date of the account if it exists, or enter the same date for all accounts

‘10/10/2006 11:00:14 AM’. Format based on system configuration, mm/dd/yyyy or dd/mm/yyyy depending on regional settings on the SQLserver

StatusType

Status of the account on import, this is a configured account status type

These are based on already imported values in the interface. May be ‘Enabled’, ‘Active’, see your previously imported StatusTypes for this.

TaxCode

Name of the customers intended taxcode

This is predefined in EngageIP by previous import

BillGroup

Name of the billgroup customer should be using

This is predefined in EngageIP by previous import

CreditRating

Name of credit rating in system

This is predefined in EngageIP by previous import

BilllDay

Day on which to bill customer recurring

this is a numeric value, 1, 2, through 28 (no 29, 30, 31). This is the day on which the customer will bill every month

Disable Reason

This is a cancelation reason which is not used anymore

 Can be left blank


Importing Account Contacts

<Contact User="billingtest" ContactName="test test" ContactFirstName="test" ContactLastName="test" ContactTitle="Billing Contact" ContactType="Billing Contact" ContactCompany="CompanyName" />

User

'jsmith' or '5192490508' or 'Company X'

 

ContactName

Customer name or contact name

'John Smith'

ContactFirstName

First name of contact

'John'

ContactLastName

Last name of contact

'Smith'

ContactTitle

Title of contact

'CEO' or 'Network Administrator' or 'Director of Marketing'

ContactType

Contact type as defined in interface

Predefined contact type on setup tab, usually 'Billing Contact' or 'Technical Contact' or 'Administrative Contact' but not limited to those.

ContactCompany

Company Name

'Logisense Corporation' or Company X



Importing Account Contact's Email Address

<ContactEmail User="billingtest3" ContactName="test test" Email="testcontact@logisense.com" ContactType="Billing" />
  • 'Email Address' contact point type must exist, no other names will be found by the system

  • Contact Name = Firstname + Lastname on the contact

User

Account identifier

'jsmith' or '5192490508' or 'Company X'

ContactName

Customer name or contact name. This name needs to exist already on original Contact.xml file

Preexisting value here based on contact.xml. 'John Smith'

Email

Email address of contact

'username@domain.com'

ContactType

Contact type as defined in interface

Predefined contact type on setup tab, usually 'Billing Contact' or 'Technical Contact' or 'Administrative Contact' but not limited to those


Importing Account Contact's Phone Number

User

Account identifier

'jsmith' or '5192490508' or 'Company X'

ContactName

Customer name or contact name

'John Smith'

Phone

Phone number for billing contact in this case

5192490508 or '011 345 4565 6765'

ContactType

Contact type as defined in interface

Predefined contact type on setup tab, usually 'Billing Contact' or 'Technical Contact' or 'Administrative Contact' but not limited to those

ContactPointType

Name of contact point type

This should exist already in the system 'Work Phone'


Importing Account Contact's Fax Number


Importing Extra Contact Data

If you need to make more contact points besides the ones already available, of if you want to rename them, you can use this below xml to import differently named or extra contact points.

Logisense Corporation = Your owner

ContactPointType  = the name of your contactpoint you want to add, ie, Phone Number, Email Address, Extra Info

Value = the data to be added on customer

ContactID = the id of the contact on the customer account you need this added to, i.e. hover over the billing contact link on the contact page to find its ID

Importing Company Details on Contacts

User

Name of user account this applies to

bsmith

Company

Name of the company to import

'LogiSense Corporation' (note: Import does not allow '&' ampersand. Replace with 'and')

Importing Child Accounts

Sets up child account relationships between accounts. This can be at any level.

Alert: this approach is only to be used for initial import. If this import is used after a parent account has transactions / invoices, the invoices will not transfer and display correctly on the new parent. This should never be used on accounts where transactions / invoices exist. If it has been used in this fashion, you can 'reset' the invoices by using the tools page on the account to move it back up to a parent and back down as the child, this executes the logic to move the invoices as expected to the new parent account.

Name

Name of sub account

'Sally Jones' (where this is the name of a daughter in this example)

Parent

Name of direct parent account or main account. This is the account the user should be directly under

'Mr Jones' (this is the name of the father in this case, orparent account)

Importing Account Invoices

To Add Debits

For taxes to import, ensure you have a taxcode that exists and that the taxcode also has tax rates associated, up to four rates if you want the rates to associate here. Without this config, the tax value will be ignored.

Sample Debit import file:

To Add Credits


As of EngageIP 9.3.8, you can specify the bulk amount which multiplies the amount value for credits

If you want to import a set of 'transactions' and then close the invoice before adding more 'transactions', use the close tag:  <CloseInvoice CloseInvoice="" />

ApplyTax element tells the system to calculate a tax on the import of this credit

Template credit import file: 

For example, the below will create two invoices. One for January (then you can see the close tag) and another for February (with another close tag after it). So you can group these 'transactions' into their individual invoices as needed.

For Payments

The generic method is below, this allows more elements such as defining the PaymentType so you can enter credit card or other predefined types.

NOTES:

  • Automatic disbursement is NOT checked when you enter an Invoice. There is no way to tell this method to mark a payment as autodisburse when an invoice value is present. When the payment is imported, it IS disbursed to the invoice specified as much as it can be, if it is more than the invoice, the left over amount sits undisbursed and the payment is not set as auto disburse and will need to be manually fully disbursed

  • If you leave invoice blank, the payment WILL be set to automatic disburse, BUT it will not disburse until something triggers it on the account, a new debit is created, or billing closes aninvoice perhaps

  • If the invoice is specified, it will tag itself to the invoice selected for display purposes in addition to disbursement purposes. If you do NOT want the payment to show potentially on an old invoice, rather you would like it to be available to display on the next open invoice, leave this blank

Where invoice = name of the invoice (not necessarily the ID)

User

Name of existing account

'ejones'

Date

Date of transaction

'6/30/2006 12:00:00 AM'

Debit

Value of debit

'26.7' or '23.15' (these need to be absolute values)

Credit

Value of credit

0 (these need to be absolute values)

Tax1

Value of tax charged

0 or '1.47'

Tax2

Value of tax charged

0 or '1.47'

Tax3

Value of tax charged

0 or '1.47'

Tax4

Value of tax charged

0 or '1.47'

TaxCode

Name of taxcode that exists in the system

'State Taxcode'

Description

Description of transaction

'Opening balance'

Package

Name of SERVICE (Package is the legacy name for service) that the transaction applies to

'Broadband Wifi Access'

PeriodStart

Service period dates

 

PeriodEnd

Service period dates

 

User

Name of account under which payment should b e applied. May be a child of bsmith as shown in above example

'bsmith' or a child of bsmith 'frank'

Date

Date of transaction

1/18/2007 2:26:28 PM

Credit

Value of credit, in dollars and cents

'2.0000'

Description

Description of payment

'Credit Card payment'

Importing Opening Balances

When moving data from another system to EngageIP, often you will want to import existing debit or credit balances for historical purposes. The correct procedure would be to import a debit or credit as shown above, and then close the invoice and mark it as delivered.  Its suggested that you create a service called 'Opening Balance' to be used to tag to the amount imported for reporting purposes. The balance of the created invoice will then move forward onto the 'real' invoices as a previous balance whether credit or debit.

  1. Create 'Opening Balance' service

  2. Add a transaction to a user (via import or manually)

    • Enter the amount of the existing balance (add transaction for debit balance, add credit for a credit balance)

    • Select the service as 'Opening Balance'

    • Add date as required

  3. A new invoice will be generated if one does not already exist on the account, close this invoice

  4. Mark invoice as printed. Check the box beside the invoice and click 'Printed'. This will ensure the invoice does not get sent to the customer.

Importing Account Payments

User

Name of account under which payment should b e applied. May be a child of bsmith as shown in above example

'bsmith' or a child of bsmith 'frank'

Date

Date of transaction

1/18/2007 2:26:28 PM

Credit

Value of credit, in dollars and cents

'2.0000'

Description

Description of payment

'Credit Card payment'

Importing UserPackage

The account's package. An account can have multiple packages which will bill according to their Bill Cycle. Any package added which does not match the billing cycle will be prorated to the account's bill cycle. .

For below, click 'Use Generic':

User

Name or letter combination that is restricted

English or 'Residential Customer Invoice  2 Page'

Name

Name of the package that will show to the customer and in reports

this package should exist from previous import ofpackage.xml

NextBillDate

Date on which the package will be next for the customer

2/18/2007


Importing UserService

This is a generic method for importing user-services (non-optional)


Importing Optional UserService


Importing UserPackageAttributeDiscount

User Package Discounts - allows the import of discounts that are attached specifically to the customer (if not a system wide package discount).

Discount Type

Type of the discount

Fixed | Price | Percent

Amount

Value of the discount

29.99 or 30

User

User to which the discount should be applied

bsmith

UserPackage

Package to which the discount should be applied

Monthly DialUp

UserService

Service to which the discount should be applied

Dialup


Importing Setup Tab / Package Services

  • Attach services to packages in EngageIP

Importing UserAttributes

Apply expiry date to user account

UserAttributeChangeUserStatusType

For correct prorating, ensure that the time is completed as well, in this case, the end of day on the 31st is when the account should be canceled and if prorating applies, that will be considered

UserAttrbiutePrintGroup


The telecom attribute attached to services at the account level

 

The telecom bucket assigned to the account's service

 

Profile Answer Import

The name needs to be exactly as shown on the setup page for the service or the profile question under the Role. This IS for Role profile questions and Service profile questions

 

Profile Answers Import for Parent/Child Profile hierarchy questions

 

Applies TaxClass to user specifically

 

Applies Taxcode to user - as seen on Overview of account

 

UserAttributeTaxExempt Component

 

UserAttributeTaxExemptLevels


UserAttributeNote

Misc Notes from users, Type must define the 'Note Type' as specified on the setup tab. There may be one or more note types as of version 8.3.x. If nothing exists, add 'Default' as the note type and it can be used to import notes to that type. When using branded owners, the generic method needs to be used:

Generic method:


When using branded owners, the generic method needs to be used:

 

Importing UserExtendedAttributes

 

UserPackage and UserPackageExtendedAttribute:

The below will import a userpackage, along with the associated UserPackageExtendedAttribute

 

Importing UserExt Profile Answers

Where ‘market’ is the profile question name, ‘a’ is the answer to that profile question you want to import and ‘admin’ is the user it should be assigned to. On import screen, do not select generic even though this is a generic import style.


Importing UserPackageAttributes

 

Import UserAttributeChangeUserPackageStatusType

NOTE: This uses the generic method requiring that you know and insert the correct owner specific IDs for the status types (StatusTypeID, UserPackageStatusTypeID), and also the specific user package ID you want to associate this change to.

 

Importing UserServiceAttributes

Importing UserServiceAttributeContact

 

UserServiceAttributeTelecom

 

Importing UserServiceAttributeTelecomBucket

 

Importing UserServiceTechData

 

Importing UserServiceAttributeProfileAnswers

Import answers for user services if there is a profile question on the service. NOTE: If more than one service of the same name exists on an account, the profile answer will be completed for each of those instances. If you need this to be specific per user service ID, use the generic method further below

Generic Method here allowing you to import to a specific userserviceID:

Importing UserServiceResource attachment

the xml below allows you to import resources to a user service and to specify which user service to attach it to based on the userserviceID. The IDs would need to be found in the database (select id from userservice where...)


Importing Account Tickets

User

Account identifier

'jsmith' or '5192490508' or 'Company X'

Reference

 

 

Subject

Subject of ticket

'customer DSL is slow'

Description

Description of ticket

this is the main body of the ticket

Resolution

Resolution section of ticket

this is the resolution field, or the answer to the question

AssignedTo

Username of admin this is assigned to

'bsmith'

Loggedby

Username of account that logged the ticket

'ljones'

Date

Date the ticket was added

'1/15/2007 12:51:52 PM'

TimeSpent

Value in minutes of the time spent

0

Status

Current status of the ticket

'Open', 'Closed'

Priority

Priority of the ticket

Low, Normal, High (these will be configured in Adminportalalready, match the names of preexisting priorities)

ClosedBy

Username of admin that closed the ticket if status is closed

'nburns'

Dateclosed

Date the ticket was closed

'2/18/2007 12:51:52 PM'

Category

Category of ticket

predefined on setup tab

Contactmethod

The method used to contact customer support

 

Fromaddress

bsmithy@logisense.com

 

Totaltimespent

Total time in minutes spend on ticket so far

0

Currenttimespent

Value in minutes of current time spend

0

Lastmodifiedby

Username of admin that modified the ticket

bsmithy

Hiddenresolution

Text from ticket that was hidden from end user (background discussion)

text that was on ticket but hidden from customer

Showtouser

Flag defining whether end user (customer) can see this ticket if logged into the customerportal

True or False

Duedate

Date on which the ticket should be completed

1/15/2007 12:00:00 AM

TicketID

ID reference for ticket

32194


Importing Ticket Tracking Records

Ticket Tracking records are the detail attached to the ticket, the inline comments or appended text on tickets.

An example of the ticket tracking XML is shown below:


Importing Ticket Attachments

With Ticket Attachment, you can import attachments to tickets. Any file can be attached. If there are errors, check the size of the attachment as files over 2 MBs may produce errors. If this is a concern, attempt to import a large file by itself to confirm that it will import without issue.

Importing Payment Methods

Importing UserPaymentMethodCash


Importing UserPaymentMethodCreditCard

 

Importing UserPaymentMethodCheck


Importing UserPaymentMethodACH

The first line below adds the UserPaymentMethod object and creates a reference to it to be used in the UserPaymentMethodACH object.

Related pages