Everything your customer-comms operation needs

Built for US B2B teams with privacy at the center of the design.

SMS messaging

  • One canonical conversation per (contact, channel)
  • Inbound via Twilio webhook with signature verification
  • Delivery status (QUEUED → SENT → DELIVERED / FAILED)
  • Outbound always sent from the tenant's number

Bridged calls

  • Agent is dialed first, then the contact
  • Customer sees the company's caller ID — not the agent's phone
  • Status callbacks update duration and recordings
  • Full history per contact and per agent

Privacy and ACL

  • realPhoneNumber never returned without ACL
  • Mask returns only the last four digits
  • Per-contact ACL with user IDs and roles
  • Auditable and reversible by an admin

Multi-tenant

  • Prisma-level isolation with AsyncLocalStorage
  • Tenants can never read each other's data
  • Webhooks resolve the tenant by phone number / Stripe ID
  • Cross-tenant access blocked by default

Team and RBAC

  • Roles: OWNER, ADMIN, MANAGER, AGENT
  • Email invitations with expiring tokens
  • Departments per agent
  • Granular permissions in both API and UI

B2B onboarding

  • Collects legal name, EIN, address, industry
  • One-click Twilio number setup
  • Stripe Checkout with instant activation
  • Self-service Billing Portal

Webhooks and integrations

  • Twilio: SMS in, voice in, status callbacks
  • Stripe: subscription lifecycle
  • Signature verification on both
  • Cloudflare Tunnel ready for dev

History and auditing

  • All messages persisted with timestamps
  • CallLog with start, end and duration
  • Soft delete on every key entity
  • Filters by agent, contact, or period