toitzi/novu-notifications-laravel

Novu Notifications channel for Laravel.

v1.0.1 2023-12-23 19:16 UTC

README

Software License Laravel Version Requirements

Novu - Laravel Notification Channel

This package makes it easy to send notifications using Novu

class InvoicePaidNotification extends Notification
{
    // Trigger a specific notification event
    public function toNovuEvent($notifiable)
    {
        return NovuMessage::create('workflow_1234')
            ->addVariable('invoice_id', $this->invoice->id)
            ->toSubscriberId('123456789');
    }
}

Contents

Installation

The Novu notification channel can be installed easily via Composer:

$ composer require toitzi/novu-notifications-laravel

Usage

In order to send a notification via the Novu channel, you'll need to specify the channel in the via() method of your notification:

use NotificationChannels\Novu\NovuChannel;

public function via($notifiable)
{
    return [
        NovuChannel::class
    ]
}

API Overview

Novu Message

Namespace: NotificationChannels\Novu\NovuMessage

The NovuMessage class encompasses an entire message that will be sent to the Novu API.

  • static create(?string $workflowId) Instantiates and returns a new NovuMessage instance, optionally pre-configuring it with the workflow id
  • workflowId(string $workflowId) Set the workflowId of the message (Your novu workflow trigger id)
  • to(array $to) Array of recipient information like subscriberId, phone, etc...
  • toSubscriber(string $subscriberId) Set the subscriberId of the recipient
  • variables(array $variables) Set the variables (payload) of the message. Those are your novu event variables
  • addVariable(string $key, $value) Add a single variable to the message
  • toArray() Returns the data that will be sent to the Novu API as an array

Testing

Run the tests with:

$ composer test

License

The MIT License (MIT). Please see License File for more information.