How the platform works
The three panels, the public site, the docs portal and the mobile app — and how businesses, roles and data fit together on one install.
How the platform works
One installation of Zodiac Tech CRM runs many businesses. Each business gets its own workspace; the platform team, the Meta ads team and the business's own staff each see a different panel, built for their job.
The surfaces of one install
| Surface | Address | Who uses it |
|---|---|---|
| Public website | / and /pricing |
Visitors, prospects; can self-register at /register when enabled |
| Documentation | /docs |
Everyone — this portal |
| Business workspace (tenant panel) | /admin |
Business owner, managers, sales agents |
| Super Admin (platform panel) | /super-admin |
The company running this install |
| Agency panel (Meta Ops) | /agency |
Account managers, ads/creative specialists, QA reviewers, support agents |
| REST API | /api/v1 |
Integrations using API keys; health at /api/v1/health |
| Mobile API | /api/v1/mobile |
The ZodiacTech CRM Android app (com.zodiactech.crm) using device tokens |
| API reference | /api/docs |
Developers |
flowchart TB
P[Public site + /register] --> T[Business workspace /admin]
SA[Super Admin /super-admin] -->|creates + manages| T
AG[Agency panel /agency] -->|Meta ops for| T
T --> M[Android app]
T --> API[REST API /api/v1]
M --> MAPI[Mobile API /api/v1/mobile]
Businesses = tenants
- The Business (listed at
/super-admin/tenants) is the unit of everything: users, leads, WhatsApp number, Meta connection, billing agreement. In developer language it is thetenantstable — the two words mean the same thing. - Every database row belongs to exactly one business via a
tenant_id, enforced by a fail-closed global scope. A user signed into one workspace can never read another's data. - The Super Admin panel binds an internal LeadHub HQ workspace so platform staff can use the same CRM surface for their own selling — it never appears in the client onboarding pipeline.
The role model at a glance
| Where | Roles | Panel |
|---|---|---|
| Business workspace | admin (owner), manager, member (sales agent) |
/admin |
| Platform | super_admin |
/super-admin |
| Agency (Meta Ops) | account_manager, ads_specialist, creative_specialist, qa_reviewer, support_agent |
/agency |
- Business roles are invited from inside the workspace. The owner (
admin) has everything, managers run the team and day-to-day operations, members work leads. - Platform super admins bypass every gate — the canonical check is
User::isSuperAdmin()(the flag column OR thesuper_adminrole). - Agency roles carry granular
meta.*permissions checked on the panel pages themselves. Onlyqa_reviewerholdsmeta.campaign.launch; a support person can never launch a campaign.
Full details, including what each role cannot do, are in Roles & who does what.
What each panel is for
/admin — the business workspace
The business's daily tool: Home dashboard with the live lead feed, Leads, Follow-ups, Calls, WhatsApp inbox, Appointments, Ads, Reports, AI assistant, Team and Settings — plus Billing for the owner and the guided setup wizard during onboarding. See Business Admin / Owner and Sales Agent.
/super-admin — the platform owner
Businesses, users, agency staff, the Client Onboarding dashboard, Meta Developer credentials, the billing console, the Android fleet and system settings (health, backups, branding, updates). See Super Admin.
/agency — Meta operations for clients
The internal console where Zodiac Tech staff deliver clients: Setup Queue, All Clients, campaigns, Creative Work, QA Queue, Client Requests, Support Desk and Live Chat. See Agency panel (Meta Ops) and the individual role guides.
The mobile app
The ZodiacTech CRM Android app (com.zodiactech.crm) signs in through the Mobile API with a device token.
Workspaces choose which login methods are enabled (email + password, phone + password, email OTP,
SMS OTP, Firebase OTP) in their mobile login settings; the platform sets the defaults at
/super-admin/settings/mobile-app-login. The app supports an offline queue and honest per-device
call capabilities — see the Mobile App section.
Data flows that need a worker WhatsApp sweeps, reminders, billing lifecycle and scheduled reports run on Laravel's scheduler. On the local XAMPP setup the queue runs sync (in-request); production must run a queue worker and a once-a-minute cron. See Cron & queue workers.
Related guides
- Roles & who does what
- Your first login
- Architecture overview — the technical version of this page.
- Multi-tenancy & isolation
- Agency panel (Meta Ops)
Was this page helpful?
Thanks — noted. ✦