Summary
This article provides information for using 3rd Party Import Utility for importing Exchange Subscriptions and Organizations for Resellers and End Customers from Parallel to MachPanel.
Applies To
MachPanel v6 and above
Pre-Requesites
Before moving forward with the import from any panel to MachPanel, following pre-requisites must be fulfilled.
Exchange:
At least one Reseller Exchange Service Plan should be created in MachPanel for Reseller Subscription.
At least one Customer Exchange Service Plan should be created in MachPanel.
Note: Provider needs to plan out their business strategy during the service plan creation phase because the plan you create up front and choose during the import will be applied to your customers
Information for Parallels
Parallel tables which are required in MSSQL.
- accounts
- contacts
- addresses
- users
- contact_properties
- identities
- subscriptions
- [actdir_organization_units]
- [actdir_subscription_units]
- domain_services
- exch_addons
Backup Critical Data before you begin
ALWAYS ENSURE TO BACKUP YOUR FILES AND DATABASE BEFORE STARTING A MIGRATION
It's very easy to backup MachPanel.
Open MachPanel Configuration Studio after you RDP to your Control Panel Server and click the "Take Backup now" button.
You can take backup of Control Panel and SQL database at specified locations and interval (Frequency & Time). Apply required setting and click on "Update Settings". You can enable Auto-Backup option and change Backup frequency and the backup location as well. Also, you can auto-purge backups by selecting Keep Last (Select numbers) and also you can provide Backup Email Address.
Steps to perform for migration
- Login to MachPanel as Provider (Super Administrator)
- Navigate to Path: Home » Import Utilities » 3rd Party Import
Import Settings
You have to provide following for Exchange import under Import Settings:
- Select 3rd party Control panel option allows you to choose which control panel you are importing data from. Choose your source control panel name from the below available options.
- Hosting Controller
- MSPControl or Website Panel
- Parallels
- CloudBlue
- Import As option lets you choose which type of reseller to create in MachPanel. Any reseller you have in the source control panel will be picked up and then created as the chosen reseller type.
- Subscription based reseller is a stand-alone reseller in MachPanel that does not inherit business logic/prices/plans from the provider. This type of reseller has its own service plans. This reseller purchases a bulk quantity from provider (any number of resources or even unlimited resources), then creates his own service plans, and sells the services on his own terms and conditions, business logic and pricing. This is a little complex to set up compared to Commission based reseller but has advantage of being able to offer services of his choice and on his own terms.​​
- Commission based reseller is a subsidized reseller in MachPanel that inherits business logic/service plans and pricing set by the provider. This type of reseller does not have the ability to create his own service plans or pricing. This type of reseller uses and sells existing service plans offered by the provider and earns commission while selling services to his own customers. The services maintain same naming, business logic, pricing conventions as set by the provider. This type of reseller is easy to set up and maintain as compared to Subscription based reseller but has the disadvantage of being unable to offer services of his own choice, terms or pricing.
After selecting 3rd party panel and Import As option you have to provide following:
- Control Panel Database Connection string: Provide Connection String of the source of your Control Panel Database as below:
- Hosting Controller
- MSPControl or Website Panel
- Parallels
- CloudBlue
- Import AD Organization Only: If Checked, only Active Directory Organizations will be imported, Subscriptions on those Organizations (Exchange in this case) will not be imported.
- Reseller Exchange service plan: Select Reseller's Exchange service plan which should be assigned to all your resellers selected during import. After import this plan will be assigned as subscription to the selected resellers in MachPanel.
- Customer Exchange service plan: Select Customer's Exchange service plan which should be assigned to all your end customers selected during import. After import this plan will be assigned as subscription to the selected customers in MachPanel.
- Select Exchange Server: Select Exchange Server that you
want to assign to selected resellers / customers.
- LDAP URL: Provide LDAP URL. This is the source LDAP URL that contains the organization Units for each of your organizations. This is mostly the default LDAP URL of your current panel where all sub OUs are created for each organization.
- Now Click the Get resellers option to see list of all available reseller that can be imported.
- Select resellers to import: Select Resellers from the List and Click Import button. To multi-select press SHIFT or CTRL key and select ALL in sequence or select required resellers one by one respectively.
​
Post-Import Tasks for CloudBlue
- Comma seperated CustomerIds to Import: Provide customer Id(s) which are required to import in MachPanel.
Note before Migration of Production Organizations:
1. Add First Name and Last Name:
- Ensure that the First Name and Last Name fields are added for all customers during the import process.
- Set the First Name and Last Name to "Super Admin" for all customers.
2. Sync AD Users:
On Import log file in the control panel installation directory will be created with below highlighted information about the import process.
- Customer will be created in MachPanel.
- Subscription will be created in MachPanel.
- Organization will be added in MachPanel.
- Domain will be added in MachPanel.
- Mailboxes (User, Room, Equipment) will be added in MachPanel.
- Contacts will be added if they exist in the organization being migrated.
- Distribution lists along with all their member information will be added in MachPanel.
- Address Lists (AL), Global Address List (GAL), Offline Address Book (OAB), Room Address List (RAL), and Address Book Policies (ABP) will be added for the organization in MachPanel.​
Post-Import Tasks for Parallels
- Once the import process ends after hitting Import Button, you have to verify and fix resources allocated to customer and reseller(Owner) according to actual usage.
Important Note
- While importing from parallel if you find error "column domain_name does not exists" in logs, to fix this follow below:
- Rename column 'domain_display_name' to 'domain_name' in exch_addons table.
- Also, to find which customer is under which reseller following parallel queries can be used:
Parallels Resellers Query:
Select contact_properties.value as Email, *, identities.login as UserName from accounts, contacts, addresses, users, contact_properties, identities
Where accounts.adm_contact_id = contacts.contact_id
and accounts.address_id = addresses.address_id
and (account_type='2' or account_type='1')
and is_locked = '0'
and users.scope_id = accounts.account_id
and users.user_id = (Select top (1) user_id from users where scope_id= accounts.account_id)
and contact_properties.name = 'email' and contact_properties.contact_id = users.contact_id
and users.auth_identity_id = identities.identity_id and value !=''
order by value asc
The interface will show identities.login of one of reseller’s users.
Parallels Customers under Reseller Query:
Select contact_properties.value as Email, * from accounts, contacts, addresses, users, contact_properties, identities
Where accounts.adm_contact_id = contacts.contact_id
and accounts.address_id = addresses.address_id
and account_type='3'
and is_locked = '0'
and users.scope_id = accounts.account_id
and users.user_id = (Select top (1) user_id from users where scope_id= accounts.account_id)
and contact_properties.name = 'email' and contact_properties.contact_id = users.contact_id
and users.auth_identity_id = identities.identity_id and value !=''
and exists (Select 1 from subscriptions where owner_id = accounts.account_id and is_active='1')
and owner_id = '@OwnerId'
Where Owner_id needs to be replaced by reseller accountid.