How It Works
MIDDAG Account is a hub centralizer. It does not replace your existing tools. It sits on top of them and makes them coherent.
The hub model
Your business already uses tools that are good at what they do:
- WooCommerce handles products, checkout, and order management
- Stripe processes payments and manages subscriptions
- HubSpot tracks contacts, deals, and CRM pipelines
- Jira manages tickets and project work
The problem is that none of these tools know about each other. A payment in Stripe does not automatically update a license. An order in WooCommerce does not tell HubSpot what the customer is entitled to. You end up checking multiple systems to answer a single question: "What does this customer have access to?"
MIDDAG Account solves this by pulling data from all of these tools into a single view, organized around Organizations and Entitlements.
The Entitlement as backbone
The central concept is the Entitlement: a unique code that means "Organization X has access to Product/Service Y."
When a customer buys something through WooCommerce, MIDDAG Account automatically creates an entitlement. That entitlement becomes the single point of reference for everything related to that purchase: the license it grants, the contract it is governed by, the invoices it generates, the service requests it receives.
Instead of checking Stripe for payment status, WooCommerce for order details, and a spreadsheet for license keys, you look up one entitlement code and see the complete picture.
Note: While the typical flow is Organization → Entitlement → Downstream resources, Entitlements don't require an Organization. They can exist standalone for use cases like gift cards, promotional access, individual (B2C) customers, or migration imports. All foreign keys are optional.
The entitlement lifecycle
Every entitlement follows the same four-state lifecycle:
Active -- The customer has access. Downstream resources (licenses, environments, services) are provisioned and working.
Suspended -- Access is on hold, typically because a payment failed. The entitlement can return to active when payment is resolved. Downstream resources are paused but not destroyed.
Expired -- The entitlement reached its end date without renewal. There is a configurable grace period before the system moves it to cancelled. The customer can still renew during this window.
Cancelled -- Access is revoked. Downstream resources are deprovisioned according to your policies. Even cancelled entitlements can be reactivated for win-back scenarios.
What happens when a customer buys something
Here is the typical end-to-end flow:
- Customer places an order through WooCommerce (or accepts a quote in the portal).
- Payment is processed by Stripe (or Banco Inter for Brazilian Pix/Boleto).
- MIDDAG Account creates an entitlement automatically, based on the product purchased. The entitlement is assigned a unique code (like
PLG-2026050001) and linked to the customer's organization. - Downstream resources are provisioned according to the entitlement class: a software license, a managed environment, a service contract, or whatever the product grants.
- The entitlement appears in the admin panel (for operators) and the customer portal (for the customer). One code, one place to check.
- When renewal time comes, the system handles it according to your configured policies: auto-renew, grace periods, reminders, and recovery from failed payments.
Entitlement classes
Not all products are the same. A software license works differently from a managed hosting environment. Entitlement classes tell the system what kind of access is being granted and how to handle it.
| Class | What it covers | Example |
|---|---|---|
| Plugin | Software license with site activation and downloads | "Acme Corp has a license for Product X on 3 sites" |
| Environment | Managed hosting environment with health monitoring | "Acme Corp has a managed Moodle instance" |
| Service | Ongoing service or project with contracts and credits | "Acme Corp has a support plan with 40 credits/month" |
| Order | General purchase entitlement | "Acme Corp purchased a training package" |
| Affiliate | Partner program membership | "Acme Corp is a reseller partner" |
| Education | Training, mentoring, or course access | "Acme Corp has access to the Advanced Workshop" |
Classes are configurable from the admin panel. You can adjust them to match what your business sells.
Policies control the rules
Policies are configurable rules that govern how entitlements behave. Instead of hardcoding business logic, you set policies at up to five levels:
- Global -- Default rules for your entire installation
- Entitlement Class -- Rules specific to a class (e.g., all Plugin entitlements)
- Organization -- Rules specific to a customer (e.g., a VIP customer gets longer grace periods)
- Product -- Rules specific to a product
- Individual Entitlement -- Rules for one specific entitlement
The most specific level wins. If you set a global grace period of 7 days but give a specific organization 30 days, that organization gets 30 days.
Policies cover renewal behavior, payment recovery, cancellation rules, SLA targets, trial periods, refunds, notifications, and more. See Key Concepts for the full list.
Data stays in your WordPress
Everything lives in your WordPress database. If you stop using Stripe, your entitlement history remains. If you switch CRMs, your organization records are still there. MIDDAG Account pulls data in; it does not push your data to external platforms.
This is the data sovereignty model: you own your customer lifecycle data, always.