Importing from WHMCS

Easily move from WHMCS into Upmind. We go through our step by step importer and show you what is needed.

What is WHMCS?

WHMCS is a self-hosted billing platform designed for hosting businesses. You can easily move from WHMCS into Upmind. Note that WHMCS can have many adjustments to databases or custom modules added. We do not import all of this data - we just get the core information we need in order to be able to effectively move your billing and client management to Upmind.

What can be imported?

Most core information from WHMCS can be imported into Upmind. This includes:

  • Staff users
  • Products
  • Promotions
  • Clients
  • Support tickets
  • Invoices
  • Payment methods
  • Affiliate accounts
  • Tickets

We automatically attempt to map data (e.g. servers, domains) where possible. If we cannot automatically map data then we will prompt you to create mappings in the interface.

Before you import

There are a few things to set up before you import from WHMCS.

SettingDescription
Brand SettingsSet up your brand name and basic address settings.
Tax SettingsConfigure your tax settings if applicable
Web Servers and Domain ProvidersAdd your shared web servers and domain providers, if applicable, under Settings > Provision Configurations.
Payment GatewaysAdd your payment gateways under Settings > Payment Providers

Setting up WHMCS Access

Create WHMCS API Credentials

Our WHMCS importer uses the WHMCS API credentials to get data.

712

First, click API credentials under the settings menu.

691

Click the API Roles tab and then click Create API Role

You now need to create an API role that has all permissions. If you like, you can tick all of the check boxes under all of the menu items on the left. Alternatively you can search for any allow only the following API commands:

API Command
GetTicketUsers
GetClients
GetClientsDetails
GetAffiliates
GetAdminUsers (see note below)
GetTickets
GetInvoices
GetCurrencies
GetProducts
GetOrders
GetTLDPricing
GetClientsDomains
GetClientsProducts
GetInvoice
GetTicket
GetPayMethods
GetClientGroups
GetSupportDepartments
GetConfigurationValue

Once done, hit 'Save'.

1153

Give the API user all permissions.

GetAdminUsers API Functionality

We need access to the API call 'GetAdminUsers' which sometimes does not appear in the list above. If you get an error saying that this is not enabled, you need to associate it manually. Go into your database and the table tblapiroles and add getadminusers to the array.

Now go back to the first API Credentials tab and click 'Create New API Credential'

519

Click 'Create New API Credential'

639

Select the API role you created and an admin user, then hit 'Generate'.

Make a copy of your Service Identifier and Secret.

Whitelist our API IPs

You also need to whitelist the IP addresses shown in step 3 below in your WHMCS settings.

This is done through Settings -> General Settings. Then click the 'Security' tab. You need to enter our IP addresses under 'API IP Access Restriction'.

IP Addresses to add
54.246.211.116
52.48.214.19
34.250.219.217
753

Click 'Add IP' to allow the Upmind IPs.

If you use Cloudflare or another proxy for your WHMCS

If your website is behind a proxy server (for instance Cloudflare) or behing a load balancer, then you need to make sure you have followed the below setup.

https://docs.whmcs.com/Trusted_Proxy_Settings

Setting up the Upmind Import from WHMCS

In Upmind, navigate to Settings, then Import

Now click 'Create New Import' and choose 'WHMCS'. Hit 'Add New Credentials'.

548

Enter your WHMCS API credentials into Upmind like so.

Once you hit Save, your credentials will be tested. If the credentials are invalid, you will see an error and you can correct your data.

Once the data is added you can click 'Create Import'

Running through the import

📘

Note

You can leave the import running and return to the screen at any point. No data will be lost and the import will not be interrupted.

You will now see a screen that looks as follows. Click 'Start Import;

The import will start in progress and we will begin the data export behind the scenes. As you can see we import data in order.

Products

Upmind treats domains and products all as a type of products. We do however only store one record of each TLD -- so if you already have a TLD (e.g. 'com') added then it won't be reimported - we'll just map any records to that existing product.

Once the first import set is done you will see the following happen. You will see an orange notification with the label 'Mappings required'

1198

You will see 'mappings required'

785

Expanding this allows you to see the groups that need mapping.

This is category mapping. If you have set up Upmind categories under Settings > Products and Service you can map that here. This is entirely optional.

778

Choose a category you wish to map your imported category to.

793

One mapped it will show like this.

Once done you can click 'Confirm mapping(s) and continue'

837

Once done you can click 'Confirm' to move to the next step.

The products will now import

798

You can see progress in the progress bar.

Once imported the data will show in a list and you can click to view a the imported data. You cannot edit the staged data but you can preview it.

780

A list of all imported products

1221

A preview of a staged imported product

This process continues for the remainder of the import sections.

Users

We automatically map users with the same email address on the system.

The mappings required map levels of permissions which you can set up under User Roles.

Clients

This exports your client database and imports it to Upmind. This may take some time. You can leave it to run in the background.

You will be given the option to map custom fields. You can create upmind custom fields in the settings panel.

1287

Mapping options for custom fields on the client import.

Once clients records are imported you can go to a client profile and view their staged information.

1680

Viewing staged imported data

Affiliate Accounts

This imports activated affiliate accounts. Note that we take affiliate activations and balances, but we do not export any affiliate links or ongoing referrals. These will need to be added manually.

Client Payment Details

You will need to map payment providers with ones you have added in the system.

Contracts

This is the current subscription and client product data. You will need to map provision configurations (servers, suppliers, domain registrars)

Tickets

This imports WHMCS support tickets. You can optionally map support ticket departments.

Previewing Data

Once data has been mapped, you can preview it. You cannot modify data in preview mode, and the clients cannot log in. This preview mode allows you to test the imported data and ensure it is correct before committing.

If you see any errors you can cancel the import at this point.

Committing data

You can commit data once you are happy with the staged import.

Best practices for import

Obviously, you want to avoid data being out of sync during an import, so we recommend the following process:

Prior to the import, add any servers, domain providers, and payment gateways into Upmind in advance.

  1. Back up your WHMCS install before any import. We only use GET requests but this is always good practice!
  2. Turn off any WHMCS crons and put WHMCS into maintenance mode.
  3. Run the import
  4. Once happy, you can take your WHMCS offline.

Troubleshooting

Q. My username and password are not correct.
A. You need to use the service identifier and secret under WHMCS API settings.

Q. The import fails with a malformed character issue ("Malformed UTF-8 characters, possibly incorrectly encoded")
A. This is often due to bad characters in the hosting account password. After taking a backup you could wipe the passwords from the hosting accounts - Upmind does not need them or store them. You can either do this through the interface or in the database.