notifly
IntegrationsSMS providerUpdated

Vonage SMS inside Notifly workflows, on your own account.

Notifly does not resell SMS. You connect your Vonage account, which the Integration Store lists under its former name, Nexmo, and the SMS steps of your Notifly workflows are sent through Vonage's SMS API: your senders, your Vonage logs, your Vonage bill.

Notifly adds the rest: one trigger for SMS, email, in-app, push and chat; digest, delay and throttle steps so a user is not texted twice for the same thing; subscriber preferences checked before each send; and an activity feed that records what Vonage answered.

What you need from Vonage

These are the fields the dashboard asks for when you connect Nexmo, quoted from the create form.

FieldRequiredStoredNotes
API KeyRequiredEncrypted at rest
API secretRequiredEncrypted at rest
FromRequiredAs entered
  • API Key and API secret. The key pair of your Vonage account; both are stored encrypted at rest.
  • From. The sender of every SMS from this integration. A trigger can set another one with overrides.providers.nexmo.from.

Connect Vonage in the dashboard

  1. Sign in at app.notifly.io, open Integration Store in the sidebar and choose Connect Provider.
  2. In the Connect Integration sheet, open the SMS tab (or search across channels), find Nexmo and choose Connect.
  3. Pick the environment the integration belongs to. Development and Production keep separate integrations, so you can point each at a different Nexmo account or key.
  4. Fill in Delivery Provider Credentials with the fields in the table above, then choose Create Integration.
  5. A new integration starts switched on as both Active Integration and Primary Integration, so SMS steps in that environment send through Nexmo by default. If the environment already has a primary SMS integration, the dashboard asks before replacing it.

Trigger a Vonage SMS from your code

Node.js · @notiflyio/api@0.1.26
// npm install @notiflyio/api@0.1.26
import { Notifly } from "@notiflyio/api";

const notifly = new Notifly({ security: { secretKey: process.env.NOTIFLY_SECRET_KEY } });

await notifly.trigger({
  workflowId: "login-code",
  to: { subscriberId: "user_123", phone: "15551234567" },
  payload: { code: "482913" },
  overrides: {
    // Merged into the SMS Notifly sends through Vonage's SDK for this trigger.
    providers: { nexmo: { clientRef: "login-482913" } },
  },
});

Prefer plain HTTP? The same trigger is POST https://api.notifly.io/v1/events/trigger with an Authorization: ApiKey header and a body of { "name", "to", "payload" }.

What reaches Vonage

  • One SMS request. The rendered SMS step as text, the recipient as to and your From sender, sent with Vonage's server SDK.
  • Your options. overrides.providers.nexmo is merged in, per workflow or per step.
  • Vonage's answer. A failed status fails the step with Vonage's error; an accepted one stores Vonage's message-id.
  • No phone, no call. A subscriber without a phone number is skipped and recorded in the activity feed.

What Notifly adds on top of Vonage

Workflows around the send

One trigger runs a workflow: this provider’s step can sit beside in-app, email, SMS, push and chat steps, behind digest, delay and throttle steps.

Digest notifications →

Subscriber preferences, enforced at send

Before each step runs, the subscriber’s workflow and channel preferences are checked; an opted-out step is skipped and the reason is recorded.

An in-app Inbox next to it

The same workflow can write to the Notifly Inbox, a real-time in-app feed you embed with the React component or the JavaScript SDK.

React notification inbox →

Per-trigger provider parameters

Anything the trigger passes under overrides.providers.<provider id> is merged into the request Notifly sends to the provider, per workflow or per step.

Activity you can debug

Every message gets execution details in the activity feed, including the response or error the provider returned.

Secrets encrypted at rest

API keys, tokens and service accounts are stored encrypted with AES-256; new and re-saved credentials use authenticated AES-256-GCM. The table above marks which of this provider’s fields that covers.

Several accounts, one primary

Connect more than one account on this channel. The primary integration is the default; another active integration takes the send when its conditions match the subscriber or the tenant in the trigger’s context.

Go deeper in the docs

Frequently asked questions

Why is Vonage listed as Nexmo?

Nexmo is the former name of Vonage's API platform, and the Integration Store still lists the provider under it. The integration sends through Vonage's own server SDK with the API key and API secret of your Vonage account.

Which Vonage credentials does Notifly need?

Your API key, your API secret and a From sender. The API key and API secret are stored encrypted at rest; From is stored as entered. Once Vonage is that environment's primary SMS integration, SMS steps there are sent by your Vonage account by default, on your Vonage pricing.

Where does the recipient's phone number come from?

From the subscriber's phone, which the trigger's to object can set or update in the same call; a phone field in the trigger payload takes precedence over it. When neither is available, Notifly skips the SMS step and records Subscriber missing phone number in the activity feed instead of calling Vonage.

Can I pass other Vonage SMS options?

Yes. Anything under overrides.providers.nexmo is merged into the message Notifly passes to Vonage's sms.send, and Vonage's SDK turns the camelCase keys into the API's own parameter names, so clientRef arrives as client-ref. overrides.steps.<stepId>.providers.nexmo targets one SMS step.

What happens when Vonage refuses a message?

Vonage's SDK raises an error when the SMS API reports a failed status for the message, and Notifly records that error on the step in the activity feed. An accepted message stores the message-id Vonage returns, so a Notifly message and a Vonage log line can be matched.

Bring your provider account. Keep your sender reputation.

One POST /v1/events/trigger — email, SMS, push, in-app, and chat. 10,000 events a month, free.

Get started freeSee pricing