v2.0.0 — standalone package
laravel-onesignal is now fully standalone — the multek/laravel-customer-engagement dependency is gone, and the package owns the complete OneSignal lifecycle: profiles (identity + native properties + Email/SMS subscriptions), segmentation tags, custom events, and push notifications.
Breaking changes
- Removed
multek/laravel-customer-engagementdependency,OneSignalDriver, and driver auto-registration — consumers needing the driver architecture stay on^1.1 - Identity fields (email/phone/name) are no longer copied into data tags; email/phone become native Email/SMS subscriptions instead
- Manager methods return
null/[]when the package is disabled (ONESIGNAL_ENABLED=falseor empty app_id) syncToOneSignalAsync()dispatches nothing when disabled
Added
- Enabled/disabled gate (zero keys, zero HTTP calls in local/test)
ONESIGNAL_TRACK_EVENTSguard (Free plan rejects custom events with 403)- Single-call
createUserupsert sync — proven against the live API (no subscription duplication on re-sync) HasOneSignalv2 trait: email/phone (E.164-validated), language/timezone/country gettersphp artisan onesignal:backfill {--dry-run} {--chunk=250}- Env-gated live smoke suite (
tests/Live/)
See UPGRADE.md for the full v1 → v2 migration guide.
🤖 Generated with Claude Code