HubSpot vs Kajabi: Gap Analysis & Campaign Management Expansion¶
Executive Summary¶
This document analyzes the current state of nurturing capabilities in Vell, compares Kajabi and HubSpot features, and provides a roadmap for expanding HubSpot integration to replace Kajabi's email campaign functionality.
Certificate Status: ✅ Valid until January 7, 2027
- Covers: *.vell.ai, www.vell.ai, vell.ai
- Associated with: 2 CloudFront distributions, 3 ALBs (prod, dev, demo)
Current State Analysis¶
What You Have Today¶
1. HubSpot Integration (Existing)¶
| Feature | Status | Location |
|---|---|---|
| CRM Contact Registration | ✅ Implemented | HubspotService.php:68-88 |
| AWS Renewal Pipeline Sync | ✅ Implemented | HubspotService.php:93-167 |
| Deal Stage Automation | ✅ Implemented | 5-stage urgency mapping |
| Pipeline Statistics | ✅ Implemented | getRenewalPipelineStats() |
| Admin Dashboard | ✅ Implemented | hubspot::index view |
| Scheduled Sync Job | ✅ Implemented | Twice daily (9 AM, 3 PM) |
2. Email Funnel System (Existing)¶
| Feature | Status | Location |
|---|---|---|
| CoSell Partnership Sequences | ✅ Implemented | EmailFunnelService.php |
| Affiliate Email Sequences | ✅ Implemented | EmailFunnelService.php |
| Scheduled Follow-ups (3x) | ✅ Implemented | Days 3, 7, 14 |
| Email Tracking (sent/opened/clicked) | ✅ Implemented | CoSellEmailSequence.php |
| Sequence Cancellation | ✅ Implemented | On invitation accepted |
3. AWS SES Email Infrastructure¶
| Feature | Status |
|---|---|
| Transactional Email | ✅ Via SES |
| DKIM Authentication | ✅ 3 DKIM records |
| DMARC Policy | ✅ p=quarantine |
| Bounce Handling | ✅ bounce.email.vell.ai |
| Email Subdomain | ✅ email.vell.ai |
Feature Comparison: Kajabi vs HubSpot vs Current App¶
Email Marketing & Nurturing¶
| Feature | Kajabi | HubSpot (Free/Starter) | HubSpot (Pro/Enterprise) | Current App |
|---|---|---|---|---|
| Email Sequences | ✅ | ❌ | ✅ Sequences API | ✅ CoSell only |
| Automated Follow-ups | ✅ | ⚠️ Limited | ✅ Full workflows | ✅ 3-step |
| Email Templates | ✅ Drag-drop | ✅ Basic | ✅ Advanced | ⚠️ Blade only |
| A/B Testing | ✅ | ❌ | ✅ | ❌ |
| Send Time Optimization | ✅ | ❌ | ✅ | ❌ |
| Email Analytics | ✅ | ✅ Basic | ✅ Full | ⚠️ Basic |
| List Segmentation | ✅ | ✅ | ✅ Advanced | ❌ |
| Contact Tagging | ✅ | ✅ | ✅ | ⚠️ Manual |
CRM & Contact Management¶
| Feature | Kajabi | HubSpot (Free/Starter) | HubSpot (Pro/Enterprise) | Current App |
|---|---|---|---|---|
| Contact Database | ✅ | ✅ 1M contacts | ✅ Unlimited | ✅ Users table |
| Deal Pipeline | ⚠️ Basic | ✅ | ✅ Multiple | ✅ AWS Renewals |
| Custom Properties | ✅ | ✅ 10 | ✅ Unlimited | ✅ 10 AWS props |
| Contact Enrichment | ❌ | ❌ | ✅ | ❌ |
| Company Records | ❌ | ✅ | ✅ | ✅ MarketplacePartner |
Landing Pages & Content¶
| Feature | Kajabi | HubSpot (Free/Starter) | HubSpot (CMS Hub) | Current App |
|---|---|---|---|---|
| Landing Page Builder | ✅ Excellent | ❌ | ✅ | ⚠️ Blade templates |
| Blog | ✅ | ❌ | ✅ | ✅ Built-in |
| Forms | ✅ | ✅ | ✅ | ✅ Built-in |
| SEO Tools | ✅ | ❌ | ✅ | ⚠️ Basic |
| Hosting | ✅ Included | ❌ | ✅ | ✅ AWS |
Courses & Memberships (NOT NEEDED FOR VELL.AI)¶
| Feature | Kajabi | HubSpot | Current App |
|---|---|---|---|
| Course Platform | ✅ | ❌ | ❌ |
| Membership Sites | ✅ | ❌ | ❌ |
| Video Hosting | ✅ | ❌ | ❌ |
| Community | ✅ | ❌ | ❌ |
Note: Course/membership features are needed for itsrondavis.com, not vell.ai.
Gap Analysis: What's Missing for Full Kajabi Replacement¶
Critical Gaps (Must Fix)¶
| Gap | Current State | Required for Replacement | Effort |
|---|---|---|---|
| G1: General Email Sequences | Only CoSell invitations | Any contact nurture campaign | Medium |
| G2: HubSpot Sequence Enrollment | Not implemented | Enroll contacts in HubSpot sequences | Medium |
| G3: Campaign Management UI | None | Create/manage campaigns in app | High |
| G4: Email Template Builder | Blade only | WYSIWYG editor or HubSpot sync | High |
Nice-to-Have Gaps¶
| Gap | Impact | Effort |
|---|---|---|
| G5: Email Analytics Dashboard | Visibility | Medium |
| G6: A/B Testing | Optimization | High |
| G7: Send Time Optimization | Engagement | Medium |
| G8: Advanced Segmentation | Targeting | Medium |
Non-Gaps (Already Covered)¶
| Feature | How It's Covered |
|---|---|
| Homepage hosting | Laravel app (after DNS migration) |
| Contact registration | HubSpot auto-sync on user signup |
| AWS renewal tracking | HubSpot pipeline integration |
| Email delivery | AWS SES with DKIM/DMARC |
| Blog | Built-in blog feature |
Recommended Architecture: Hybrid Approach¶
Option A: HubSpot-Managed Campaigns (Recommended)¶
┌─────────────────────────────────────────────────────────────────┐
│ VELL APP │
├─────────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Campaign │ │ Sequence │ │ Analytics │ │
│ │ Manager │───▶│ Enrollor │───▶│ Dashboard │ │
│ │ (Admin UI) │ │ (API) │ │ (Stats) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │ │ │ │
└─────────┼──────────────────┼──────────────────┼─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────────────────────────────────────────────────┐
│ HUBSPOT (API) │
├─────────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Sequences │ │ Contacts │ │ Analytics │ │
│ │ (Created │ │ (CRM) │ │ (Tracking) │ │
│ │ in HubSpot)│ │ │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ Email │ │
│ │ Delivery │ │
│ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
Pros: - Leverage HubSpot's email builder and templates - Full analytics in HubSpot - No email deliverability concerns - Lower development effort
Cons: - Requires HubSpot Sales Hub Pro ($450/seat/mo) or Enterprise for Sequences API - Email design happens in HubSpot, not Vell
Option B: App-Managed Campaigns with SES¶
┌─────────────────────────────────────────────────────────────────┐
│ VELL APP │
├─────────────────────────────────────────────────────────────────┤
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Campaign │ │ Email │ │ Analytics │ │
│ │ Manager │───▶│ Sequences │───▶│ Dashboard │ │
│ │ (Admin UI) │ │ (Laravel) │ │ (Tracking) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌─────────────┐ │ │
│ │ │ AWS SES │ │ │
│ │ │ Delivery │ │ │
│ │ └─────────────┘ │ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────────────┐
│ │ HubSpot (CRM Only) │
│ │ - Contact sync │
│ │ - Deal tracking (AWS renewals) │
│ │ - Activity logging │
│ └─────────────────────────────────────────────────────────────┘
└─────────────────────────────────────────────────────────────────┘
Pros: - Full control over email design - Uses existing SES infrastructure - Lower HubSpot cost (Free/Starter tier works) - Extends existing CoSell email system
Cons: - More development effort - Need to build email template editor - Deliverability management burden
Recommended Implementation: Option A (HubSpot-Managed)¶
Given your existing HubSpot investment and the need for AWS partner nurturing, Option A provides the fastest path with highest reliability.
HubSpot Tier Requirements¶
| Feature Needed | Minimum Tier | Monthly Cost |
|---|---|---|
| Sequences API | Sales Hub Pro | $100/seat ($90/seat annual) |
| Contact Enrollment | Sales Hub Pro | Included |
| Workflow Automation | Sales Hub Pro | Included (300 workflows) |
| Analytics API | Any paid tier | Included |
Pricing corrected Feb 2026. Previous version listed $450/seat — actual Sales Hub Pro pricing is $100/seat/mo (monthly) or $90/seat/mo (annual). One-time onboarding fee of $1,500. See
HUBSPOT_VS_SALESFORCE_COMPARISON.mdfor full pricing breakdown.
Recommendation: Sales Hub Professional ($100/seat/mo) provides: - Sequences API access (v4) - 500 sequences per account - Automated enrollment via API - Full CRM analytics - Sales forecasting and custom dashboards
Implementation Phases¶
Phase 1: Sequence Enrollment API (Week 1-2)¶
New Files:
app/Extensions/Hubspot/System/Services/SequenceService.php
app/Extensions/Hubspot/System/Jobs/EnrollContactInSequence.php
New Methods:
// HubspotService.php
public function getSequences(): array
public function getSequence(string $sequenceId): array
public function enrollContact(string $contactId, string $sequenceId, string $senderEmail): array
public function unenrollContact(string $contactId, string $sequenceId): array
public function getEnrollmentStatus(string $contactId): array
Phase 2: Campaign Manager UI (Week 2-3)¶
New Files:
app/Extensions/Hubspot/System/Http/Controllers/CampaignController.php
app/Extensions/Hubspot/resources/views/campaigns/index.blade.php
app/Extensions/Hubspot/resources/views/campaigns/create.blade.php
Features: - List available HubSpot sequences - View enrollment statistics - Bulk enroll contacts from partner list - Trigger sequences for AWS agreement renewals
Phase 3: AWS Partner Nurture Integration (Week 3-4)¶
Enhancement to existing renewal sync: - Auto-enroll AWS partners in nurture sequences based on agreement status - Create separate sequences for each urgency level - Track sequence completion in deal notes
API Reference¶
HubSpot Sequences API v4¶
Endpoints:
GET /automation/v4/sequences # List all sequences
GET /automation/v4/sequences/{id} # Get sequence details
POST /automation/v4/sequences/enrollments # Enroll contact
GET /automation/v4/sequences/enrollments/contact/{contactId} # Check status
DELETE /automation/v4/sequences/enrollments/{enrollmentId} # Unenroll
Required Scopes:
Enrollment Limits: - 1,000 enrollments per inbox per day - One sequence per contact at a time
Cost Comparison¶
Current (Kajabi)¶
| Item | Monthly Cost |
|---|---|
| Kajabi Growth | $199-399 |
| Total | $199-399/mo |
Proposed (HubSpot Pro + AWS)¶
| Item | Monthly Cost |
|---|---|
| HubSpot Sales Hub Pro (1 seat) | $100 ($90 if annual) |
| AWS SES | ~$10 |
| Route53 | $0.50 |
| Onboarding (one-time, amortized/12) | $125 |
| Total (Year 1) | ~$235/mo |
| Total (Year 2+) | ~$110/mo |
Cost correction (Feb 2026): Previous version listed $450/seat for HubSpot Pro. Actual price is $100/seat/mo. This makes Option A (HubSpot-Managed) significantly more cost-effective than previously estimated.
Alternative: HubSpot Starter + App-Managed¶
| Item | Monthly Cost |
|---|---|
| HubSpot Starter (1 seat) | $20 |
| AWS SES | ~$10 |
| Development effort | One-time |
| Total | ~$30/mo |
Recommendation: At $100/seat/mo (corrected from previous $450), Option A (HubSpot-Managed with Pro tier) is now the clear winner — only ~$80/mo more than Starter, with full Sequences API access and no additional development burden.
Migration Checklist¶
Pre-Migration¶
- Upgrade HubSpot to Sales Hub Pro (or choose Option B)
- Create nurture sequences in HubSpot for AWS renewals
- Map existing Kajabi email sequences to HubSpot
- Test sequence enrollment API
DNS Migration¶
- Run Route53 batch import script
- Update production environment variables
- Deploy Laravel with new config
- Change nameservers at registrar
- Verify all subdomains resolve
Post-Migration¶
- Verify email delivery
- Test sequence enrollments
- Remove Kajabi custom domain
- Cancel Kajabi subscription
- Monitor for 30 days
Decision Matrix¶
| Criterion | Weight | Option A (HubSpot Pro) | Option B (App-Managed) |
|---|---|---|---|
| Time to Market | 30% | ⭐⭐⭐⭐⭐ (2 weeks) | ⭐⭐⭐ (6 weeks) |
| Monthly Cost | 20% | ⭐⭐⭐⭐ ($110/mo) | ⭐⭐⭐⭐⭐ ($30/mo) |
| Email Deliverability | 20% | ⭐⭐⭐⭐⭐ (HubSpot) | ⭐⭐⭐⭐ (SES) |
| Feature Richness | 15% | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| Maintenance Burden | 15% | ⭐⭐⭐⭐⭐ (HubSpot) | ⭐⭐⭐ (Self) |
| Weighted Score | 4.6 | 3.5 |
Recommendation: Option A (HubSpot Pro) for fastest time-to-value. At $110/mo (corrected from $460/mo), the cost gap with Option B is now minimal, making Option A the clear choice.
Next Steps¶
- Decision: Choose Option A or B
- If Option A: Upgrade HubSpot tier
- If Option B: Approve development timeline
- Both: Execute DNS migration (can happen in parallel)