Every Softknack product is built on the same conventions, speaks over the same MCP backbone, and references the same customer record. That’s why agents can act across the suite — and why your integrations only learn things once.
Learn them once; they hold across the suite. Your integration written for one product already understands the next.
Data is owned by one service; everyone else references it by ID. No copies, no bidirectional sync — ever.
Multi-record outcomes (a call becoming lead + booking + log) commit in one transaction or not at all.
Every mutation takes an Idempotency-Key; 24h replay returns the original result, conflicts get 409.
HMAC-SHA256, at-least-once, 1s → 4s → 16s → 1m → 5m → 30m → 2h with dead-letter replay.
Activities and ledgers append; records deactivate instead of deleting. Audits have answers.
Row-level security fences every tenant at the lowest layer; 404-over-403 so existence never leaks.
ctc_, ld_, apt_ — sortable, debuggable IDs; stable cursors that never skip rows mid-list.
OpenAPI generated from the code’s validators and drift-checked in CI on every build.
DPDP Act compliance is product behavior, not paperwork: consent, export and erasure are features. Payments ride Razorpay; auth supports TOTP/MFA; everything is audited.
Auth, errors, pagination, webhooks and MCP — written once for the platform, shared by every product.
The conventions are what make an AI-first suite possible — agents can only act safely on rails this strict.
Start free