npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@swemmanuelgz/n8n-nodes-telnyx

v0.1.0

Published

n8n community node for Telnyx — WhatsApp (templates + free-form), SMS/MMS, Verify (OTP) and Number Lookup. Includes a dedicated Trigger node for inbound events and delivery status webhooks.

Downloads

64

Readme

@swemmanuelgz/n8n-nodes-telnyx

npm version License: MIT

Community node for n8n that gives you complete coverage of the Telnyx v2 API — with first-class support for WhatsApp Business (templates + free-form messages), SMS/MMS, Verify (OTP) and Number Lookup, plus a dedicated Trigger node for inbound webhooks.

The highlight: when you pick WhatsApp Message → Send Template, the template list is fetched live from your Telnyx account and the parameter fields for the template you select are generated automatically, so you just fill in the blanks.


Table of contents


Features

| Area | What's covered | | --- | --- | | WhatsApp Message | Send Template, Send Text, Send Media (image/video/audio/document), Send Interactive (buttons/list), Send Location, Send Contacts, Get, List | | WhatsApp Template | List, Get, Create, Update, Delete | | WhatsApp Business Account | List, Get | | WhatsApp Phone Number | List, Get, Verify (register new number) | | SMS / MMS Message | Send SMS, Send MMS, Schedule, Cancel, Get, List | | Messaging Profile | List, Get, Create, Update, Delete, Get Metrics, Regenerate Secret | | Messaging Phone Number | List, Get, Update (reassign profile) | | Short Code | List, Get, Update | | Hosted Number | List, Get, Update | | Verify (OTP) | Create (SMS / Voice / Flashcall / WhatsApp), Submit Code, Get, List Profiles | | Number Lookup | Carrier + CNAM lookup | | Trigger | Filter by event type: message.received, message.sent, message.finalized, message.delivery.updated, verify.verification.verified/expired, whatsapp.message.received, whatsapp.message.updated, or all |

Dynamic WhatsApp templates

  • The From number and Template fields are loaded live from your Telnyx account.
  • When you select a template, the UI inspects its components (HEADER, BODY, BUTTONS) and renders one input per variable: {{1}}, {{2}}, header media URL, button URL parameter, etc.
  • At send time the node builds the template_parameters payload for you — no JSON hand-crafting.

Installation

From the n8n UI (recommended)

  1. Open n8n and go to Settings → Community Nodes.
  2. Click Install.
  3. Enter @swemmanuelgz/n8n-nodes-telnyx and confirm.

Via npm (self-hosted)

cd ~/.n8n/custom
npm install @swemmanuelgz/n8n-nodes-telnyx
# then restart n8n

Docker

Mount a volume that contains the installed package under /home/node/.n8n/custom/:

volumes:
  - ./custom:/home/node/.n8n/custom
environment:
  - N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom

Credentials

  1. Go to Mission Control Portal → API Keys and create a key (or reuse an existing one).
  2. In n8n, open the Credentials panel and add a new Telnyx API credential.
  3. Paste the API key into the API Key field.
  4. Click Test — the node sends a lightweight GET /whatsapp/business_accounts?page[size]=1 request to verify authentication.

The same key authenticates every resource (WhatsApp, SMS, Verify, Lookup).


Nodes

Telnyx (action node)

The main node. Pick a Resource (e.g. WhatsApp Message) then an Operation (e.g. Send Template) and fill in the fields. Resource-specific fields appear and disappear via displayOptions, so the form only ever shows what's relevant.

Architecture on disk (contributors' reference):

nodes/Telnyx/
├── Telnyx.node.ts              # Dispatcher: routes resource+operation to the right handler
├── GenericFunctions.ts         # HTTP helper, pagination, WhatsApp template parser/builder
├── descriptions/               # One *.ts per resource (INodeProperties[])
├── operations/                 # One *.ts per resource (execute handlers)
└── methods/                    # loadOptions + resourceMapping
    ├── loadOptions.ts
    ├── smsLoadOptions.ts
    ├── verifyLoadOptions.ts
    └── resourceMapping.ts      # Generates template parameter fields dynamically

TelnyxTrigger (webhook node)

Add TelnyxTrigger to a workflow and n8n will expose a webhook URL. Paste that URL in your Telnyx Messaging Profile (or WhatsApp configuration) and every event Telnyx sends will start the workflow.

Options:

  • Events — multi-select filter. Default is All Events. If you narrow the list, events that don't match get a 200 acknowledgement but do not trigger the workflow (so Telnyx doesn't retry them).
  • Response Code — HTTP status returned to Telnyx (default 200).
  • Raw Body — when enabled, the first item contains { headers, params, query, body } instead of the parsed payload — useful for signature verification or debugging.

Ed25519 signature verification (telnyx-signature-ed25519) is planned — currently the trigger accepts any caller that reaches the webhook URL, so keep the webhook path private and optionally put a reverse-proxy check in front of it.


Examples

Send a WhatsApp template

  1. Drop a Telnyx node and select Resource: WhatsApp Message, Operation: Send Template.
  2. From Phone Number — pick a number from your Telnyx account (dropdown is loaded live).
  3. To — the E.164 number of the recipient (e.g. +34612345678).
  4. Template — pick an approved template. The name, language and ID are packed into a single value.
  5. Template Parameters — the fields shown are generated from the template components. Fill them in.
  6. Execute. The node builds the template_parameters payload (body / header / buttons) and POSTs /messages/whatsapp.

Send an SMS

  1. Resource: SMS / MMS Message, Operation: Send SMS.
  2. From: any SMS-enabled number on your account.
  3. To: E.164 recipient.
  4. Text: your SMS copy.
  5. Optional — Messaging Profile (dropdown), Webhook URL for per-message DLR, Auto-Detect Encoding.

To send MMS, switch to Send MMS and add one or more Media URLs (HTTPS, public).

Run an OTP verification

  1. Resource: Verify (OTP), Operation: Create SMS Verification.
  2. Pick a Verify Profile (dropdown).
  3. Phone Number: recipient's number.
  4. Optional Custom Code, Timeout Secs.

Later, when the user submits their code, call Operation: Submit Code with the same Phone Number, the entered code, and the same Verify Profile.

React to an inbound message

  1. Drop a TelnyxTrigger node — copy the webhook URL shown.
  2. In Telnyx Mission Control, open the Messaging Profile you want to listen to and paste the URL into Inbound Webhook URL. For WhatsApp, configure the webhook under the Business Account.
  3. Keep the Events filter on All Events initially so you can inspect what Telnyx sends, then narrow it.

Known limitations

  • WhatsApp 24-hour window — free-form messages (text, media, interactive…) can only be sent within 24 hours of the user's last inbound message. Outside that window, use a template.
  • SMS availability — Spanish numbers cannot send SMS as of 2026 (Telnyx limitation, not ours). Receiving still works. Use a foreign sender number or a messaging profile with Alphanumeric Sender ID.
  • Template approval — templates go through Meta review (24-72h). Only APPROVED templates can be sent; the loadOptions dropdown filters by APPROVED by default.
  • Webhook signature verification is not yet implemented in TelnyxTrigger — see the TODO in TelnyxTrigger.node.ts.

Roadmap

  • Ed25519 webhook signature verification (opt-in via a new credential field).
  • Voice / Call Control resources (answer, bridge, speak, gather, etc.).
  • Number Management (search & order phone numbers).
  • Fax API resource.
  • Storage / Object Storage resource.
  • Translating Telnyx's paginated responses into native n8n binary pairedItem data for better item tracking.

PRs welcome.


Development

git clone https://github.com/swemmanuelgz/n8n-nodes-telnyx.git
cd n8n-nodes-telnyx
npm install
npm run build         # compiles TS + copies SVG icons to dist/
npm run lint          # eslint-plugin-n8n-nodes-base
npm run dev           # tsc --watch

# Link into a local n8n for manual testing
npm link
cd ~/.n8n/custom && npm link @swemmanuelgz/n8n-nodes-telnyx
n8n start

Contributions and bug reports: https://github.com/swemmanuelgz/n8n-nodes-telnyx/issues.


License

MIT © Emmanuel Obaseki