---
title: "Connect to WHMCS: Move Your Customers to the Truehost Reseller Panel"
description: If you already manage customers, domains, and hosting services in WHMCS, and you want to move to the Truehost Reseller Panel without retyping every record. The panel includes an importer that connects straight to your WHMCS database and brings across…
url: "https://truehost.com/support/knowledge-base/connect-to-whmcs-move-your-customers-to-the-truehost-reseller-panel/"
updated: "2026-10-29"
category: Guides / Truehost Reseller Panel
---

# Connect to WHMCS: Move Your Customers to the Truehost Reseller Panel

If you already manage customers, domains, and hosting services in WHMCS, and you want to move to the Truehost Reseller Panel without retyping every record. The panel includes an importer that connects straight to your WHMCS database and brings across your **clients** (with their custom fields), **domains,** and **services**.

The process is simple: bring your customers, domains and services over from WHMCS, without touching your WHMCS data. How long that takes depends on the size and condition of your database, your connection access, the quality of your data and how well you prepare.

Here is what happenst:

- The panel connects directly to your existing WHMCS database.
- The import **reads** that database. It does not change or delete its records.
- WHMCS can keep running while you do the first import and check the results.
- You can run imports again to bring over new records or update existing ones.
- **Nothing is saved to the panel until you press Run import** after previewing the data.
- The import does not email your customers.

None of this makes the migration risk-free. Not everything is imported, and a finished import does not switch your billing or domain renewals over. You do that yourself, on purpose, at the end.

**The process in six steps:**

1. Prepare packages, servers, domain pricing and database access.
2. Connect the panel to the WHMCS database.
3. Import clients.
4. Import domains and hosting services.
5. Review the import logs and verify the records.
6. Complete the billing and domain-renewal cutover.

## **Requirements needed before migrating**

-  **The WHMCS database connection details:** host name, port, database name, username, password and table prefix. The usual MySQL port is 3306 and the usual WHMCS table prefix is tbl, unless your installation is set up differently.
- **Remote database access from the panel server:** The WHMCS database must accept connections from the panel server's IP address. If you use cPanel, look for **Remote MySQL**. Allow only the panel server's IP, not every address. Menu names vary between hosting environments.
- **A read-only database user, where possible:** The importer only needs to read, so a limited account lowers the risk.
- **Matching packages already created in the panel:**Check[creating packages](https://truehost.com/support/knowledge-base/how-to-create-hosting-packages-on-the-truehost-reseller-panel/).
- **Servers added under Setup → Servers**, using the same hostnames as in WHMCS.
- **Truehost connected and domain pricing synchronised.** See[domain pricing](https://truehost.com/support/knowledge-base/how-to-set-up-domain-pricing-in-the-truehost-reseller-panel/).
- **Every extension your imported domains use is enabled in the panel.**
- **Time** to check the imported records and prepare customer communications.

Never publish database passwords, API secrets, or screenshots that show them.

## **What transfers and what does not**

| **Imported** | **Not imported** |
| --- | --- |
| **Clients**, including their custom fields | **Invoices and payment history** |
| **Domains**, linked to their clients | **Support tickets** |
| **Services**, including hosting accounts, linked to clients, and linked to packages and servers where matching records are found | **Products and prices**: create these in the panel first |
|  | **Client passwords** |

- **Invoices and payment history** stay in WHMCS. Keep them for your accounts and for customer queries.
- **Support tickets** stay in WHMCS too.
- **Products and prices** are not copied, which is why packages and domain pricing must exist in the panel before you import services and domains.
- **Passwords** cannot be moved. WHMCS stores password information in a form the panel cannot read or copy, and the importer cannot recover, export or transfer it. Imported clients set a new password by using **Forgot password** on the new client login.

Tell customers before the switch. Prepare an email with the new login address, the **Forgot password** steps and the changeover date. The import does not send this for you.

Also remember what an import is **not**:

- It does not register, transfer or renew domains.
- It does not provision hosting accounts or migrate website files, databases, email accounts or DNS records.

## **Step 1: Connect the Truehost Reseller Panel to WHMCS**

1. Open **Utilities → Import WHMCS**.

![](https://truehost.com/support/wp-content/uploads/2026/10/image-29-1024x516.png)

1. Under **WHMCS database connection**, enter a connection name, such as "Old WHMCS".
2. Enter the database **host** and **port**.
3. Enter the database **name**.
4. Enter the database **username** and **password**.
5. Enter the **table prefix**, usually tbl.
6. Select **Test connection**.
7. Check the success message. It should say the connection works and show how many tables were found.
8. Select **Save and continue**.

![](https://truehost.com/support/wp-content/uploads/2026/10/image-30-1024x516.png)

| **Field** | **What it is** |
| --- | --- |
| Connection name | A label for you, so you can recognise this source later |
| Host and port | Where the database server is. This is not always the same as your WHMCS website address |
| Database name | The database that holds the WHMCS tables |
| Username and password | The account the panel uses to read it |
| Table prefix | The text at the start of each WHMCS table name |

The test matters because it proves the panel can reach the database and see the WHMCS tables before you import anything. If it fails, stop and fix it first.

**If the connection fails, check:**

- The host name and port.
- The database name, username and password.
- That the WHMCS server allows connections from the panel server's IP.
- The Remote MySQL settings and database permissions.
- The table prefix, if your installation uses a custom one.
- With your hosting or technical support team, if remote database access is not available to you.

These are things to check, not guaranteed fixes.

## **Step 2: Import clients first**

Clients come first because the importer finds the owner of each domain and service by matching the client's **email address**.

### **1. Select the import type**

Set **the import type** to **Clients**.

### **2. Choose the import mode**

| **Mode** | **What it does** | **When to use it** |
| --- | --- | --- |
| **Add new** | Creates clients that do not already exist in the panel | Your first import (recommended) |
| **Add and update** | Creates new clients and updates clients that already exist | A later import to catch new and changed records, such as the final one before switch-over |
| **Update only** | Updates existing clients without adding new ones | When you only want to refresh clients already in the panel |

### **3. Choose the match key**

The **match key** is how the importer recognises a client that already exists. Email is the usual choice. Pick it carefully: a poor match key can pair the wrong records or create duplicates.

### **4. Map the fields**

**Field mapping** connects a field in WHMCS to the matching field in the panel. For example, the WHMCS email field maps to the panel's email field.

The system prefills suggested mappings. You can accept them, change them, or choose **Skip** for fields you do not want.

Two optional features:

- **Constant values** apply the same value to every imported client, such as a client group.
- **Regex transforms** change values by a pattern. Regex is a rule for finding or changing text, for example, keeping only the digits of a phone number. You do not need it for a basic import.

### **5. Preview the import**

Preview shows what the importer intends to import and a **Problems found** list. Typical problems are missing email addresses or invalid country values.

Review it, correct mapping problems, and skip unsuitable fields. **Preview** is only a look. It is not the import.

### **6. Run the import**

Nothing is committed to the panel until you press **Run import** after reviewing the preview. When it finishes, open the import log and check the results.

**Save mapping** stores your mapping choices so you can reuse them for later imports, including domains and your final update before switch-over.

## **Step 3: Import domains, then services**

The order is **Clients → Domains → Services**.

### **Import domains**

1. Set **Import type** to **Domains**.
2. Review the field mappings.
3. Select **Preview**.
4. Review any problems reported.
5. Select **Run import** after checking the preview.

Domains are linked to the client whose email address matches the WHMCS owner.

The panel reads each Truehost domain's expiry date, status and nameservers from the Truehost reseller account every night. The next day, check several imported domains to confirm those details look right. The import itself does not register, transfer or renew anything.

### **Import hosting services**

1. Set **Import type** to **Services**.
2. Review the suggested mappings.
3. Set up **Product mapping**.
4. Select **Preview**.
5. Resolve problems where you can.
6. Select **Run import**.

**Product mapping** connects each WHMCS product to a package that already exists in the panel. Map products one by one, or use **Match by name**. This is why you create packages first: there must be something to map to.

Servers are matched by hostname first, then by name.

A service can still be imported when its product or server is not found. It simply arrives **without that link**. For example, a customer's hosting service shows up in the panel with no package, so you cannot tell which plan they are on, and it will not behave as you expect until you assign one. You can assign the missing package or server later, so review these records.

Importing a service does not provision a hosting account, move website files, copy mailboxes or change DNS.

## **Step 4: Review the import log and verify the records**

| **Item** | **Meaning** |
| --- | --- |
| Fetched | Records read from WHMCS |
| Added | New records created in the panel |
| Updated | Existing records changed |
| Skipped | Records the import left alone |
| Errors | Problem records, with the WHMCS ID and email |

### **Verification checklist:**

- Check a sample of imported clients.
- Confirm client email addresses and custom fields.
- Check domains belong to the right clients.
- Verify domain status, expiry dates and nameservers after the nightly refresh.
- Check hosting services belong to the right clients.
- Confirm package and server mappings.
- Investigate skipped records and error messages.
- Fix missing links before you change anything customers see.

Record counts alone do not prove the migration is complete.

## **Step 5: Switch over from WHMCS safely**

Importing records and switching over are separate tasks. The import does not touch WHMCS, so you make these changes yourself.

1. Import clients, domains and services, then verify a sample of each.
2. Choose a switch-over date and time.
3. Run the imports again using **Add and update**, to capture new records and changes since the first import. Check the mapping and the preview first, because updates can change existing records in the panel.
4. Check the latest import logs and resolve important errors.
5. Stop billing in WHMCS and turn off its billing automation, so customers are not invoiced twice.
6. Turn off the Truehost module in WHMCS on switch-over day, so both systems do not renew the same domains and charge your Truehost reseller balance twice.
7. Update billing links and website buttons to point to the Truehost Reseller Panel.
8. Tell customers the new login address and how to use **Forgot password**.

Turning off billing automation stops *invoices*. Disabling the Truehost module stops domainrenewals from going through your reseller balance. They address different risks, and neither happens automatically.

Do not leave both systems invoicing the same customers or renewing the same domains. Do not delete the old WHMCS database or installation. Keep access to it during a controlled transition, subject to your own security and business needs.

## **Reusing scripts and integrations that use the WHMCS API**

The Truehost Reseller Panel has an API that uses the same action names as WHMCS, for example addclient, addorder and getclientsproducts. A script built for WHMCS may work with the new API address and credentials, but test it. Do not assume complete compatibility.

1. Open **Setup → API Credentials**.
2. Create the credentials you need.

![](https://truehost.com/support/wp-content/uploads/2026/10/image-28-1024x516.png)

1. Open **Setup → API Documentation**.
2. Review the supported actions and authentication requirements.
3. Update the endpoint and credentials in your existing integrations.
4. Test in a safe environment before using them in production.

Keep API credentials private. Never put them in public front-end JavaScript or exposed source code. The endpoint address, authentication format and request and response details are in **Setup → API Documentation**; check them there.

## **Common migration problems and what to do**

| **Problem** | **Possible cause** | **What to do** |
| --- | --- | --- |
| Connection test fails | Wrong host, port or credentials; the panel server's IP is not allowed; Remote MySQL not set up | Check each field and the Remote MySQL setting. Ask your host if you cannot allow remote access |
| No WHMCS tables found, or prefix looks wrong | The prefix is not tbl, or the wrong database was entered | Check the real table names and the database name |
| Client records skipped | Missing or invalid data, or a record already exists in the mode you chose | Read the log entry, fix the data, then re-run |
| Domains cannot be linked to clients | The owner's email in WHMCS does not match an imported client | Compare the emails and make sure the client was imported first |
| Services have no package | No product mapping chosen, or no package exists yet | Create the package, then map the product or assign it later |
| Services have no server | The hostname or name did not match a server | Add the server under **Setup → Servers** with the WHMCS hostname, then assign it |
| Preview reports invalid or missing fields | Data problems in WHMCS, or a wrong mapping | Fix the data or the mapping and preview again |
| Some records are updated, not added | The mode is **Add and update** and the match key found an existing record | Check the mode and match key. Use **Add new** if you only want new records |
| Customers cannot sign in with old passwords | Passwords are not imported | Ask them to use **Forgot password** |
| Domain details look outdated after import | The panel refreshes them nightly | Check again after the nightly refresh |
| Existing scripts stop working after the API address changes | Different address or credentials; actions may differ | Create credentials, read **Setup → API Documentation**, update and test |

Treat these causes as possibilities, not certainties.

## **Migration checklist**

### **Before importing**

- Gather WHMCS database details.
- Configure remote database access.
- Use a read-only database account where possible.
- Create matching packages.
- Add servers using the appropriate hostnames.
- Connect Truehost and synchronise domain pricing.
- Enable the extensions used by the imported domains.

### **During importing**

- Connect and test the database.
- Import clients first.
- Preview and check client records.
- Import domains.
- Import services and map products.
- Review the import logs.

### **Before and after switch-over**

- Run a final import using Add and update.
- Verify clients, domains, services, packages and servers.
- Disable WHMCS billing automation.
- Disable the WHMCS Truehost module.
- Update website and billing links.
- Notify customers about the new login process.
- Test API integrations where applicable.

## **Frequently asked questions**

1. **Can I migrate from WHMCS to the Truehost Reseller Panel without deleting my WHMCS data?** 

Yes. You do not need to delete anything in WHMCS, and you should not.

1. **Does the importer modify the original database?** 

No. It reads from it. Changes you make in WHMCS separately, such as turning off billing, are your own.

1. **Can I preview records before importing them?** 

Yes. Use **Preview**. Nothing is saved until you press **Run import**.

1. **Can I run the import more than once?** 

Yes, to bring over new records or update existing ones. Use **Add and update** or **Update only** with care, because they change existing records.

1. **Which records are imported?** 

Clients (with custom fields), domains and services.

1. **Are invoices, payment history and support tickets transferred?** 

No. Keep them in WHMCS.

1. **Can I transfer customer passwords?** 

No. Customers use **Forgot password** on the new login.

1. **Will customers get emails during the import?** 

No. Send your own announcement before the switch.

1. **Why import clients before domains and services?** 

The importer finds a domain's or service's owner by matching the client's email.

1. **What if a service's package or server cannot be matched?** 

The service is still imported, without that link. Assign it later.

1. **Do I need to create packages before migrating services?** 

Yes, so there is a package to map each product to.

1. **How do I prevent duplicate invoices and domain-renewal charges?** 

Stop billing and its automation in WHMCS, and turn off the Truehost module in WHMCS, on switch-over day. 

1. **Can my existing WHMCS API scripts work with the Truehost Reseller Panel?** 

They may, since the action names are the same, but test them rather than assume. See the API section above.

1. **How long does the migration take?** 

It depends on record volume, data quality, database access and preparation. Do not plan around a fixed time.

## **Conclusion**

Prepare packages, servers, domain pricing, and database access first. Import clients before domains and services. Preview before you commit, use the import logs to catch errors, and make the billing and domain-renewal changes deliberately on switch-over day.
