Registration Flow
Overview
The registration flow allows new customers to sign up for your SaaS platform. Depending on your configuration, registrations can be automatically approved or require manual review.
Registration Process
flowchart TD
A[Customer fills registration form] --> B{Auto-approve enabled?}
B -->|Yes| C[Request auto-approved]
B -->|No| D[Request pending approval]
D --> E[Superadmin reviews]
E -->|Approve| C
E -->|Reject| F[Customer notified of rejection]
C --> G[Database provisioning starts]
G --> H[Admin account created]
H --> I[Organization created]
I --> J[User account created]
J --> K[Customer notified - ready to use]
Registration Form Fields
| Field | Required | Description |
|---|---|---|
email | Yes | Primary contact email |
password | Yes | Account password (min 8 chars) |
company_name | No | Company/organization name |
contact_name | No | Contact person name |
phone | No | Contact phone |
desired_org_name | No | Preferred organization name |
desired_org_slug | No | Preferred URL slug |
API Endpoint
Submit Registration
POST /api/tenants/register
Content-Type: application/json
{
"email": "john@company.com",
"password": "securepassword123",
"company_name": "Acme Corp",
"contact_name": "John Doe",
"phone": "+1234567890",
"desired_org_name": "Acme Corp",
"desired_org_slug": "acme-corp"
}
Response
{
"id": 1,
"email": "john@company.com",
"status": "pending_approval",
"message": "Registration submitted. You will be notified when approved."
}
Request Statuses
| Status | Description |
|---|---|
pending_approval | Waiting for superadmin review |
auto_approved | Automatically approved, ready for provisioning |
approved | Manually approved by superadmin |
rejected | Rejected by superadmin |
provisioning | Database being created |
active | Organization ready to use |
failed | Provisioning failed |
Admin Review
Superadmins can review pending registrations at:
/admin/system/tenants/registrations
Approval Options
When approving a registration, superadmin can override:
- Organization name
- Organization slug
- Initial credit limit
- Storage limit (GB)
- Max users
Rejection
When rejecting, a reason must be provided. The customer receives a notification with the rejection reason.
Configuration
Auto-Approve Setting
Enable/disable auto-approval in Platform Settings:
/admin/system/tenants → Platform Settings
Or via API:
PUT /api/tenants/settings
Authorization: Bearer {superadmin_token}
Content-Type: application/json
{
"auto_approve_registrations": true
}
UTM Tracking
Registration requests can include UTM parameters for marketing attribution:
{
"email": "...",
"password": "...",
"utm_source": "google",
"utm_medium": "cpc",
"utm_campaign": "summer_sale"
}
These are stored with the registration request for analytics.