Sync Engine & Troubleshooting
Getting Started
What Is Syncly for GoHighLevel? System Requirements Installation Guide Quick Start: Setup Wizard Plugin Dashboard Overview Free vs Pro: Feature Comparison White-Label Domain Setup WordPress Multisite SetupConnection & Authentication
Connecting via OAuth2 Manual API Token Authentication API Scope Detection Multi-Location and Agency Setup Disconnecting and Reconnecting Security Best Practices Connection TroubleshootingField Mapping
How Field Mapping Works Setting Up Field Mapping Sync Direction: To GHL, From GHL, Both Ways Computed and Virtual Fields Extended Field Mapping (Pro) AI-Assisted Field Suggestions (Pro)User Sync & Tag Management
How User Sync Works Configuring User Sync Settings Bulk User Sync Login Tracking Ping-Pong Prevention Role-Based Tagging System Global Tags (Pro) Sync Preview and Dry Run (Pro) User Profile GHL SectionContent Restrictions
How Tag-Based Restrictions Work Page and Post Metabox Setup [syncly_restrict] Shortcode Gutenberg Restricted Content Block Elementor Widget Conditions (Pro) Archive and REST API Protection (Pro) Admin Bypass and Override Rules (Pro)Forms & Shortcodes
Embedding Syncly Forms: Overview [syncly_form] Shortcode [syncly_user_meta] Shortcode Syncly Form Gutenberg Block Syncly Form Elementor Widget Per-Form Submission Limits (Pro) Form Autofill and Logged-In-Only Mode Contact Form 7 IntegrationWebhooks & Bulk Import
Setting Up Inbound Webhooks Webhook Event Types Bulk Import from GoHighLevel Webhook Troubleshooting Ping-Pong Prevention and GuardsWooCommerce Integration
WooCommerce Integration Overview Per-Product GHL Tags (Pro) Abandoned Cart Tracking (Pro) Pipeline and Opportunity Management (Pro) Lead-to-Customer Conversion (Pro) WooCommerce Extended Field Mapping (Pro)LearnDash Integration
LearnDash Integration Overview (Pro) Course Enrollment and Completion Tags (Pro) Tag-Based Auto-Enrollment (Pro) Quiz Score-Based Threshold Tagging (Pro) Lesson and Topic Completion Tags (Pro) Syncing Course Progress to GHL (Pro) LearnDash Group Sync (Pro) LearnDash Extended Field Mapping (Pro)BuddyBoss Integration
BuddyBoss Group Sync to GHL Custom Objects BuddyBoss Group Admin Metabox Bulk Group Sync BuddyBoss XProfile Field Mapping (Pro) Family BuddyBoss Groups (Pro)Pro Features
Custom Objects: Overview (Pro) Mapping Post Types to GHL Custom Objects (Pro) Custom Object Contact Associations (Pro) Family Relationships: Overview (Pro) Managing Family Members and Invitations (Pro) Family Tag Inheritance (Pro) Conditional Navigation Menus (Pro) [syncly_family_manager] Shortcode (Pro) Analytics Dashboard (Pro) Public REST API Endpoints (Pro)Sync Engine & Troubleshooting
How the Sync Queue Works Sync Logs and Reading Them Enhanced Sync Logs (Pro) Rate Limits and API Quotas Auto-Login Links Email Notifications Setup Advanced Settings (Cache, Batch Size, Retention) Common Issues and Solutions Frequently Asked Questions Uninstalling the PluginSync Engine & Troubleshooting
How the Sync Queue Works
Overview
Every sync operation goes through a queue. Nothing syncs synchronously during a page request. Events are queued, then processed in background batches. This keeps your site fast and provides resilience: if a sync fails, it can be retried.
The queue processor
Powered by Action Scheduler (bundled). Processes every 10 seconds via WP-Cron or server cron. Each run processes up to 50 items by default (configurable in Advanced settings).
Queue limits
- Maximum 10,000 items per site
- Batch size: 50 items per run (configurable)
- Duplicate prevention: if a pending job for the same user already exists, it is updated instead of duplicated
- Multisite network lock: 2-minute site transient prevents multiple sites processing simultaneously
Rate limiting
The queue processor checks GHL API rate limits before each call: 100 requests per 10 seconds (burst) and 200,000 per day. If a limit is hit, the batch pauses and retries on the next run.