Skip to main content

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

FieldRequiredDescription
emailYesPrimary contact email
passwordYesAccount password (min 8 chars)
company_nameNoCompany/organization name
contact_nameNoContact person name
phoneNoContact phone
desired_org_nameNoPreferred organization name
desired_org_slugNoPreferred 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

StatusDescription
pending_approvalWaiting for superadmin review
auto_approvedAutomatically approved, ready for provisioning
approvedManually approved by superadmin
rejectedRejected by superadmin
provisioningDatabase being created
activeOrganization ready to use
failedProvisioning 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.