Novu can be used to deliver sms messages to your customers using a unified delivery API. You can easily integrate your favorite sms provider using the built-in integration store.

Configuring SMS providers

When creating a SMS provider integration you will be asked to provide additional fields alongside the provider-specific credentials:

  • From - Will be displayed as the sender of the SMS

Additional credentials can be API key, username, password or other provider specific credentials.

Some countries have strict restriction of using verified from sender id (name). Kindly check country and provider specific requirements first.

Sending SMS Overrides

The overrides field supports a sms property and from, to, content field overrides. This allows you to send a message to a different recipient, from a different sender, or with a different content.

import { Novu } from '@novu/node';

const novu = new Novu('<NOVU_SECRET_KEY>');

novu.trigger('<WORKFLOW_TRIGGER_IDENTIFIER>', {
  to: {
    subscriberId: '<SUBSCRIBER_ID>',
  }
  overrides: {
    sms: {
      to: '+123012345678',
      from: 'Novu Team',
      content: 'This SMS message is from overrides'
    },
  },
});

Using different SMS integration

In Novu integration store, multiple SMS channel type provider integrations can be active at the same time. But only one provider integration can be primary at a time. This primary integration will be used as a provider to deliver the SMS by default. If you want to use a different active provider integration then you can use the integrationIdentifier sms overrides field.

If there are 4 active SMS integrations with these identifiers:-

  1. twilio-abcdef
  2. twilio-ghijkl
  3. firetext-abcdef
  4. infobip-abcdef

Here, if twilio-abcdef is primary integration and you want to use infobip-abcdef with this trigger then you can use integrationIdentifier sms overrides field as below:-

import { Novu } from '@novu/node';

const novu = new Novu('<NOVU_SECRET_KEY>');

novu.trigger('<WORKFLOW_TRIGGER_IDENTIFIER>', {
  to: {
    subscriberId: '<SUBSCRIBER_ID>',
  },
  overrides: {
    sms: {
      integrationIdentifier: 'infobip-abcdef',
    },
  },
});

Integration identifier is similar to Provider identifier but it is different than Provider Id. It is unique for each integration. You can find the integrationIdentifier in the integration store page.

Common errors

Common errors and reason for these errors while sending sms messages using Novu.

  1. Subscriber does not have a configured channel.
    • if the from field is missing / null / undefined.
Are we missing a provider you'd like to use for SMS channel? Please consider adding a new feature request on github or help us upvoting the existing ones on our public roadmap