Upgrading Mixpost Enterprise to v7 from v6
Always back up your database before starting the upgrade. If something goes wrong, you will need it to restore your previous state.
This guide walks you through upgrading Mixpost Enterprise from v6 to v7. Choose the path that matches your installation method: Docker or PHP (manual / Laravel package).
Mixpost Enterprise v7 bundles the Mixpost Pro v6 feature set:
- Engagement — manage comments from your connected accounts in one place, with optional AI auto-labeling, sentiment analysis, spam and hate-speech detection, and an AI reply composer.
- Pixelfed — connect Pixelfed accounts and import post analytics.
- MCP server — let AI clients connect to your workspace through the Model Context Protocol.
Engagement: provider permissions & re-authentication
The new Engagement pulls comments, replies, and mentions from your connected accounts into the Inbox in real time using provider webhooks. Webhooks need extra permissions on your provider apps and a fresh subscription for every account, so plan for two phases around the upgrade:
- Before the upgrade — add the new permissions/scopes to each social provider app you use, and submit any required App Review early (Meta and LinkedIn approvals can take several days).
- After the upgrade — turn on webhooks for each provider and reconnect every existing account.
Engagement is enabled by default (MIXPOST_INBOX=true). If you do not want it, set MIXPOST_INBOX=false and skip the rest of this section.
Engagement does not support TikTok or Pinterest yet.
Before the upgrade — add provider permissions
Add the items below to the relevant provider apps before you reconnect accounts:
| Provider | Add to your app | App Review |
|---|---|---|
| Facebook (Pages) | pages_manage_metadata scope — use case Manage everything on your Page | Not required — active once the app is published |
| Facebook (optional — to show who commented from a personal profile) | Business Asset User Profile Access feature (Business app only) | Required |
| Instagram via Facebook login | instagram_manage_comments scope — use case Manage messaging & content on Instagram | Required (advanced access) |
| Instagram standalone | instagram_business_manage_comments scope | Required (advanced access) |
| Threads | threads_read_replies and threads_manage_replies scopes | Required |
| LinkedIn (Pages) | No new scope, but Engagement requires the Community Management API product and your numeric App ID saved in Mixpost | Covered by Community Management API product access |
Exact steps live in each provider's setup and App Review guides:
- Facebook — Add permissions · App Review · Enable Engagement
- Instagram (standalone) — Add permissions · Configure the Engagement
- Threads — Add permissions · App Review · Configure the Engagement
- LinkedIn — Community Management API · Configure the Engagement
Adding these scopes before upgrading means that when you reconnect an account afterwards, the authorization screen already asks for the new permissions in a single pass — you avoid a second reconnect later.
After the upgrade — enable webhooks & reconnect accounts
Existing accounts were connected without the new permissions and without a webhook subscription, so the Inbox stays empty until you:
- Turn on webhooks for the following providers (one-time per app):
- Facebook / Instagram (via Facebook) — open the Facebook service form in Mixpost and turn on Enable Webhooks. Mixpost registers the app-level webhook and subscribes each Page (and its linked Instagram account) automatically. See Enable Engagement.
- Instagram standalone — enable webhooks in Mixpost, then register the
inbox-webhookcallback URL in the Meta dashboard. See Configure the Engagement. - Threads — set a Webhook Verify Token in Mixpost, then add the callback URL and subscribe to the
repliesandmentionsfields in the Meta dashboard. See Configure the Engagement. - LinkedIn — save your App ID in the LinkedIn service form, then register the callback URL under the app's Webhooks tab. See Configure the Engagement.
- Reconnect your existing accounts on these providers — for Facebook, Instagram, Threads, and LinkedIn only, go to each workspace → Accounts and re-authenticate the connected accounts on those providers. This grants the new permissions and subscribes each account to webhooks. Accounts on other providers — and any you do not reconnect — keep publishing normally but will not receive any Engagement.
Your Mixpost instance must be reachable over HTTPS at a public URL for providers to deliver webhooks.
Upgrade Using Docker
- Navigate to the folder containing your
docker-compose.yml. - Run the following commands:
# Pull the latest version
docker compose pull
# Stop and remove the old container
docker compose down
# Start a new container
docker compose up -d
If something goes wrong, revert to the v6 image tag (inovector/mixpost-enterprise:v6) in your docker-compose.yml, restore your database backup, and run docker compose up -d again.
- Set up Engagement — turning it on takes more than reconnecting accounts: each provider's webhooks must be enabled first, and only Facebook, Instagram, Threads, and LinkedIn are supported. Follow Engagement: provider permissions & re-authentication.
Upgrade in a PHP Environment
Choose your installation type below.
Manual Installation (PHP)
If you installed Mixpost Enterprise using the manual installation method, use the automatic upgrade script:
curl -fsSL https://raw.githubusercontent.com/inovector/MixpostEnterpriseApp/main/scripts/upgrade/upgrade_v7.sh | bash
The script handles dependency updates, migrations, asset publishing, and cache clearing.
After the script completes, set up Engagement — see Engagement: provider permissions & re-authentication. Enabling it takes more than reconnecting accounts: each provider's webhooks must be turned on first, and only Facebook, Instagram, Threads, and LinkedIn are supported.
Laravel Package
If Mixpost Enterprise is installed within an existing Laravel application, follow these steps.
Mixpost Enterprise v7 requires Laravel 12 or 13. If your application runs Laravel 10 or 11, upgrade Laravel first before proceeding.
Step 1. Update dependencies
composer require inovector/mixpost-enterprise "^7.0" -W
This also upgrades the bundled inovector/mixpost-pro-team package to v6 and pulls in laravel/mcp (a new dependency for the MCP server). The -W (--with-all-dependencies) flag lets Composer resolve these automatically.
Step 2. Run database migrations
v7 adds new tables for the Engagement and Pixelfed analytics (from the bundled Pro v6 package). Copy the migration file and run it:
cp vendor/inovector/mixpost-pro-team/database/migrations-upgrade/2026_05_22_123148_upgrade_mixpost_v6.php database/migrations/
php artisan migrate
Step 3. Publish assets
php artisan mixpost:publish-assets --force=true
php artisan mixpost-enterprise:publish-assets --force=true
Step 4. Update config
If you previously published the Mixpost config file, re-publish it so the new keys are available:
php artisan vendor:publish --tag=mixpost-config --force
v7 introduces these new config keys (all optional, with sensible defaults):
queue.inbox(MIXPOST_QUEUE_INBOX, defaultmixpost-inbox) — queue for Engagement jobs.features.inbox_engagement(MIXPOST_INBOX, defaulttrue) — toggles the Engagement.
See the environment variables reference for the full list.
Step 5. Restart Horizon
v7 adds a new mixpost-inbox queue. If you are already using the Horizon::supervisors() helper (set up during the v6 upgrade), no configuration change is required — the helper provisions a supervisor for the new queue automatically. You only need to restart Horizon so it picks up the new layout:
php artisan horizon:terminate
If you replaced Horizon::supervisors() with hand-written supervisor blocks in config/horizon.php, add the mixpost-inbox queue to a supervisor that processes Mixpost jobs, otherwise Engagement messages will not be ingested. We recommend switching back to Horizon::supervisors() — see the Horizon configuration guide.
Step 6. Clear the cache
php artisan route:clear
php artisan view:clear
php artisan mixpost:clear-services-cache
php artisan mixpost:clear-settings-cache
Step 7. Optimize application
php artisan optimize
Step 8. Restart Reverb
Only required if reverb is your BROADCAST_DRIVER. Skip this step otherwise.
php artisan reverb:restart
Step 9. Set up Engagement
Enable the new Engagement: turn on each provider's webhooks, then reconnect the affected accounts. Only Facebook, Instagram, Threads, and LinkedIn are supported. See Engagement: provider permissions & re-authentication for the full steps.