Use Novu to send multi-channel (SMS, Email, Chat, Push) notifications from a PHP app.
Learn how to use Novu to quickly send multi-channel (SMS, Email, Chat, Push) notifications from a PHP app.
To follow the steps in this quickstart, you’ll need:
You can also view the completed code of this quick start in a GitHub repo.
The PHP SDK provides a fluent and expressive interface for interacting with Novu’s API and managing notifications.
Now install the Novu PHP SDK by running the following command in your terminal:
Otherwise, create a file named composer.json
and add the following to it:
Next, install the SDK by running the following composer
command:
Create a new file, index.php
in your application and add the following code to it:
Replace the $apiKey
’s value with the authentic key from the API Key section of your Novu Dashboard.
Please do not hardcode your credentials in a file in production. Use environment variables instead.
A channel provider is a service that provides one or more notification functionality such as sending an email, SMS, push notification etc. Our integration store includes four channels: Email, SMS, Chat, and Push. These channels have multiple providers associated with them.
Channel | Providers |
---|---|
MailGun, Mandrill, MailJet, Amazon SES, Sendgrid, Postmark, Netcore | |
SMS | Twilio, Amazon SNS, Plivo, SMS, SMSCentral, Kannel, Infobip, Termii |
Chat | Mattermost, Slack, Microsoft Teams, Discord |
Push | FCM, APNS, Expo |
Only one provider can be active per channel. Connect any of your favourite providers to get started. The email channel comes with Novu’s email provider, which is active by default and includes 300 credits.
A workflow is a blueprint for the notifications that will be sent. It holds the entire flow of messages sent to the subscriber. This is where all the different channels are tied together under a single entity.
The workflow includes the following:
Channel | Content Style | Custom Variables{{handlebars}} format |
---|---|---|
HTML | ✅ | |
Visual Editor | ✅ | |
SMS | Text | ✅ |
Chat | Text | ✅ |
In-App | Text | ✅ |
Push | Text | ✅ |
Proper authorization needs to be set for the Chat channel for subscribers.
Please proceed to create a workflow.
Choose email as the channel you want to add
Fill in email subject
Send test email to verify your workflow
You should get an email within seconds. Yaaay, you have successfully sent your first notification via the Novu dashboard! Now, let’s take it a step further to trigger notifications via code.
The recipients of a triggered notification are called subscribers.
Click “Subscribers” on the left sidebar of the Novu dashboard to see all subscribers. By default, the dashboard will display a subscriber, as you were added automatically during sign-up.
Subscribers from the left sidebar shows all the subscriber
Now, let’s create a subscriber on Novu. Copy and paste the following code to do so:
Run the code in your terminal like so:
You should see the subscriber on your Novu dashboard.
Subscribers list shows newly added subscriber
I’d like to publicly announce that abc@gmail.com
is a random unlikely email your users will have. To update this to an alternative email, you can call the updateSubscriber
method like so:
Other valid fields that can be updated are phone
, avatar
, and data
. The data
field can accept an array of metadata that you want to attach to the subscriber.
To make all of your app users subscribers, you need to programmatically add them to Novu.
Copy and paste the following code into your app to trigger a notification:
Before running the code, make sure you understand the following:
name
should be the workflow’s trigger ID/slug.Make sure your workflow's trigger ID/slug matches the value you'd used
payload
is an array of the data that you want to be dynamically injected into the workflow content.subscriberId
is the id of the subscriber on Novu. Replace 7789
with your subscriber ID.Run the code to trigger a notification!
Next, we’ll learn how to send notifications to different groups of subscribers easily via Topics.
Novu provides a simple API that offers an easy interface for triggering notifications to multiple subscribers at once. This API is called Topics and allows users to manage their bulk notifications without having to implement complex loops.
A topic is identified by a custom key and this key will be the identifier used when triggering notifications. You can assign a name to a topic for descriptive purposes. This name does not need to be unique and can be changed programmatically.
The topic key should be unique and can’t be changed once chosen. Novu also safeguards for key uniqueness behind the scenes.
A topic can have multiple subscribers who will receive a notification whenever a message is sent to the topic.
Copy and paste the following code into your app to create a topic:
Before running the code, make sure you understand the following:
key
, ensure it is unique and accurately identifies the topic. Document naming conventions and communicate them to team members to avoid confusion and ensure a smooth workflow.name
should be a descriptive topic name.Copy and paste the following code into your app to add subscribers to a topic:
On the other hand, if you want to remove subscribers from a topic, do the following:
Thanks to the topics feature, it is possible to trigger a notification to all subscribers assigned to a topic. This helps avoid listing all subscriber identifiers in the to
field of the notification trigger.
To trigger a notification to all subscribers of a topic, copy and paste the code below:
Great job! If you’ve reached this point, you should now have successfully created a subscriber, workflow, configured a channel provider and triggered a notification in your application.