Rascal CRM
A CRM with a call center inside
Problem
Sales tooling lives in silos: CRM here, calls there, documents elsewhere — with "AI features" bolted on top. The goal: a CRM where calling, calendar, documents and automation share one data model, with multi-tenant isolation that cannot be bypassed.
Solution
A call center in the browser
Twilio Voice SDK dials straight from the browser with parallel dialing to up to 10 numbers — the first answer is bridged to the rep. The transcript streams in real time, and Mistral serves the rep one actionable hint in ~700 ms.
A prompt-injection-resistant AI coach
Customers can edit the coach persona in Settings, but the JSON output contract is pinned in a separate, non-editable prompt section. However much the guidance is mangled, the parser never breaks.
A workflow engine, not workflow buttons
13 step types (conditions, iterators, HTTP, email, record mutations), versioned definitions, and runs that resume from cron even if a function dies. Authored on a visual canvas.
Multi-tenant security in two layers
Identity and CRM data live in separate Supabase projects. On top of Postgres RLS: application-level visibility scoping and PostgREST injection escaping. Fail-closed: an error returns 500, never another org’s data.
Gallery
