HostCart
All articles
Web Panel

“Seamless Integration: How to Embed JetBackup 5 Client Portals Directly into Your WHMCS Client Area”

Embedding JetBackup 5’s self‑service portal directly into the WHMCS client area gives hosting providers a friction‑free, branded backup experience that cuts support tickets and opens upsell opportunities. This guide walks you through installing the official JetBackup addon, crafting a custom WHMCS template with an iframe, and using a secure WHMCS hook to generate time‑limited portal URLs—all while keeping security tight and the integration future‑proof.

6 min read
“Seamless Integration: How to Embed JetBackup 5 Client Portals Directly into Your WHMCS Client Area”

Embedding JetBackup 5 Self‑Service Portals Directly Inside WHMCS Client Area

For hosting providers, letting customers manage their own backups is a powerful differentiator. JetBackup 5 delivers a robust, feature‑rich backup engine, while WHMCS offers a seamless billing and client‑area experience. By embedding JetBackup’s self‑service portal straight into the WHMCS client area, you create a unified, friction‑free workflow that cuts support tickets, boosts satisfaction, and opens doors to upsell premium backup plans.

This guide walks you through every step—from prerequisites to final testing—while sharing best‑practice tips that keep your integration secure and future‑proof.

1. Prerequisites & Initial Setup

  • WHMCS 8.5+ (or 8.4 with the latest patches) to guarantee API‑hook compatibility.
  • JetBackup 5 installed on the same server as WHM/cPanel with the client‑portal component activated.
  • Root or reseller access to cPanel/WHM for API‑token creation and DNS tweaks.
  • SSL certificate covering both yourdomain.com and client.yourdomain.com—the portal must run over HTTPS.
  • Basic knowledge of WHMCS module development, or a willingness to follow the code snippets below.

Once these items are in place, you’re ready to bridge the two platforms.

2. Installing the JetBackup WHMCS Module

JetBackup supplies an official WHMCS addon that handles provisioning, restoration, and portal generation. Follow these steps:

  1. Download the module from the JetBackup client portal or your account dashboard.
  2. Upload the extracted folder to modules/addons/jetbackup on your WHMCS server.
  3. Log into WHMCS → Setup → Addon Modules, locate “JetBackup 5,” and click Activate.
  4. Enter the required configuration:
    • API URL – typically https://yourcpanelserver:2087/json-api/.
    • API Token – generate a token in WHM (Home → Development → Manage API Tokens) with All Features or at least Backup permissions.
    • Portal URL – the base URL where JetBackup’s client portal resides (e.g., https://client.yourdomain.com/jetbackup).
  5. Save the settings. WHMCS will now communicate with JetBackup via its internal API.

After activation, a new “JetBackup” tab appears on each client’s product details page—your first sign that the integration works.

3. Embedding the Self‑Service Portal Inside the WHMCS Client Area

The default module opens the portal in a new window, but most providers prefer an embedded experience. The method below uses an <iframe> and a WHMCS hook to inject the portal into a custom client‑area page.

3.1 Create a Custom Client Area Template

  1. Copy templates/clientarea.tpl to templates/custom/jetbackupclientarea.tpl.
  2. Open the new file and locate the main content block (usually marked by {$content}).
  3. Replace it with the iframe markup:
<div class="jetbackup-embed">
    <iframe src="{$jetbackupUrl}" width="100%" height="900" frameborder="0" scrolling="auto">
        Your browser does not support iframes.
    </iframe>
</div>

We’ll supply {$jetbackupUrl} via a hook.

3.2 Add a WHMCS Hook to Generate the Secure URL

Create includes/hooks/jetbackupClientPortal.php with the following content:

<?php
use WHMCS\\ClientArea;
use WHMCS\\Module\\Addon\\JetBackup\\JetBackup;

add_hook('ClientAreaPage', 1, function($vars) {
    // Run only on the custom template
    if ($vars['templatefile'] !== 'jetbackupclientarea') {
        return;
    }

    // Get logged‑in client ID
    $clientId = $_SESSION['uid'] ?? 0;
    if (!$clientId) {
        return;
    }

    // Load the JetBackup addon instance
    $jetBackup = new JetBackup();

    // Generate a signed, time‑limited portal URL
    $portalUrl = $jetBackup->generateClientPortalUrl($clientId, [
        'expiry'   => time() + 3600, // 1‑hour validity
        'features' => ['restore', 'download', 'schedule']
    ]);

    // Pass the URL to the template
    return ['jetbackupUrl' => $portalUrl];
});
?>

The generateClientPortalUrl method (bundled with the official JetBackup module) creates a signed token that prevents unauthorized access. Adjust the features array to limit what customers can do.

3.3 Register the New Template in WHMCS

In WHMCS → Setup → General Settings → Client Area, set the Default Template to custom/jetbackupclientarea for the product or service group you wish to expose. Alternatively, use the product‑level “Custom Client Area Template” option under the product’s Module Settings.

3.4 Styling & Responsiveness

Because the portal is inside an iframe, tweak the CSS to avoid double scrollbars. Add the following to your custom CSS file (usually templates/custom/css/custom.css):

.jetbackup-embed iframe {
    min-height: 800px;
    border: none;
}
@media (max-width: 768px) {
    .jetbackup-embed iframe {
        height: 1200px; /* More vertical space on mobile */
    }
}

4. Testing, Security Checks, and Best Practices

4.1 Functional Testing

  1. Log in as a client with an active hosting package that has JetBackup enabled.
  2. Navigate to the custom client‑area page (e.g., clientarea.php?action=services → “Backup Portal”).
  3. Verify that the iframe loads the JetBackup UI without prompting for additional login credentials.
  4. Test core actions: create a new backup schedule, download a recent backup, and initiate a restore to a test sub‑directory.

4.2 Security Review

  • Signed URLs – Keep token expiry short (1–2 hours) to reduce the risk of URL leakage.
  • SameSite Cookies – If you share session cookies between WHMCS and JetBackup, set SameSite=Lax or Strict to prevent CSRF.
  • Content Security Policy (CSP) – Add frame-src https://client.yourdomain.com to your CSP header so only the trusted portal can be framed.
  • IP Restrictions – Optionally limit the JetBackup API token to specific server IPs via WHM’s API Token settings.

4.3 Ongoing Maintenance

Both WHMCS and JetBackup receive frequent updates. Keep the integration stable by:

  1. Subscribing to release notes for each product.
  2. Testing upgrades on a staging copy before applying them to production.
  3. Reviewing the hook code for deprecation warnings (e.g., changes in the JetBackup SDK).
  4. Monitoring logs (modules/addons/jetbackup/logs/ and WHMCS activity logs) for failed token generations or API errors.

5. Enhancing the Client Experience

Embedding the portal is just the foundation. Consider these value‑adds to turn backup management into a revenue driver:

  • Automated Email Reminders – Use WHMCS automation to alert clients when their backup quota nears its limit.
  • Upsell Add‑On Products – Offer “Premium Backup Retention” as a WHMCS add‑on that automatically adjusts the JetBackup plan via the API.
  • Self‑Service Restoration Guides – Embed short video tutorials or a collapsible FAQ inside the same client‑area page.
  • Analytics Dashboard – Pull backup usage stats via JetBackup’s API and display a summary chart in WHMCS (e.g., total GB stored, last backup date).

Conclusion

Integrating JetBackup 5’s self‑service portal directly into the WHMCS client area delivers a seamless, branded experience that empowers customers and lightens the support load. By installing the official JetBackup addon, crafting a custom client‑area template, and using a concise WHMCS hook to generate secure, time‑limited URLs, you can embed a fully functional backup interface without compromising security.

Remember to test thoroughly, enforce strong token policies, and keep both platforms up to date. With the foundation in place, you can further enrich the client journey through automated communications, upsell opportunities, and insightful analytics—all while maintaining the professional polish that modern hosting providers expect.

jetbackupwhmcswhmcs-integrationserver-backupsclient-portalweb-hostingapi-integration