Beta build. Report issues to your operator channel.

← All guides · Home

Guide

In-app chat + SMS when users are offline

Keep FluxyChat for realtime rooms and webhooks; fan out transactional SMS or WhatsApp with Sent.dm when your app decides the user is not active.

Split transport by context

FluxyChat is room-based in-app transport: WebSocket history, mentions, agents on the same stream. Telco APIs (Sent.dm, Twilio, etc.) are for offline reach — password resets, mention alerts, DM summaries — not for replacing your message list UI.

  • Online: FluxyChat WS + optional in-app notification inbox
  • Offline: webhook consumer → Sent.dm template send
  • Never expose telco API keys to the browser

Webhook-driven fan-out

Subscribe to message.created on your project. Verify X-Fluxy-Signature, resolve the recipient’s phone from your user profile, and skip send when your own presence or read-receipt logic says they are active.

// See docs/cookbook/offline-notify-sent-dm.md for full Worker example
await fetch("https://api.sent.dm/v3/messages", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${env.SENT_DM_API_KEY}`,
    "x-profile-id": env.SENT_PROFILE_ID,
  },
  body: JSON.stringify({
    channel: ["sms"],
    to: [user.e164],
    template: { name: "chat_mention", parameters: { sender, preview } },
  }),
});

Workspace apps vs chat wedge

Full GPL workspaces bundle email invites and org-wide AI. FluxyChat stays MIT and room-scoped: use Clerk or Resend for invite email, Sent.dm for SMS, and our in-app notification rows for mentions inside the product.

In-app chat vs support desk

Harden public demos

If you expose a guest demo room, combine Turnstile, origin allowlist, and per-IP rate limits so bots cannot mint JWTs indefinitely.

Live demo room

Production next step

FluxyChat packages the same stack: RoomDurableObject, D1 history, multi-tenant JWT, reconnect-aware SDK, and operator console. MIT self-host or hosted beta.

Topics: in-app chat SMS notification · Sent.dm FluxyChat · webhook message.created · offline push chat · transactional SMS mention

Canonical path: /guides/offline-notify-in-app-plus-sms