Back to Blog
Technical Guides•7 min read

How PackHours Integrates with GoHighLevel: A Complete Guide

PackHours Team
•

How PackHours Integrates with GoHighLevel

PackHours is built specifically for GoHighLevel users. Here's exactly how the integration works under the hood.

OAuth Authentication

When you sign up for PackHours, we use GHL's OAuth system to securely connect to your account. This means:

  • No password sharing - You authorize via GHL's secure login
  • Limited permissions - We only request access to what we need
  • You're in control - Revoke access anytime from your GHL settings
  • What permissions do we need?

  • contacts.readonly - To sync student information
  • calendars.readonly - To detect completed appointments
  • conversations.write - To send low balance reminders
  • webhooks.write - To receive real-time updates
  • Webhook Configuration

    PackHours automatically sets up webhooks in your GHL account to monitor:

    Purchase Events

    When a student buys a package product:
  • GHL sends a webhook to PackHours
  • We identify the package based on product ID
  • Hours are added to the student's balance
  • Transaction is logged with timestamp
  • Appointment Completions

    When a lesson is marked complete:
  • GHL sends appointment.completed webhook
  • We calculate duration (e.g., 60 minutes = 1 hour)
  • Hours are deducted from student's balance
  • Transaction is logged with appointment details
  • Contact Updates

    When student info changes in GHL:
  • Contact update webhook fires
  • PackHours syncs the latest information
  • Student record is updated (name, email, phone)
  • Data Sync & Storage

    What lives in GHL?

  • Student contact details
  • Payment information
  • Appointment schedules
  • Messages and conversations
  • What lives in PackHours?

  • Package definitions (hours, pricing)
  • Hour balances per student
  • Transaction history
  • Portal access tokens
  • This architecture means your student data stays in GoHighLevel where it belongs.

    Real-Time vs. Batch Processing

    Most events are processed in real-time:

  • Purchases add hours instantly
  • Appointments deduct hours immediately
  • Balance checks are always current
  • Some operations happen in batches:

  • Low balance reminder checks (every hour)
  • Analytics aggregation (nightly)
  • Contact sync verification (daily)
  • Security & Privacy

    We take security seriously:

  • Encrypted connections - All API calls use HTTPS/TLS
  • Token rotation - OAuth tokens are refreshed automatically
  • Minimal data - We only store what's necessary for the service
  • No data selling - Your information is never shared or sold
  • Troubleshooting Common Issues

    Webhooks not firing?

    Check that webhooks are enabled in your GHL account and that the URLs haven't been modified.

    Hours not syncing?

    Verify the package is correctly linked to your GHL product ID.

    Can't connect GHL account?

    Ensure you have admin permissions on the sub-account you're trying to connect.


    Need help with your integration? Contact our support team - we're here to help!

    Tags

    #ghl#integration#technical#setup

    Ready to simplify your studio?

    Stop tracking lesson hours manually. Let PackHours automate the process and save you time.