PHPackages                             multek/laravel-onesignal - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. multek/laravel-onesignal

ActiveLibrary[API Development](/categories/api)

multek/laravel-onesignal
========================

Laravel wrapper for the official OneSignal PHP SDK

v1.0.0(3mo ago)01MITPHPPHP ^8.2

Since Apr 1Pushed 3mo agoCompare

[ Source](https://github.com/Multek-Company/laravel-onesignal)[ Packagist](https://packagist.org/packages/multek/laravel-onesignal)[ RSS](/packages/multek-laravel-onesignal/feed)WikiDiscussions main Synced 4w ago

READMEChangelog (1)Dependencies (7)Versions (5)Used By (0)

Laravel OneSignal
=================

[](#laravel-onesignal)

Laravel wrapper for the official [OneSignal PHP SDK](https://github.com/OneSignal/onesignal-php-api). Send push notifications, manage users, and track custom events with a clean, fluent API.

Also implements the [`laravel-customer-engagement`](https://github.com/Multek-Company/laravel-customer-engagement) driver contracts, so you can use OneSignal as a drop-in provider for the unified engagement platform.

Features
--------

[](#features)

- **Push Notifications** - Send to users, segments, or build complex payloads with a fluent builder
- **User Management** - Create, update, and delete OneSignal users with tag sync
- **Custom Event Tracking** - Track events for analytics and segmentation
- **Laravel Notification Channel** - Send via Laravel's native notification system
- **Model Trait** - `HasOneSignal` trait for syncing Eloquent models to OneSignal
- **Async Jobs** - Queue-based user sync with `SyncUserToOneSignal`
- **Customer Engagement Driver** - Implements `EngagementDriver`, `SyncsUsers`, `SendsNotifications`, and `TracksEvents` contracts
- **Events** - `NotificationSent` and `NotificationFailed` events for observability

Requirements
------------

[](#requirements)

- PHP 8.2+
- Laravel 11.0+

Installation
------------

[](#installation)

```
composer require multek/laravel-onesignal
```

Publish the config file:

```
php artisan vendor:publish --tag=onesignal-config
```

Add your credentials to `.env`:

```
ONESIGNAL_APP_ID=your-app-id
ONESIGNAL_REST_API_KEY=your-rest-api-key
```

Usage
-----

[](#usage)

### Sending Notifications

[](#sending-notifications)

```
use Multek\OneSignal\Facades\OneSignal;

// Simple push to a user
OneSignal::sendToUser('user_123', 'Hello!');

// Push to multiple users
OneSignal::sendToUsers(['user_1', 'user_2'], 'Hello everyone!');

// Push to a segment
OneSignal::sendToSegment('Active Users', 'New feature available!');

// Fluent builder for complex notifications
OneSignal::notification()
    ->toUser('user_123')
    ->heading('Order Shipped')
    ->body('Your order #456 has been shipped.')
    ->data(['order_id' => 456])
    ->send();
```

### User Management

[](#user-management)

```
// Create a user with tags
OneSignal::createUser('user_123', ['plan' => 'pro', 'role' => 'admin']);

// Update tags
OneSignal::updateUserTags('user_123', ['plan' => 'enterprise']);

// Remove tags
OneSignal::removeUserTags('user_123', ['role']);

// Get user
OneSignal::getUser('user_123');

// Delete user
OneSignal::deleteUser('user_123');
```

### Model Trait

[](#model-trait)

```
use Multek\OneSignal\Concerns\HasOneSignal;

class User extends Authenticatable
{
    use HasOneSignal;
}

// Sync user to OneSignal
$user->syncToOneSignal();
```

### Custom Event Tracking

[](#custom-event-tracking)

```
// Track a single event
OneSignal::trackEvent('user_123', 'purchase', ['amount' => 99.90]);

// Track for multiple users
OneSignal::trackEventForUsers(['user_1', 'user_2'], 'promo_viewed', ['campaign' => 'summer']);
```

### Laravel Notification Channel

[](#laravel-notification-channel)

```
use Multek\OneSignal\Messages\OneSignalMessage;

class OrderShipped extends Notification
{
    public function via($notifiable): array
    {
        return ['onesignal'];
    }

    public function toOneSignal($notifiable): OneSignalMessage
    {
        return (new OneSignalMessage)
            ->heading('Order Shipped')
            ->body('Your order has been shipped.');
    }
}
```

### Accessing the Raw SDK

[](#accessing-the-raw-sdk)

```
$api = OneSignal::api(); // Returns onesignal\client\api\DefaultApi
```

Configuration
-------------

[](#configuration)

See `config/onesignal.php` for all available options including default tags, queue name, and organization API key.

Customer Engagement Integration
-------------------------------

[](#customer-engagement-integration)

When used with `multek/laravel-customer-engagement`, OneSignal registers itself as a driver automatically:

```
// config/customer-engagement.php
'default' => 'onesignal',

// Then use the unified API
use Multek\CustomerEngagement\Facades\Engagement;

Engagement::sendToUser('user_123', $notification);
```

Testing
-------

[](#testing)

```
composer test
```

License
-------

[](#license)

MIT

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance82

Actively maintained with recent releases

Popularity1

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

91d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/8976719?v=4)[rodrigocoliveira](/maintainers/rodrigocoliveira)[@rodrigocoliveira](https://github.com/rodrigocoliveira)

---

Top Contributors

[![rodrigocoliveira](https://avatars.githubusercontent.com/u/8976719?v=4)](https://github.com/rodrigocoliveira "rodrigocoliveira (6 commits)")

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/multek-laravel-onesignal/health.svg)

```
[![Health](https://phpackages.com/badges/multek-laravel-onesignal/health.svg)](https://phpackages.com/packages/multek-laravel-onesignal)
```

###  Alternatives

[spatie/laravel-health

Monitor the health of a Laravel application

87512.0M157](/packages/spatie-laravel-health)[fleetbase/core-api

Core Framework and Resources for Fleetbase API

1235.9k19](/packages/fleetbase-core-api)[rapidez/core

Rapidez Core

1823.5k66](/packages/rapidez-core)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
