Core Concepts
This page defines key terms and concepts you'll encounter throughout Staqr. Refer back here when you need clarification on terminology.
Entities & Data Model
Staqr manages telecommunications services through a hierarchical entity model. Understanding this hierarchy is essential for navigating the platform.
Entity Hierarchy
Platform (Staqr multi-tenant)
└── Seller (brand/reseller - NOT a tenant)
└── Customer (CRM contact)
└── CustomerAccount (account receivable)
└── BillingAccount (billing entity)
└── UserAccount (service user)
└── Subscription (service subscription)
└── ServiceInstance (active service)
Seller
A Seller is a brand or reseller within a Staqr platform. It's a grouping construct for organizing customers, not a separate tenant.
Key Points:
- Multiple sellers can exist in one platform
- Sellers can have parent-child relationships (reseller hierarchies)
- Used for multi-brand management, commission tracking, regional organization
- Sellers do NOT have their own database schemas or data isolation
Example: A telco reseller "FastMobile" is a Seller under the Fastter platform.
Customer
A Customer is a CRM contact - a person or business that purchases telecommunications services.
Key Points:
- Belongs to a Seller
- Can have multiple Customer Accounts (billing entities)
- Tracked with VIP status, churn risk, complaints, hardship flags
Example: John Smith is a Customer of FastMobile with ID CUST-00001.
Customer Account
A Customer Account is an account receivable entity linking a customer to their billing accounts.
Status Values: ACTIVE, CLOSE
Example: John Smith's account JohnSmithAcct under CUST-00001.
Billing Account
A Billing Account is the billing entity that groups subscriptions and generates invoices.
Status Values: ACTIVE, CANCELED, TERMINATED, CLOSED
Key Points:
- One customer can have multiple billing accounts (e.g., personal + business)
- Invoices are generated at this level
- Dunning workflows apply here
Example: John's personal billing account BA-12345.
User Account
A User Account represents a service user within a billing account.
Status Values: ACTIVE, CANCELED, TERMINATED, CLOSED
Example: John's mobile service user account UA-67890.
Subscription
A Subscription is a purchased telecommunications service (e.g., mobile plan, broadband).
Status Values: CREATED, ACTIVE, CANCELED, RESILIATED, CLOSED, SUSPENDED, PENDING
Key Points:
- Billing type:
PREPAIDorPOSTPAID - Has a service plan (price plan, charges, bundles)
- One subscription can have multiple service instances
Example: John's $50/month mobile plan with 50GB data.
Service Instance
A Service Instance is an active service component (e.g., a phone number, SIM card).
Status Values: ACTIVE, INACTIVE, CANCELED, TERMINATED, SUSPENDED, CLOSED, PENDING
Example: John's mobile number 0412345678 on his subscription.
Workflow & Automation
Flow
A Flow is a workflow automation that executes when triggered.
Components:
- Trigger: What starts the flow (schedule, webhook, event)
- Actions: What happens when triggered (code, integrations, logic)
Example: A flow that sends a welcome SMS when a new customer activates.
Connection
A Connection securely stores credentials for integrating with external services.
Types:
- OAuth2 (e.g., Google, Slack)
- API Key (e.g., Twilio, Stripe)
- Username/Password (legacy systems)
Example: A Twilio connection storing API credentials for sending SMS.
Integration (Piece)
An Integration (also called a "Piece") is a pre-built connector to an external service.
Examples: Slack integration, Google Sheets integration, Stripe integration.
Key Points:
- 100+ pre-built integrations available
- Custom integrations can be built with TypeScript SDK
- Each integration has triggers and actions
Architecture
Multi-Tenant Architecture
Staqr supports full multi-tenancy with clear separation between Platform tenants and Seller groupings.
Platform = Top-level tenant isolation
- Separate database schema per platform
- Completely isolated data
- Own Commerce provider and CCaaS tenant
Seller = Brand/reseller grouping (NOT a tenant)
- Shares platform database
- Used for organization and reporting
- No data isolation between sellers
Users = Role-based access
- Belong to a seller
- Permissions via RBAC (Role-Based Access Control)
- Field-level data masking for PII
┌─────────────────────────────────────────────────────────────────────────┐
│ MASTER PLATFORM (STAQR) │
│ (Multi-tenant hosting platform) │
└───────────────────────────────┬─────────────────────────────────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐
│ PLATFORM TENANT A │ │ PLATFORM TENANT B │ │ PLATFORM TENANT C │
│ (Staqr Platform) │ │ (Staqr Platform) │ │ (Staqr Platform) │
│ = Commerce Provider│ │ = Commerce Provider│ │ = Commerce Provider│
│ = CCaaS Tenant │ │ = CCaaS Tenant │ │ = CCaaS Tenant │
└─────────┬─────────┘ └─────────┬─────────┘ └─────────┬─────────┘
│ │ │
┌───────┴───────┐ ┌───────┴───────┐ ┌───────┴───────┐
│ Seller 1 │ │ Seller A │ │ Seller X │
│ Seller 2 │ │ Seller B │ │ Seller Y │
│ (grouping) │ │ (grouping) │ │ (grouping) │
└───────────────┘ └───────────────┘ └───────────────┘
Three-Platform Architecture
Staqr integrates three platform components:
1. Staqr Platform (Node.js/React)
- UI/UX layer
- Workflow automation engine
- API gateway
- Authentication: JWT tokens
2. Commerce (Java CRM)
- Billing and subscriptions
- Customer hierarchy
- Invoice generation
- 1500+ API endpoints (V0, V1, V2)
- Authentication: Keycloak OAuth2
3. CCaaS (Wazo Platform)
- Contact center infrastructure
- WebRTC voice/video
- Call recording
- 21 Docker services
- Authentication: CCaaS tokens
Key Distinction:
- Frontend calls Staqr API (JWT auth)
- Staqr API proxies to Commerce and CCaaS
- Never call Commerce/CCaaS directly from frontend
Regulatory Compliance (Australian Telco)
Australian telecommunications regulations require specific protections. Staqr implements these at the platform level.
HRT (High-Risk Transaction)
High-Risk Transactions are sensitive operations that require additional authentication (MFA).
HRT-Protected Operations:
- Port-out (number porting to another carrier)
- Suspension
- Termination
- SIM swap
- Payment method changes
Levels:
- STANDARD: MFA challenge required
- ELEVATED: SMS two-way verification (30-min window)
PPV (Pre-Port Validation)
Pre-Port Validation is ACMA-mandated SMS verification for number porting (since September 2020).
Process:
- Customer requests port-out to new carrier
- Losing carrier sends SMS to device: "Reply YES to port your number"
- Customer must reply within 30 minutes
- 3-strike rule: Max 3 attempts per port request
Bypass Conditions: Stolen device, suspended number, customer overseas (requires 2x Category A ID).
TCP Code
Telecommunications Consumer Protections Code (ACMA) mandates:
- 10-day disconnection notice
- 2-day complaint acknowledgment
- 10-day complaint resolution (or escalate to TIO)
- CIS (Critical Information Summary) for all plans
DV Protection
Domestic Violence Protection (ACMA DFSV Standard 2025) provides:
- Service continuity for victims
- No contact with perpetrator
- Safe communication channels
- Hidden call records
Status: Coming July 2025.
TIO
Telecommunications Industry Ombudsman - independent dispute resolver.
Obligations:
- 2-day urgent complaint resolution
- 10-day standard complaint resolution
- Escalate unresolved complaints to TIO
- TIO contact: 1800 062 058
Billing Concepts
Prepaid vs Postpaid
Level: Subscription-level (NOT customer-level)
Prepaid:
- Pay before using service
- Uses wallet balance
- No invoices
- Top-up to add funds
Postpaid:
- Use service first, pay later
- Generates invoices
- Billing cycles (monthly, etc.)
- Credit checks required
Note: One customer can have BOTH prepaid and postpaid subscriptions.
Invoice States (9-State Architecture)
Commerce uses 9 invoice payment states (not simple PAID/UNPAID):
| State | Description |
|---|---|
NONE | No payments received |
PARTIAL | Partial payment |
FULL | Fully paid |
OVERPAID | Overpayment (credit balance) |
PENDING_PAYMENT | Payment processing |
SUSPENDED | Payment suspended |
DUNNING | In dunning process |
WRITTEN_OFF | Bad debt write-off |
CLOSED | Invoice closed |
Journeys
Journey Pattern
A Journey is a guided multi-step workflow in the UI (wizard pattern).
Common Journeys:
- Activation: New customer/subscription setup
- Porting: Number port-in from another carrier
- SIM Swap: Replace physical SIM
- eSIM: Provision digital SIM
- MSN Swap: Change mobile number
- Plan Change: Upgrade/downgrade subscription
- Suspension: Temporarily suspend service
- Termination: Permanently cancel service
Components:
- Multiple steps (customer select, config, verification, confirmation)
- HRT protection for high-risk operations
- AI Assistant integration for help
AI & Assistant
AI Assistant
Context-aware AI help available on every page.
Capabilities:
- Answer questions about current page/entity
- Suggest next actions
- Link to relevant documentation
- Execute tasks via MCP tools
Integration: Uses setPageData() to receive page context.
MCP (Model Context Protocol)
Protocol for connecting AI tools to Staqr.
Examples:
- Knowledge base search
- Customer data lookup
- Subscription management
- Invoice generation
Next Steps
Now that you understand core concepts, explore:
- Principles - Design principles guiding the platform
- Automation & Workflows - Build your first flow
- Platform Administration - Configure your platform