Skip to content
Last updated

Sinch Functions

Beta. Sinch Functions is currently in beta — you can build and deploy today, and the shape of the runtime may evolve during the beta period.

Serverless compute for voice, SMS, and messaging. Write a function, deploy it, and Sinch routes live traffic to your code. No infrastructure to run, no load balancers, no capacity planning.

Why Functions

The Sinch Voice API and Conversation API already do the hard parts — the telephony network, the WhatsApp Business integration, the number routing. What you still need is a place to put your business logic: the menu structure for your IVR, the reply behavior for your SMS bot, the routing rules for your number masking service.

Functions is that place. You deploy your code, the runtime gives it a public URL, and Sinch calls that URL whenever something happens on a call or a message. Your code runs in an isolated, managed runtime with a cache, a blob store, a SQLite database, and pre-wired SDK clients for the Sinch APIs.

What you can build

Use caseWhat it does
Voice IVRInteractive menus with DTMF input and text-to-speech
SMS responderReply to inbound SMS with dynamic content
Call routingRoute calls based on caller, time, or external data
AI voice agentConnect calls to a speech AI pipeline via ElevenLabs or similar
Number maskingProxy calls between parties without exposing real numbers
Conversation botHandle WhatsApp, Messenger, SMS via the Conversation API
Custom HTTP APIHost internal endpoints alongside your voice/messaging logic

Two runtimes

Feature parity across both — same cache, storage, database, SDK clients. Pick the one your team already knows.

Node.jsC#
LanguageTypeScript / JavaScriptC# / .NET 9+
Package@sinch/functions-runtimeSinch.Functions.Runtime
Mental modelLike ExpressLike ASP.NET MVC with controllers
Hot reloadAutomatic on savedotnet watch

See handlers for the "it's just Express / it's just MVC" framing in detail.

How it all fits together

You already know most of this if you've written a web service. The twist is where the HTTP requests come from — Sinch's voice platform sends callbacks when calls happen, the Conversation platform posts webhooks when messages arrive, and the runtime routes those to specific handlers in your code.

  • Voice eventsice, ace, pie, dice handlers
  • Conversation events → a ConversationController (or webhook handler)
  • Your own HTTP endpoints → any other named export (Node) or controller action (C#)

Where to go next

Get started:

Concepts:

Build something:

Runtime guides: