Skip to main content

Overview

Sorcia is built as a multi-tenant platform where each organization has isolated data, integrations, and team members. This ensures complete data separation and security.

Organization Structure

Creating an Organization

Every user who signs up creates their first organization:
1

Sign Up

Create account at sorcia.ai/signup
2

Name Organization

Choose a unique organization name
3

Automatic Setup

  • Organization created
  • You become the Owner
  • Free tier activated

Organization Settings

Access via SettingsOrganization:

General Settings

name
string
Organization display name (editable by Owners/Admins)
slug
string
URL-safe identifier (auto-generated, immutable)
billing_tier
string
Current plan: free, pro, or enterprise

Data Isolation

Each organization has:
  • Separate database - Row-level security (RLS)
  • Own integrations - OAuth tokens per org
  • Isolated documents - Can’t access other org’s data
  • Independent billing - Separate Stripe customer
Organizations are completely isolated. No data sharing between orgs.

User Roles

Owner

  • Full control over organization
  • Manage billing and subscription
  • Delete organization
  • Assign/remove all roles
  • Limit: 1-3 per organization

Admin

  • Manage integrations
  • Invite/remove members
  • Configure settings
  • View analytics
  • Cannot: Delete org, manage billing

Member

  • Ask questions
  • View accessible documents
  • See own query history
  • Cannot: Manage team, integrations

Switching Organizations

Users can belong to multiple organizations:
  1. Click your avatar (top-right)
  2. Select Switch Organization
  3. Choose from your organizations
Keyboard shortcut: Cmd/Ctrl + K → Type organization name

Organization Limits

PlanMembersIntegrationsQuestions/Month
Free11100
Pro10Unlimited1,000
EnterpriseUnlimitedUnlimitedUnlimited

API Access

Each organization has:
  • Unique organization_id
  • Separate API keys
  • Isolated rate limits
  • Independent quotas
// API requests are organization-scoped
const response = await fetch('https://api.sorcia.ai/api/ai/query', {
  headers: {
    'Authorization': `Bearer ${token}`, // Token contains org_id
  }
});

Best Practices

Create one organization per company/team, not per department
Control access via permission groups, not separate orgs
Review members and permissions quarterly

Next Steps