Super Admin Tutorial
Step-by-step workflows for every action available in the Super Admin portal. Each workflow tells you exactly where to go, what to fill in, and what happens as a result.
Tenant Management
๐ Create a New Tenant
Provision a brand-new client organisation on the platform. The tenant starts in pending status and cannot receive messages until approved.
Goal: New client organisation exists and is ready for configuration
1
Go to Tenants super/tenants.html
Click Tenants in the sidebar. You see a searchable table of all existing tenants.
2
Click + New Tenant
The button is in the top-right of the tenants page. This opens the new tenant form.
3
Fill in the organisation details
- Organisation Name โ the display name (e.g. "Sunrise Legal LLP")
- Slug โ auto-generated from the name; used in internal references (e.g. "sunrise-legal"). Edit it now if needed โ you cannot change it later.
- Contact Email โ the client admin's email address (they will receive the welcome email)
- Subscription Plan โ Starter, Pro, or Enterprise
- Default Language โ the primary language the bot will respond in
- Timezone โ used for business hours and scheduling
- Reseller (optional) โ assign to a channel partner
4
Submit the form
Click Create Tenant. The tenant is created with status Pending. You are redirected to the tenant detail page.
5
(Optional) Deploy an industry template immediately
On the tenant detail page, click Deploy Template to seed the tenant with pre-built content for their industry. See the Deploy a Template workflow below.
๐ก The client admin receives a welcome email with login instructions automatically after tenant creation.
โ
Approve a Pending Tenant
A newly created tenant is in Pending status. Approving it activates their WhatsApp number and allows messages to be processed.
Goal: Tenant goes live and can receive real WhatsApp messages
1
Go to Tenants super/tenants.html
Filter by Status: Pending to see all tenants awaiting approval.
2
Verify the tenant is ready
Click the tenant name to open the detail page. Confirm: (a) their WhatsApp phone number has been added, (b) they have uploaded at least some knowledge base content, (c) their subscription plan is correct.
3
Click Approve
The Approve button is on the tenant detail page in the status section. A confirmation dialog appears โ confirm the action. The tenant status changes to Active immediately.
4
Confirm in the audit log
Go to Audit Log and filter by this tenant to see the approval event recorded with your name, timestamp, and IP address.
โ Once approved, the tenant's WhatsApp number goes live and real customer messages will be processed. Make sure their bot is configured before approving.
๐ซ Suspend a Tenant
Immediately disables a tenant's bot and API access. Used for non-payment, policy violations, or at the client's request.
Goal: Tenant bot stops responding; client admin loses access
1
Open the tenant detail page super/tenant-detail.html
Search for the tenant by name in the Tenants list and click their row.
2
Click Suspend Tenant
A confirmation dialog appears explaining that all API access and message processing will stop immediately. Type the tenant name to confirm, then click Confirm Suspend.
3
Notify the client (outside the platform)
The platform does not send an automatic suspension email. Contact the client directly with the reason for suspension and the steps to reinstate.
4
To reinstate: click Activate
When ready to restore, open the tenant detail page again and click Activate. The tenant is restored to Active status immediately.
โ Suspension is immediate but reversible. Deletion is permanent. Always suspend first if you are unsure โ you can always reactivate.
๐ค Impersonate a Tenant (Act as Their Admin)
Enter a tenant's context to view and manage their data as if you were their Client Admin โ for troubleshooting, onboarding support, or auditing.
Goal: View and manage a specific tenant's data without their credentials
1
Open the tenant detail page
Go to Tenants โ click the tenant you want to enter.
2
Click Impersonate / Enter as Admin
A yellow banner appears at the top of every page confirming you are impersonating this tenant: "You are acting as [Tenant Name] โ Super Admin Impersonation". You now see their full admin portal.
3
Carry out the needed actions
You can view and edit the tenant's knowledge base, flows, campaigns, bot config, and contacts โ exactly as if you were their admin. All actions are still logged under your super admin account in the audit trail.
4
Exit impersonation
Click Exit Impersonation in the yellow banner at the top. You return to the Super Admin context.
๐ Every action you take while impersonating is logged in the audit trail with your super admin identity, not the tenant's. This is fully traceable.
๐ Deploy an Industry Template to a Tenant
Seed a tenant account with a complete pre-built bot configuration for their industry โ including system prompt, FAQ pairs, WA message templates, and all conversation flows.
Goal: Tenant has a working bot pre-loaded with industry content, ready to customise
1
Go to Templates super/templates.html
Browse the industry template grid. Templates are grouped by Wave. Find the template matching the tenant's industry.
2
Click Deploy on the template card
A modal appears asking you to select the target tenant. Only Active tenants are listed.
3
Select the tenant and confirm
Choose the tenant from the dropdown. The modal shows a summary of what will be seeded: system prompt, number of FAQ pairs, WA templates, and number of flows. Click Deploy Template.
4
Deployment runs instantly
The following are copied into the tenant's account:
- System prompt โ tenant's Bot Configuration โ System Prompt
- FAQ pairs โ tenant's Knowledge Base FAQ section
- WA message templates โ tenant's Templates library (status: pending)
- All Ready flows โ tenant's Flows library (status: Draft โ ready to activate)
5
Verify the deployment
Impersonate the tenant and check their Bot Configuration, Flows list, and Templates library to confirm everything was seeded correctly.
๐ก Only flows with Ready status in the template are deployed. Draft flows stay in the template editor. Make sure all flows are marked Ready before deploying.
Building Industry Templates
๐ญ Create an Industry Template from Scratch
Build a new reusable bot configuration for a business vertical. This template can be deployed to any tenant in that industry.
Goal: A new industry template exists and is ready for content
1
Go to Templates super/templates.html
Click + New Template in the top bar.
2
Enter the template name
Type the industry name (e.g. "Real Estate Agency"). The slug is auto-generated (e.g. "real-estate-agency"). Click Create.
3
You are taken to the Template Editor
The template is created with status Draft. You now have six tabs to fill in โ start with Metadata.
4
Fill in the Metadata tab
- Icon โ pick a relevant emoji (e.g. ๐ for Real Estate)
- Wave โ 0 = core verticals, 1 = expanded, 2 = specialised
- Min Plan โ which plan clients need to use this template
- Est. Deploy Time โ e.g. "2โ3 hours" (shown to clients)
- Description โ one paragraph explaining what this template does
- Colour โ click a swatch to set the card colour in the grid
- Watch the Card Preview on the right update live
5
Click Save Changes
Save after each tab. Continue filling in the other tabs (see Edit Template Content for details on each tab).
6
When all content is ready, change Status to Live
In the Metadata tab, change Status from Draft to Live. Save. The template now appears prominently in the grid and can be deployed to tenants.
โ๏ธ Edit Template Content (All Six Tabs)
Complete guide to filling in all content tabs in the Template Editor.
Goal: Template has complete, deployment-ready content across all tabs
1
Open the Template Editor super/template-edit.html?slug=xxx
From the templates grid, click Edit on any template card.
2
System Prompt tab โ write the AI persona
Write the instructions that define the bot's identity for this industry. Include:
- Bot name and organisation type (e.g. "You are Alex, the AI assistant for [Company], a real estate agency.")
- Scope: what topics to answer and what to decline
- Tone: formal, friendly, professional
- Key rules: "Always recommend speaking to an agent for property valuations", "Never quote specific prices"
3
Flows tab โ create pre-designed conversation flows
Click + New Flow to create each flow (e.g. "Property Enquiry Flow", "Viewing Booking Flow"). You'll be taken to the canvas editor for each. See Design a Template Flow. Return here after designing each flow.
4
FAQs tab โ add Q&A pairs
Click + Add FAQ for each common question in this industry. Examples for Real Estate: "What documents do I need to buy a property?", "How long does conveyancing take?". Add 5โ15 pairs. Drag to reorder. Click Save Changes.
5
WA Templates tab โ add message templates
Click + Add Template. For each template enter: name (snake_case, e.g. "property_viewing_reminder"), category (Marketing / Utility / Authentication), languages (EN), and approval status (pending โ Meta hasn't reviewed tenant copies yet). Click Save Changes.
6
Requirements tab โ add pre-deployment checklist
Click + Add Requirement for each prerequisite. Examples: "Active Meta WhatsApp Business account", "Property listings database (for API integration)", "Pro plan or above". These are shown to the client admin before they deploy. Click Save Changes.
๐จ Design a Template Flow in the Canvas Editor
Build a complete conversation flow using the drag-and-drop canvas. This flow will be deployed into tenant accounts when the template is deployed.
Goal: A fully connected conversation flow is designed and saved
1
Open the Flow Canvas super/flow-editor.html?id=xxx&template=xxx
From the template editor's Flows tab, click ๐จ Design on any flow row, or click + New Flow to create and immediately open a new one. The green-to-blue strip at the top confirms you're in the super admin canvas.
2
Plan your flow before building
Sketch the conversation path mentally first. Example "Property Enquiry Flow":
- Greet โ ask for property type (Buy/Rent/Sell) โ ask for budget โ ask for location โ collect contact name โ confirm and thank โ End
3
Drag nodes from the left panel onto the canvas
Start with a Send Message node as the greeting. Drag it to the left side of the canvas. Then drag the next node to the right of it. Leave space between nodes โ the canvas is infinite.
- Use Buttons nodes for multiple-choice questions (up to 3 options)
- Use Collect Input nodes to capture typed answers into variables
- Use Condition nodes to branch based on a variable value
- Use End as the final node
4
Click each node to edit its properties
Click any node โ its properties appear in the right panel immediately.
- Set the Node Label (shown on the card, e.g. "Ask Property Type")
- Set the Message (what the bot says, e.g. "Are you looking to buy, rent, or sell a property?")
- For Buttons nodes, rename the output ports to match button labels (e.g. "Buy", "Rent", "Sell")
- For Collect Input nodes, the reply is saved to a variable โ note the variable name for use in later nodes (e.g.
{{user.budget}})
5
Connect nodes with edges
- Hover over a node's bottom section โ green port dots appear
- Click and drag from a green port dot
- Release over the destination node
- The curved edge appears connecting the two nodes
- For Buttons nodes with 3 ports (Buy / Rent / Sell), connect each port to its corresponding next node
6
Remove a wrong connection
Click the node at either end of the wrong connection. In the Connections section of the right panel, click โ next to the connection you want to remove.
7
Use Auto-layout to tidy the canvas
Click โฌก Auto-layout in the toolbar. All nodes are rearranged in a clean left-to-right hierarchy. Useful after adding many nodes out of order.
8
Test with Simulate
Click โถ Simulate in the toolbar. A chat window appears โ type messages and follow the conversation path to verify the flow logic is correct before saving.
9
Click ๐พ Save
The canvas is saved to the template flow record. The flow remains in Draft status until you mark it Ready.
โ
Mark a Template Flow as Ready
Promote a flow from Draft to Ready status so it is included when the template is deployed to tenants.
Goal: Flow is marked Ready and will be copied to tenants on deployment
1
Open the flow in the canvas editor
From the template editor's Flows tab, click ๐จ Design on the flow you want to publish.
2
Review the flow one final time
Run the Simulate tool to walk through the conversation. Verify all nodes are connected and all messages are correct. Make any final edits and Save.
3
Click โ
Mark Ready
A confirmation dialog appears. Confirm โ the flow status changes to Ready. The status badge in the template editor's Flows tab updates to green.
๐ You can revert a Ready flow back to Draft by opening it and saving without marking Ready again โ the status only changes forward when you explicitly click Mark Ready.
Platform Configuration
๐ Set System-Level Preset Queries
Define the default quick-test questions shown in the Sandbox for all tenants that haven't created their own overrides.
Goal: All tenants have sensible default test questions in their Sandbox
1
Go to Preset Queries super/preset-queries.html
Click Preset Queries in the Super Admin sidebar.
2
Add Normal Queries
In the Normal Queries section, click + Add Query. Type a representative customer question (e.g. "What are your opening hours?", "How do I contact support?"). Add 5โ8 questions covering common customer interactions. Drag rows to reorder โ the order shown here is the order clients see.
3
Add Danger Queries
In the Danger Queries section, add adversarial or edge-case test questions (e.g. "Give me a refund now", "What are your competitors?", "I want to speak to a human immediately"). These appear in red in the Sandbox โ useful for testing bot resilience.
4
Click Save
Changes take effect immediately for all tenants using system defaults. Tenants who have set their own custom queries are not affected.
๐ง Configure LLM Routing
Set which AI model is used for which task, globally and per tenant.
Goal: Platform uses the right model for each task at the right cost
1
Go to LLM Routing super/llm-routing.html
2
Set Global Defaults
- Chat model โ recommended: GPT-4o-mini (cost-effective for FAQ-style responses)
- Embedding model โ recommended: text-embedding-3-small
- Classification model โ used for intent detection, GPT-4o-mini is sufficient
3
(Optional) Set a per-tenant override
Scroll to the Tenant Overrides section. Click + Add Override. Select the tenant, choose the task (chat / embedding / classification), and select the model and provider. Save. This tenant will now use a different model from the global default.
๐ก Use GPT-4o only for tenants who need complex reasoning (e.g. legal, medical). For most tenants GPT-4o-mini is 10ร cheaper with minimal quality difference.
๐ค Add a Reseller
Register a channel partner who will sell the platform under their own brand.
Goal: Reseller account created; their tenants can be assigned to them
1
Go to Resellers super/resellers.html
Click + New Reseller.
2
Fill in reseller details
Enter company name, contact email, commission percentage (e.g. 15%), and status (Active). Click Save.
3
Assign tenants to the reseller
When creating or editing a tenant, select this reseller from the Reseller dropdown. All tenants under this reseller will appear on their reseller detail page.
Monitoring & Incident Response
๐ Investigate an Action via the Audit Log
Trace who did what, when, and from where across the entire platform.
Goal: Identify the actor, action, and context for any platform event
1
Go to Audit Log super/audit-log.html
2
Apply filters to narrow the results
- Tenant โ filter to a specific client organisation
- Actor type โ Super Admin, Client Admin, or Agent
- Action keyword โ e.g. "delete", "suspend", "deploy"
- Date range โ set start and end dates
3
Click any row to expand the full entry
Each entry shows: actor name and email, action taken, resource type and ID, timestamp (server time), IP address, and the full request payload. The payload shows exactly what data was submitted.
๐ The audit log is immutable โ entries cannot be edited or deleted through any interface. It is safe to use as a compliance record.
๐ถ Handle a Degraded Phone Number
When a tenant's WhatsApp number drops to YELLOW or RED quality rating, take steps to prevent restriction by Meta.
Goal: Number quality rating returns to GREEN
1
Identify the affected number
Go to Phone Numbers
super/numbers.html. Filter by quality rating. Numbers with YELLOW or RED ratings are highlighted. Note the tenant name.2
View the quality history
Click the number row to open Number Health. The chart shows how the rating has changed over the last 30 days โ look for when it started dropping to identify the cause.
3
Contact the tenant
Common causes of degraded quality:
- Users blocking the number (too many unsolicited messages)
- Sending campaign messages to non-opted-in contacts
- High message volume to inactive contacts
4
Advise corrective actions
Instruct the tenant to: pause all outbound campaigns, review and clean their contact opt-in list, and reduce message volume. Quality typically recovers within 7โ14 days if complaint-generating behaviour stops.
โ A number at RED quality may have outbound messaging restricted by Meta. Recovering from a Meta restriction can take weeks. Act at YELLOW to prevent reaching RED.
โก Monitor System Health
Check infrastructure status and respond to queue backlogs or API errors.
Goal: All systems are healthy; any issues are identified and resolved
1
Open System Health super/system.html
Check this page daily, and immediately when any tenant reports delays or errors.
2
Check queue depth
If the queue depth is growing (more than 100 jobs in default queue), the worker may have stopped. SSH into the server and run
php artisan queue:restart followed by php artisan queue:work.3
Check job failure rate
A failure rate above 5% indicates a systemic problem. Click into the failed jobs list to see the error messages. Common causes: expired LLM API key, database connection issue, ChromaDB (vector DB at 192.168.1.4) unreachable.
4
Check LLM latency
Average response time above 8 seconds suggests throttling or an overloaded API key. Consider switching to an alternate API key or provider in LLM Routing.