Migrating to Blesta can typically be done through the Import Manager plugin. The plugin provides a standard interface for importing data into Blesta from various other products.

Initial Steps

  1. Install a fresh copy of Blesta. Do NOT configure the cron job, that will be done later.
  2. Install the Import Manager plugin under [Settings] > [Company] > [Plugins] > Available, by clicking "Install" for Import Manager.
  3. Back up your Blesta database. This will save you the time of having to reinstall Blesta if something were to go wrong during the migration process.

Next Steps

Once you have a fresh install of Blesta, with the Import Manager installed, you're ready to continue. Click on the application that you are importing from below. The process can vary from application to application.

Final Steps

  1. Verify that all clients, packages, services, invoices, and transactions have been imported correctly.
  2. If tickets were imported, make sure your staff member has been granted access to your support departments under Support > Staff. Otherwise tickets may have been imported that you cannot see.
  3. Go through all system and company settings under [Settings] > Company and [Settings] > System and make sure everything is configured correctly. Correct anything that needs adjusted.
  4. Enable the cron job for Blesta under [Settings] > [System] > Automation by copying the "Cron Command" and configuring your server to run the command every 5 minutes.
  5. Congratulations, the import has been completed!

Additional Information


When services and domains are imported and there is no mapping file, they will be imported using the Universal Module, or the Generic Domains module respectively. People have asked how, post migration, they can switch all of their domains from Generic Domains to another registrar module. We are providing the following query AS-IS to accomplish this. If you have multiple domain registrars that were imported into Blesta using the Generic Domains module, this may not be a solution for you. It will update ALL Generic Domain module domains to the registrar module specified.


Make sure you know what you're doing and BACKUP your database before running any queries.

This will update all "Generic Domains" domains to use the Enom module. To update all Generic Domains domains to use another registrar, replace the 8th line:

INNER JOIN `modules` AS enom_module ON `enom_module`.`class` = 'enom'

By changing 'enom' to the desired registrar module.

UPDATE services
INNER JOIN `module_rows` ON `services`.`module_row_id` = `module_rows`.`id`
INNER JOIN `modules` ON `modules`.`id` = `module_rows`.`module_id` AND `modules`.`class` = 'generic_domains'
INNER JOIN `package_pricing` ON `package_pricing`.`id` = `services`.`pricing_id`
INNER JOIN `packages` ON `package_pricing`.`package_id` = `packages`.`id`
INNER JOIN `package_meta` ON `package_meta`.`package_id` = `packages`.`id` AND `package_meta`.`key` = 'tlds'
INNER JOIN `pricings` ON `package_pricing`.`pricing_id` = `pricings`.`id`
INNER JOIN `modules` AS enom_module ON `enom_module`.`class` = 'enom'
INNER JOIN `module_rows` AS enom_module_row ON `enom_module_row`.`module_id` = `enom_module`.`id`
INNER JOIN `pricings` AS enom_pricings ON `enom_pricings`.`term` = `pricings`.`term`
    AND `enom_pricings`.`period` = `pricings`.`period`
INNER JOIN `package_pricing` AS enom_package_pricing ON `enom_package_pricing`.`pricing_id` = `enom_pricings`.`id`
INNER JOIN `packages` AS enom_packages ON `enom_package_pricing`.`package_id` = `enom_packages`.`id`
    AND `enom_packages`.`module_id` = `enom_module`.`id`
INNER JOIN `package_meta` AS enom_package_meta ON `enom_packages`.`id` = `enom_package_meta`.`package_id` AND `enom_package_meta`.`key` = 'tlds'
    AND `enom_package_meta`.`value` = `package_meta`.`value`
SET `services`.`module_row_id` = `enom_module_row`.`id`, `services`.`pricing_id` = `enom_package_pricing`.`id`
  • No labels