Overview

Gravity SMS is a multi-tenant REST API that enables organizations to send and receive SMS messages through their RingCentral accounts. Each tenant connects their own RingCentral account, registers one or more apps, and interacts with the gateway using API keys.

Who is this for

Developers building applications that need programmatic SMS capabilities. Common use cases include CRM integrations, appointment reminders, notification services, and Power Automate flows.

How it works

The gateway sits between your application and RingCentral. Instead of integrating directly with the RingCentral SDK, your app sends simple REST requests to the gateway.

  1. Create a tenant — An admin creates a tenant representing your organization.
  2. Connect RingCentral — The tenant authorizes the gateway to use their RingCentral account via OAuth.
  3. Register an app — Register your application and receive an API key.
  4. Send and receive SMS — Use the REST API to send messages. Receive inbound SMS via webhooks or WebSocket.

Capabilities

REST API

Send SMS, check delivery status, query message history, manage apps and tenants.

WebSocket

Real-time delivery status updates and inbound SMS notifications over a persistent connection.

Webhook delivery

Inbound SMS messages are forwarded to your app via HTTP POST to a URL you configure.

Multi-tenancy

Each tenant has isolated data, credentials, and phone numbers. Multiple apps per tenant.

Architecture

The gateway is built on Hono (Node.js) with MongoDB for persistence, Redis for caching and rate limiting, and BullMQ for asynchronous message delivery. Outbound SMS requests are queued and processed with automatic retries and per-phone rate limiting.

RingCentral dependency
Every tenant must connect a RingCentral account before sending or receiving SMS. The gateway does not provide phone numbers directly — it uses the numbers from the tenant's RingCentral account.

Related docs