Customer Onboarding and Lifecycle

Overview

This chapter defines the complete B2B customer lifecycle for the Membership platform -- from the moment a prospective client discovers the product through acquisition, provisioning, configuration, data migration, training, go-live, ongoing health monitoring, churn prevention, and expansion. The lifecycle model is designed for a 4-person team, which means every phase must be automated or templated to the greatest extent possible. Manual intervention is reserved for Enterprise-tier clients and escalation scenarios.

The lifecycle follows seven phases:

  1. Discovery -- Prospect learns about Membership through marketing, referrals, events, or outbound sales
  2. Evaluation -- Prospect attends a demo, reviews documentation, compares competitors
  3. Purchase -- Prospect selects a tier, accepts terms, provides payment information
  4. Onboarding -- Tenant provisioned, admin account created, configuration wizard completed
  5. Adoption -- Customer configures plans, imports members, trains staff, goes live
  6. Renewal -- Annual or monthly renewal, usage review, satisfaction check
  7. Expansion -- Tier upgrade, feature adoption, additional locations, referral program

Target metrics:

Metric Target
Tenant provisioning time < 60 seconds (fully automated)
Time to first member added < 24 hours after provisioning
Time to go-live < 7 days (self-service), < 30 days (assisted)
Trial-to-paid conversion rate > 25%
90-day retention rate > 90%
Net Promoter Score (NPS) > 50
Annual churn rate < 10%

Pricing tiers:

Tier Monthly Price Member Limit Support Level Onboarding
Starter EUR 0.99 (EUR 9.99/year) 20 members Community / Knowledge Base Self-service
Team EUR 29 (EUR 299/year) 200 members Email (48h SLA) Self-service + 1x onboarding call
Professional EUR 99 (EUR 999/year) Unlimited Priority email (24h SLA) + phone Assisted (1x training session)
Enterprise Custom Unlimited Dedicated CSM, phone, SLA Full onboarding package

No zero-euro strategy. Every user must have a billable account. The Starter tier at EUR 0.99/month validates payment credentials and creates a commercial relationship from day one. A 14-day Trial Studio (full features, no payment required) replaces the traditional freemium model. All prices net (plus applicable VAT).

Starter and Team tiers are entirely self-service: sign up, provision, configure, go live -- all without human interaction. Professional and Enterprise tiers include assisted onboarding with scheduled calls, personalized configuration, and optional data migration services.


Customer Scenarios

Every new customer falls into one of three scenarios. The scenario determines the onboarding path, the wizard steps presented, and the level of migration effort required. All three scenarios use the same self-onboarding flow with scenario-specific variations.

Scenario Customer Type Description Key Differences
A -- Founder Person founding a new business with a studio No existing organization, needs business setup guidance Founding support (Gewerbeanmeldung, bank account, insurance), zero members initially
B -- Expansion Existing business opening additional location(s) Has parent organization, adding new studio/location Parent org link, inherited branding/config, staff sharing, cross-location reporting
C -- Migration Existing business with one or more studios switching systems Has members, contracts, financial data to migrate Source system selection, CSV/API import, parallel operation period, financial reconciliation

Scenario A -- Founder

The Founder is starting from scratch. They may not yet have a registered business (Gewerbeanmeldung), a business bank account, or insurance. The onboarding flow includes a Founding Checklist that guides them through these prerequisites. Founding support can be provided by the Franchise (if the customer is joining a franchise network) or directly by Membership One (for independent founders). The Franchise can customize their founding support package for their studios/clubs.

Scenario B -- Expansion

The Expansion customer already operates one or more locations and is adding a new one. During onboarding, they select their parent organization, which enables inherited branding and configuration, staff sharing across locations, and consolidated cross-location reporting. The new location is provisioned as a child entity under the existing parent.

Scenario C -- Migration

The Migration customer is switching from a competitor system (easyVerein, ClubDesk, Magicline, SPORTSCLUB, or another platform). They have existing members, contracts, and financial data that must be imported. The onboarding flow includes a dedicated Data Import step with source system selection, CSV upload, dry-run validation, and execution. A parallel operation period allows the customer to run both systems simultaneously until they are confident in the migration. Financial reconciliation ensures no billing gaps or double charges.


Acquisition Funnel

Funnel Diagram

flowchart TD subgraph Sources[Lead Sources] S1[Website / SEO] S2[Trade Show / Messe] S3[Referral Program] S4[Partner Channel] S5[Outbound Sales] S6[Social Media / Ads] end S1 --> CRM[CRM Lead Created] S2 --> CRM S3 --> CRM S4 --> CRM S5 --> CRM S6 --> CRM CRM --> QUAL{Qualification} QUAL -->|Qualified| DEMO[Demo Scheduled] QUAL -->|Not Fit| NURTURE[Nurture Sequence] NURTURE -->|Re-engage| QUAL DEMO --> TRIAL[14-Day Trial] TRIAL --> PROP{Proposal} PROP -->|Accepted| CONTRACT[Contract Signed] PROP -->|Negotiation| NEG[Price Negotiation] NEG --> CONTRACT PROP -->|Rejected| LOST[Lost - Exit Survey] CONTRACT --> ONBOARD[Onboarding] ONBOARD --> ACTIVE[Active Customer] ACTIVE --> RENEW[Renewal / Expansion] style Sources fill:#e3f2fd style CRM fill:#fff3e0 style ACTIVE fill:#e8f5e9 style LOST fill:#ffebee

Lead Sources

Source Entry Method Expected Monthly Volume Target Conversion Rate
Website / SEO Contact form, trial signup, pricing page CTA 50-100 leads 15-20%
Trade Show / Messe Badge scan, business card, QR code at booth 20-50 per event 10-15%
Referral Program Existing customer referral link (EUR 100 credit per conversion) 10-20 leads 30-40%
Partner Channel Integration partner recommendation (Gantner, DATEV consultants) 5-15 leads 20-25%
Outbound Sales Cold email campaigns to club/studio directories 30-60 leads 5-8%
Social Media / Ads Facebook, Instagram, Google Ads landing pages 40-80 leads 8-12%
Content Marketing Blog posts, whitepapers, webinars, comparison guides 20-40 leads 12-18%

Sales Process

Demo scheduling: Every qualified lead is offered a 30-minute video call (Google Meet / Zoom). The demo follows a standardized script tailored to the prospect's organization type (club vs. studio vs. franchise). Key demo modules:

  1. Member management and self-service onboarding (5 min)
  2. Contract and billing automation with SEPA (10 min)
  3. Check-in and access control (5 min)
  4. Mobile app and member portal (5 min)
  5. Pricing and next steps (5 min)

Trial period: 14 days with full feature access and a 50-member limit. Trial accounts are provisioned on the Professional tier (all features unlocked) so the prospect experiences the complete product. The 50-member limit prevents abuse while allowing meaningful evaluation. Trial accounts that are not converted are automatically archived after 30 days and permanently deleted after 90 days.

Proposal: Personalized pricing based on the prospect's member count, number of locations, and required features. The proposal is generated from a template (PDF) and sent via email with a digital acceptance link. Proposals expire after 14 days.

Contract: The contract closing uses an integrated contract bundle that covers three parties in a single signing process:

# Party Agreement Scope
1 Membership One GmbH SaaS Agreement (Allgemeine Geschaeftsbedingungen / AGB) + Auftragsverarbeitungsvertrag (AVV / DPA) Platform access, data processing, support SLA
2 My-Factura Invoicing and billing service agreement Invoice generation, billing engine, payment reconciliation
3 CashControl SEPA Lastschriftmandat (via My-Factura) Direct debit collection, SEPA file generation, Inkasso/collections

The customer signs once -- digitally, no physical signature required. Membership One orchestrates the downstream contracts: upon the customer's acceptance, My-Factura and CashControl agreements are activated automatically through Membership One's integration layer. The bundled contract is stored as a PDF in the document management module and linked to the organization entity.

Contract Signing Methods

Multiple signing methods are supported to accommodate different customer segments, regulatory requirements, and contract values. The signing method is selected during the proposal/contract closing phase.

Method Description Tier Complexity
Click-to-Sign Digital acceptance via checkbox + timestamp + IP logging. Legally binding for standard SaaS agreements under EU eCommerce Directive. All tiers Low
In-App Signature Touch/stylus signature capture on mobile device or web canvas. Stored as SVG + screenshot with audit metadata. All tiers Low
Print, Sign, Upload Customer prints the contract PDF, signs with wet ink, scans/photographs it, and uploads via the onboarding wizard or email. OCR extracts signature for verification. All tiers Medium
Adobe Acrobat Sign Integration with Adobe Acrobat Sign for legally binding electronic signatures with full audit trail. Supports sequential signing (multiple signatories). Professional+ Medium
Qualified Electronic Signature (QES) eIDAS-compliant qualified electronic signature via trust service provider (e.g., sign-me by Bundesdruckerei, Swisscom, D-Trust). Required for certain contract types in regulated industries. Enterprise High

The default flow for Starter and Team tiers is Click-to-Sign or In-App Signature. Professional and Enterprise customers can optionally enable Adobe Acrobat Sign or QES. All signing methods generate a tamper-proof audit trail including: signer identity, timestamp (UTC), IP address, document hash (SHA-256), and the signature itself. Signed documents are stored in the Document module with immutable versioning.

CRM Pipeline Stages

Stage Description Automated Actions SLA
LEAD New lead created from any source Welcome email, assign to sales rep Assign within 4h
CONTACTED First outreach completed (email or call) Log activity, schedule follow-up Contact within 24h of lead creation
DEMO_SCHEDULED Demo call booked via Calendly or manual Calendar invite, demo prep email, reminder 1h before Demo within 5 business days
DEMO_COMPLETED Demo delivered Send trial invite, follow-up email with recording link Follow-up within 24h
TRIAL Trial account provisioned and active Day 3/7/12 nurture emails, usage tracking Monitor daily
PROPOSAL_SENT Pricing proposal delivered Reminder at day 7, expiry warning at day 12 Send within 48h of trial start or demo
NEGOTIATION Custom pricing discussion (Enterprise only) Log all communications Resolve within 10 business days
WON Contract signed, payment confirmed Trigger provisioning, CRM status update, notify CSM Provision within 60 seconds
LOST Prospect declined Exit survey email, add to win-back sequence Survey within 24h
ONBOARDING Provisioning complete, setup in progress Onboarding checklist emails, wizard progress tracking Complete within 7-30 days
ACTIVE Go-live checklist passed, live members Monthly health score calculation, usage reports Ongoing

Tenant Provisioning

Self-Onboarding Principle

Self-onboarding is the default for ALL three customer scenarios (Founder, Expansion, Migration). The platform is designed for maximum automation -- the customer drives the entire process themselves, from signup through configuration to go-live.

Key principles:

  • Customer-driven: The customer completes every step at their own pace through the web interface. No back-office intervention is required at any point.
  • Human assistance available, never required: Professional and Enterprise tiers include optional training calls and assisted migration, but these are supplements to the self-service flow, not prerequisites.
  • Scenario-aware automation: The Configuration Wizard adapts its steps based on the selected scenario (A/B/C). Scenario A customers see a Founding Checklist, Scenario B customers select a parent organization, and Scenario C customers get a Data Import workflow -- all within the same self-service wizard.
  • Franchise-provided founding support: For Scenario A (Founder), the Franchise organization can provide customized founding support packages for their studios/clubs. This may include guidance on Gewerbeanmeldung, recommended banks, insurance partners, and initial equipment suppliers. Alternatively, Membership One offers a standard founding support package for independent founders.
  • Target: Zero-touch provisioning in < 60 seconds. Time to go-live < 7 days for self-service customers across all scenarios.

Provisioning Sequence Diagram

sequenceDiagram participant CRM as CRM Module participant MQ as RabbitMQ participant W as Provisioning Worker participant DB as PostgreSQL participant C360 as My-Factura API participant COMM as Communication Module participant ADMIN as New Admin User rect rgb(240, 248, 255) Note over CRM: Contract signed - trigger provisioning CRM->>MQ: publish provisioning.create<br/>[orgName, adminEmail, tier, industry] MQ->>W: consume provisioning.create end rect rgb(245, 255, 245) Note over W: Step 1-3: Core setup W->>DB: INSERT Organization<br/>[name, slug, tier, settings] DB-->>W: orgId = 1001 W->>DB: INSERT User<br/>[email, role=ORG_ADMIN, status=PENDING] DB-->>W: userId = 5001 W->>DB: INSERT DefaultConfig<br/>[currency, locale, timezone, VAT rates] end rect rgb(255, 245, 238) Note over W: Step 4: My-Factura integration W->>C360: POST /api/public/p2/v1/consumer<br/>[{type: ORGANIZATION, firstName: orgName}] C360-->>W: [{Id: 42}] W->>DB: UPDATE Organization<br/>[externalBillingId = 42] end rect rgb(245, 245, 255) Note over W: Step 5-7: Templates and branding W->>DB: INSERT MembershipTemplates x3<br/>[Basic, Standard, Premium] W->>DB: INSERT BrandingDefaults<br/>[logo, colors, email templates] W->>DB: INSERT SampleData (optional)<br/>[5 members, 2 contracts] end rect rgb(255, 255, 240) Note over W: Step 8: Welcome communication W->>COMM: Send welcome email<br/>[magic link, quick-start PDF] COMM->>ADMIN: Welcome email with magic link W->>CRM: Update lead status to ONBOARDING end

Provisioning Steps (Detail)

Each step is executed sequentially within a single transaction (steps 1-3) or as idempotent operations (steps 4-8) that can be retried independently.

  1. Create Organization - Generate URL-safe slug from organization name (e.g., turn-verein-muenchen-1860 from "Turn-Verein Muenchen 1860") - Set typeCd based on industry template selection (CLUB, STUDIO, FRANCHISE, UMBRELLA, MUNICIPAL) - Set tierCd from contract (STARTER, STANDARD, PROFESSIONAL, ENTERPRISE) - Initialize settings JSONB with tier-specific feature flags - Set statusCd = PROVISIONING (transitions to ACTIVE after wizard completion)

  2. Create Admin User - Create User record with roleCd = ORG_ADMIN, statusCd = PENDING_VERIFICATION - Generate magic link token (UUID v4, 72-hour expiry) - Magic link sets password + verifies email in a single step (no separate verification flow) - Assign all permissions for the ORG_ADMIN role (see Chapter 07)

  3. Default Configuration - Currency: EUR (default, configurable) - Locale: de-DE (default, based on country detection from IP or explicit selection) - Timezone: Europe/Berlin (default, configurable) - VAT rates: 19% standard, 7% reduced (German defaults) - Accounting standard: SKR03 (for DATEV integration) - Password policy: minimum 10 characters, 1 uppercase, 1 number, 1 special character - Session timeout: 30 minutes (configurable per tier) - Billing day: 1st of month (configurable)

  4. My-Factura / CashControl Integration - Create Consumer entity via My-Factura Public P2 API: POST /api/public/p2/v1/consumer - Payload: [{firstName: "<orgName>", type: "ORGANIZATION", IdExternal: "<orgId>"}] - Store returned Id as externalBillingId on the Organization entity - Configure webhook endpoint for payment status callbacks - My-Factura handles invoicing and billing; CashControl (cashcontrol.info) handles SEPA direct debit collection and Inkasso/collections on behalf of My-Factura - Failure handling: if My-Factura is unreachable, mark step as PENDING and retry via scheduled job (every 5 minutes, max 3 days)

  5. Branding Setup - Default logo: Membership platform logo (replaced by customer in wizard) - Default colors: primary #1976D2 (blue), secondary #424242 (dark gray) - Email templates: 6 default templates (welcome, password reset, payment confirmation, payment reminder, contract confirmation, newsletter) - Landing page: default template with organization name and placeholder content

  6. Membership Templates - Create 3 default membership templates based on industry:

    • Basic (e.g., EUR 19.90/month for studios, EUR 5/month for clubs)
    • Standard (e.g., EUR 39.90/month for studios, EUR 10/month for clubs)
    • Premium (e.g., EUR 59.90/month for studios, EUR 20/month for clubs)
    • All templates set to statusCd = DRAFT (published by admin in wizard)
    • Billing interval: MONTHLY (default)
    • Minimum term: 1 month (Basic), 6 months (Standard), 12 months (Premium)
    • Auto-renew: enabled by default
  7. Sample Data (Optional) - 5 fictional members with realistic German names (Max Mustermann, Erika Musterfrau, etc.) - 2 contracts linked to default membership templates - 1 past billing run with sample transactions - Clearly marked as sample data in the UI with a dismissable banner - Auto-deleted after 30 days or when the customer adds their first real member

  8. Welcome Communication - Email to admin with: magic link (set password + activate account), quick-start guide PDF attachment, link to knowledge base - Calendar invite: optional 30-minute onboarding call (for Team+ tiers) - In-app notification: setup wizard prompt on first login - SMS notification: optional, if phone number provided during signup

Status Tracking

Every provisioning run is tracked as a ProvisioningJob entity with per-step status:

Field Type Description
id BIGINT (PK) Primary key
idEntity BIGINT (FK) Organization being provisioned
statusCd VARCHAR(50) PENDING, IN_PROGRESS, COMPLETED, FAILED
stepStatuses JSONB Per-step status map (e.g., {"createOrg": "COMPLETED", "myFactura": "PENDING"})
startedAt TIMESTAMPTZ Job start time
completedAt TIMESTAMPTZ (nullable) Job completion time
errorMessage TEXT (nullable) Error details if FAILED
retryCount INTEGER Number of retry attempts
version INTEGER Optimistic locking
createdAt TIMESTAMPTZ Audit
updatedAt TIMESTAMPTZ Audit

Target: < 60 seconds from message publish to welcome email sent. Each step logs its execution time. Steps 1-3 are expected to complete in < 1 second (database operations). Step 4 (My-Factura API call) is the most variable (typically 2-5 seconds). Steps 5-7 are < 2 seconds. Step 8 (email delivery) depends on the mail provider but should be queued within 1 second.

Error Handling

Error Type Action Retry Strategy Notification
Database connection failure Requeue message to RabbitMQ dead-letter queue 3 retries with exponential backoff (5s, 30s, 180s) Alert ops team after 3rd failure
My-Factura API timeout Mark step as PENDING, continue with other steps Scheduled retry every 5 minutes for up to 3 days Alert ops after 1 hour of failures
My-Factura API 4xx error Log error, mark step FAILED No auto-retry (likely data issue) Alert ops immediately for investigation
Duplicate slug collision Append numeric suffix (e.g., turn-verein-muenchen-2) Automatic, no retry needed None
Email delivery failure Requeue to communication module 3 retries with 60s delay Alert if all retries exhausted
RabbitMQ unavailable Fall back to synchronous provisioning N/A (synchronous fallback) Alert ops immediately
Partial completion Resume from last successful step Automatic on next retry Status visible in admin dashboard

Configuration Wizard

After the admin clicks the magic link and sets their password, they are guided through a scenario-aware configuration wizard. The wizard begins with scenario selection (Step 0) and then presents 5 core steps plus scenario-specific steps. It is designed to be completable in under 15 minutes. Every step can be skipped and revisited later from Settings.

Wizard Flow

Step 0: Scenario Selection

The first screen presents three clear options with icons and descriptions:

Option Label Description Scenario
A "I'm founding a new business" You are starting a new studio, club, or fitness business from scratch. We will guide you through the founding process. Scenario A -- Founder
B "I'm opening an additional location" You already operate one or more locations and want to add a new one to your organization. Scenario B -- Expansion
C "I'm switching from another system" You already have members, contracts, and billing data in another system and want to migrate to Membership. Scenario C -- Migration

The selected scenario is stored on the Organization entity (onboardingScenario field) and determines which additional wizard steps are shown after the core steps.

Step 1: Organization Profile - Organization name (pre-filled from registration) - Legal name (for invoices and contracts) - Address (street, zip, city, country) - Phone and email - Logo upload (drag-and-drop, max 2 MB, PNG/JPG/SVG) - Business type (dropdown: Fitness Studio, Sports Club, Dance School, Martial Arts, Youth Organization, Other) - Website URL

Step 2: Membership Plans - Pre-populated from industry template (3 default plans) - Each plan: name, price, billing interval, minimum term, auto-renew, description - Add/remove plans, reorder via drag-and-drop - Preview landing page for each plan - Publish toggle (draft vs. published)

Step 3: Payment Setup - Bank account: IBAN, BIC (auto-detected from IBAN), account holder name - SEPA Glaeubiger-ID (creditor identifier, required for direct debit) - Billing day of month (1-28, default: 1) - Payment methods to accept: SEPA Direct Debit (default), Bank Transfer, Cash (manual recording) - Automatic SEPA mandate generation: enabled/disabled - Connection test: verify My-Factura API connectivity with a test ping

Step 4: Communication - Sender email address (verified via confirmation email) - Organization display name (for email From field) - Email signature (rich text editor) - Welcome email template (preview and customize) - Reply-to address (if different from sender)

Step 5: Team Invitation - Table with columns: Name, Email, Role (dropdown: Admin, Manager, Trainer, Receptionist) - Bulk invite via CSV upload (name, email, role) - Each invited user receives a magic link email - Minimum: 0 (admin can be the only user) - "Invite later" button to skip

Scenario-Specific Wizard Steps

After the 5 core steps, the wizard presents additional steps based on the scenario selected in Step 0:

Scenario A -- Founding Checklist (shown after Step 5 for Founder scenario)

A guided checklist of business founding prerequisites. Each item has a status (done / not done / not applicable) and links to relevant resources:

  • Business registration (Gewerbeanmeldung) -- Link to local Gewerbeamt finder, document templates
  • Business bank account -- Recommended bank partners, link to online account opening
  • Business insurance -- Recommended insurance types (liability, inventory, business interruption)
  • Tax registration (Finanzamt) -- Steuernummer application, USt-IdNr. if applicable
  • Premises lease or ownership -- Checklist for lease review (utilities, renovation rights, hours of operation)
  • Equipment procurement -- Recommended suppliers for studio/club equipment

The Franchise can customize this checklist for their network (e.g., preferred bank partners, insurance providers, equipment suppliers). For independent founders, Membership One provides a standard checklist.

Scenario B -- Parent Organization Selection (shown after Step 0, before Step 1 for Expansion scenario)

  • Search or browse existing organizations in the customer's account
  • Select the parent organization to link the new location under
  • Inherited settings preview: branding, payment configuration, membership plan templates, staff roles
  • Option to override any inherited setting at the new location level
  • Cross-location reporting is automatically enabled upon linking

Scenario C -- Data Import (shown after Step 5 for Migration scenario)

  • Source system selection: Dropdown with pre-built migration templates (easyVerein, ClubDesk, Magicline, SPORTSCLUB, Generic CSV, Excel)
  • CSV upload: Drag-and-drop file upload area, supports multiple files (members, contracts, billing history)
  • Column mapping: Auto-detected for known source systems, manual drag-and-drop mapping for generic imports
  • Dry-run validation: Execute import in preview mode -- shows success/warning/error counts, sample of first 10 records, duplicate detection results
  • Execute import: Confirm and run the actual import with progress bar and real-time status
  • Post-import summary: Total imported, skipped, errors, with downloadable error report

Industry Templates

Template Business Type Default Plans (Name / Price) Default Resources Typical Features
Fitnessstudio Commercial gym Basic EUR 19.90 / Standard EUR 39.90 / Premium EUR 59.90 Gym Floor, Sauna, Group Fitness Room Check-in, SEPA billing, course schedule
Sportverein Sports club Kind EUR 5 / Jugend EUR 8 / Erwachsen EUR 12 / Familie EUR 25 Sporthalle, Sportplatz, Vereinsheim Family memberships, department structure, volunteer tracking
Tanzschule Dance school Einzelkurs EUR 15 / Flatrate EUR 49 / 10er-Karte EUR 120 Studio 1, Studio 2, Lounge Course booking, drop-in classes, instructor assignment
Kampfsport Martial arts Anfaenger EUR 29 / Fortgeschritten EUR 39 / Wettkampf EUR 59 Dojo, Ring, Kraftraum Belt/rank tracking, competition schedule, trial lessons
Jugendorganisation Youth org Basis EUR 3 / Aktiv EUR 6 / Ehrenamt EUR 0 Gruppenraum, Lager, Kueche Guardian contacts, age-group management, event planning
Reha-Zentrum Rehab center Basis EUR 39 / Intensiv EUR 69 / Praevention EUR 49 Therapieraum, Geraetepark, Pool Medical notes, prescription tracking, insurance billing
Oeffentlich Municipal facility Einzel EUR 5 / Familie EUR 12 / Senioren EUR 3 Schwimmbad, Eishalle, Turnhalle Multi-facility management, reduced rates, public access

Skip and Resume

  • Every wizard step has a "Skip for now" button in the bottom-left corner
  • Progress is saved after each step (even partial input within a step)
  • A persistent banner appears on the admin dashboard: "Setup is X% complete -- Continue setup" with a link to the next incomplete step
  • The wizard can be re-entered at any time from Settings > Setup Wizard
  • Completing the wizard is not required to use the platform, but certain features are gated:
  • No published membership plans = members cannot self-register via landing page
  • No bank account = billing runs cannot generate SEPA files
  • No verified email = automated emails use platform default sender

Automated Data Enrichment

The onboarding wizard and general data entry workflows are enhanced with automated data enrichment features that minimize manual input, validate data in real-time, and ensure data quality from the first interaction. This ensures fully automated lead generation and onboarding at all levels -- from individual member to studio to enterprise group -- via both website and mobile app.

Company Data Auto-Extraction

When onboarding an existing business (Scenario B or C, or any new customer with an existing legal entity), the user only needs to enter the company's homepage domain (e.g., fitnessstudio-power.de). The system then automatically extracts and populates company data:

Step 1 -- Impressum Scraping: 1. Fetch the homepage URL and common Impressum paths (/impressum, /legal, /kontakt, /about) 2. Parse the Impressum (legal notice) page using HTML extraction and NLP 3. Extract structured data: - Company name (Firmenname) - Legal form (Rechtsform: GmbH, e.V., GbR, Einzelunternehmen, etc.) - Managing director / authorized representative (Geschaeftsfuehrer / Vorstand) - Street address (Strasse, PLZ, Ort) - Phone number - Email address - VAT ID (USt-IdNr.) if present - Commercial register entry (Handelsregister: HRB/VR number, Amtsgericht)

Step 2 -- Handelsregister (Commercial Register) Lookup: 1. If a Handelsregister entry is found in the Impressum, query the Handelsregister API (handelsregister.de or offenesdatenportal.de) 2. Extract additional data: - Official company name (as registered) - Registration number (HRB/VR) - Court of registration (Amtsgericht) - Authorized signatories (Vertretungsberechtigte) and their signing authority (Einzelvertretung / Gesamtvertretung) - Share capital (Stammkapital) for GmbH - Date of registration - Business purpose (Unternehmensgegenstand) 3. Identify the persons authorized to sign contracts on behalf of the organization

Step 3 -- User Confirmation: 1. Present extracted data to the user in pre-filled form fields 2. Highlight any fields where extraction confidence is low (yellow indicator) 3. User reviews, corrects if needed, and confirms 4. Confirmed data is stored as the organization profile

Address Autocomplete

As the user types an address in any address field throughout the system (organization setup, member registration, billing address):

  1. Autocomplete suggestions from OpenStreetMap/Nominatim data appear after 3 characters
  2. Automatic validation and formatting: Addresses are normalized to the country-specific format
  3. ZIP code / city cross-validation: If the user enters a ZIP code, the city is auto-filled (and vice versa). Mismatches are flagged with a warning
  4. Country-specific address format enforcement: - Germany: Strasse Hausnummer, PLZ Ort (5-digit PLZ) - Austria: Strasse Hausnummer, PLZ Ort (4-digit PLZ) - Switzerland: Strasse Hausnummer, PLZ Ort (4-digit PLZ) - Other EU countries: respective national format
  5. Geocoding: Validated addresses are geocoded (latitude/longitude) for use in location-based features (nearest facility search, member map)

Phone Number Validation

All phone number fields use Google's libphonenumber library for comprehensive validation:

  1. Format validation and normalization: Input is parsed and validated against country-specific phone number rules
  2. Country code detection: If no country code is provided, the system infers it from the organization's country setting
  3. Mobile vs. landline identification: The system identifies whether the number is mobile or landline, which is relevant for SMS/WhatsApp messaging capabilities
  4. International format standardization (E.164): All phone numbers are stored in E.164 format (e.g., +4915112345678) for consistent handling across the system
  5. Display formatting: Numbers are displayed in the national format for the user's locale (e.g., 0151 1234 5678 for German users)
  6. Duplicate detection: Warns if the same phone number is already associated with another member or organization

Email Verification

Email addresses are validated at multiple levels:

  1. Syntax validation: RFC 5322 compliance check (immediate, client-side)
  2. Domain MX record check: Verify that the email domain has valid MX records (server-side, async)
  3. Disposable email detection: Check against a maintained list of disposable/temporary email providers (e.g., guerrillamail.com, tempmail.com). Disposable emails are blocked for admin accounts and flagged with a warning for member accounts
  4. Typo correction suggestions: Common domain typos are detected and suggestions offered: - @gmial.com -> "Did you mean @gmail.com?" - @gogle.com -> "Did you mean @google.com?" - @outllok.com -> "Did you mean @outlook.com?"
  5. Deliverability check (optional, for critical emails like admin accounts): SMTP handshake verification without sending an email (checks if the mailbox exists)

Integration with Onboarding

These enrichment features integrate seamlessly into the onboarding wizard:

  • Step 1 (Organization Profile): Company data auto-extraction is triggered when the user enters a website URL. Address autocomplete is active on all address fields. Phone and email validation run in real-time.
  • Step 5 (Team Invitation): Email verification runs on all invited team member emails.
  • Scenario C (Data Import): Imported member data is validated through phone and email verification. Invalid entries are flagged in the dry-run report.
  • Member self-registration: When members register via the landing page or mobile app, address autocomplete, phone validation, and email verification ensure data quality from the start.

Data Migration Playbook

Note: Data migration applies primarily to Scenario C (Migration) customers -- existing businesses switching from another system. Scenario A (Founder) and Scenario B (Expansion) customers typically start with zero members and do not require migration. However, any customer can use the CSV import functionality at any time to bulk-import member data.

Assisted migration as a service: The Franchise can offer assisted migration to its studios/clubs as part of their onboarding support package. Alternatively, Membership One provides assisted migration as a paid service (included in Professional tier 1x, available as add-on for other tiers). This allows non-technical customers to hand off the migration entirely while still using the self-onboarding wizard for all other setup steps.

Migration Paths

flowchart LR subgraph Sources[Source Systems] EV[easyVerein] CD[ClubDesk] MG[Magicline] SC[SPORTSCLUB] C360[Cash360 / CashControl] GEN[Generic CSV] end subgraph Pipeline[Migration Pipeline] EXP[Export from Source<br/>CSV / API / Database] MAP[Column Mapping<br/>via Template or UI] VAL[Validation<br/>Format + Business Rules] DRY[Dry Run<br/>Preview + Error Report] IMP[Import Execution<br/>Batch Insert] POST[Post-Migration Check<br/>Count + Integrity] end EV --> EXP CD --> EXP MG --> EXP SC --> EXP C360 --> EXP GEN --> EXP EXP --> MAP MAP --> VAL VAL --> DRY DRY -->|Errors Found| MAP DRY -->|Clean| IMP IMP --> POST POST -->|Issues| IMP POST -->|Success| DONE[Migration Complete] style Sources fill:#e3f2fd style Pipeline fill:#f5f5f5 style DONE fill:#e8f5e9

Competitor Migration Templates

Pre-built mapping templates for the most common competitor systems reduce migration effort from hours to minutes.

Source System Export Format Fields Mapped Estimated Time Notes
easyVerein CSV (UTF-8) 15 fields (name, email, address, IBAN, contract type, start date, status, phone, birthday, gender, department, notes, custom1-3) 30 min (self-service) Most common competitor in Vereinswesen
ClubDesk CSV (ISO-8859-1) 12 fields (name, email, address, phone, birthday, entry date, exit date, department, fee, status, notes, member number) 30 min (self-service) Encoding conversion handled automatically
Magicline API export or CSV 20 fields (full member profile, contracts, SEPA mandates, check-in history, tags, fitness data) 1-2 hours (assisted) API integration available for live migration
SPORTSCLUB CSV (UTF-8) 14 fields (name, email, address, birthday, gender, entry date, department, fee category, IBAN, mandate date, status, guardian, phone, emergency contact) 30 min (self-service) Common in large multi-sport clubs
Cash360 / CashControl Automated tool Full entity mapping (see Chapter 15: Migration Strategy) 15 min (automated) Direct database migration with referential integrity (for customers migrating from CashControl)
Generic CSV (any encoding) Manual column mapping via drag-and-drop UI 1-2 hours Customer maps their columns to Membership fields
Excel XLSX (via OpenPyXL) Manual column mapping 1-2 hours Auto-detect header row, support multiple sheets

Validation Rules

All imported records pass through validation before insertion. Errors block the record; warnings allow import but flag for review; info messages are logged for reference.

Field Validation Rule Error Level Message
email RFC 5322 format, unique within entity Error "Invalid email format" / "Duplicate email: already exists"
iban MOD-97 checksum (ISO 13616), country-specific length Error "Invalid IBAN checksum"
dateOfBirth Valid date, not in future, age 0-120 Error "Invalid date of birth"
firstName, lastName Not blank, max 100 characters Error "Name is required"
phone E.164 format (relaxed: digits, +, spaces, dashes) Warning "Phone number may be invalid"
zip Country-specific format (DE: 5 digits, AT: 4 digits) Warning "Postal code format unexpected for country"
gender One of: MALE, FEMALE, DIVERSE, UNKNOWN Warning "Unknown gender value, defaulting to UNKNOWN"
memberNumber Unique within entity Error "Duplicate member number"
contractStartDate Valid date Warning "Missing start date, using import date"
street Max 500 characters Info "Street address truncated"
duplicateDetection Fuzzy match on firstName + lastName + dateOfBirth Warning "Potential duplicate of existing member #1234"
encoding Auto-detect (UTF-8, ISO-8859-1, Windows-1252) Info "Encoding detected as ISO-8859-1, converting to UTF-8"

Migration Service Tiers

Service Level Description Included In Additional Cost
Self-Service CSV Import Upload CSV, map columns via UI, validate, import All tiers (Starter, Team, Professional, Enterprise) Free
Assisted Migration Membership One team or Franchise maps and imports data, resolves issues (primarily for Scenario C customers) Professional (1x included), Enterprise (unlimited) EUR 299 per additional migration (Team)
Cash360 / CashControl Automated Migration Automated tool reads CashControl DB, maps entities, imports with full referential integrity (for Scenario C customers migrating from CashControl) Professional, Enterprise Free (internal tool)
Custom API Migration Live migration via competitor API (Magicline, etc.) Enterprise only Scoped per project
Legacy Database Migration Direct SQL extraction from legacy system Enterprise only Scoped per project (min EUR 999)

Training Strategy

Self-Service Resources

All tiers have access to self-service training materials, maintained as part of the product documentation lifecycle:

Resource Format Content Availability
Knowledge Base Web (in-app + public) 10+ categorized articles: Getting Started, Member Management, Billing, Contracts, Check-In, Settings, Troubleshooting All tiers, always available
Video Tutorials MP4 / YouTube (embedded) 5 core workflow videos (3-5 min each): First Login, Add Members, Create Plan, Run Billing, Set Up Check-In All tiers, always available
Quick-Start Guide PDF (attached to welcome email) 4-page guide: Login, Dashboard overview, Add first member, Create first plan All tiers, attached to welcome email
In-App Tooltips Contextual overlays Feature hints on first visit to each screen, dismissable, re-activatable from Help menu All tiers, in-app
Release Notes Web (in-app changelog) Per-release notes with screenshots, new features highlighted with "New" badges All tiers, in-app
API Documentation Swagger UI + Markdown Full REST API reference with examples, authentication guide, webhook setup Professional, Enterprise
Community Forum Web (Discourse or similar) Peer support, feature requests, best practices, Membership One team participates All tiers (planned v2.0)

Live Training Matrix

Tier Training Format Duration Scheduling Content Focus
Starter Self-service only N/A N/A Knowledge base + videos
Team 1x onboarding video call 30 min Within 7 days of signup Dashboard tour, first member, first plan, billing basics
Professional 1x training video call 60 min Within 14 days of signup Full admin training: plans, billing, SEPA, check-in, reporting, team roles
Enterprise 3x training video calls 3x 60 min Scheduled with CSM Session 1: Admin training (settings, plans, billing). Session 2: Staff training (member mgmt, check-in, daily ops). Session 3: Reporting and advanced features (analytics, DATEV, API)
Enterprise (add-on) On-site training Half day By arrangement Hands-on training at customer location with real data, EUR 999/day

Go-Live Checklist

Checklist Items

The go-live checklist is displayed as a progress tracker on the admin dashboard. Each item shows a green checkmark when completed, a yellow circle when in progress, and a gray circle when not started.

# Item Validation Criteria Required Typical Time
1 Organization profile completed Name, address, email, phone, logo uploaded Yes 5 min
2 At least one membership plan published Plan with name, price, billing interval, status = PUBLISHED Yes 10 min
3 Bank account configured (SEPA) IBAN valid, BIC populated, Glaeubiger-ID entered, My-Factura entity linked Yes (if billing) 5 min
4 At least one team member invited User with role != MEMBER exists besides the admin No 5 min
5 5+ members added or imported Member count >= 5 (excludes sample data) No 15 min
6 Welcome email template customized Template modified from default (any edit counts) No 10 min
7 Test transaction completed At least one billing run executed (even with 1 member) No 5 min
8 Branding configured Logo uploaded AND primary color changed from default No 5 min

Dashboard progress indicator: "Your setup is 5/8 complete (63%)" with a progress bar and "Continue setup" link.

Pass/Fail Criteria

Level Criteria Implication
Minimum viable Items 1 + 2 complete Organization can accept member registrations via landing page, but no automated billing
Billing ready Items 1 + 2 + 3 complete Organization can run billing and generate SEPA files
Fully operational All 8 items complete Organization is fully configured and has verified the complete workflow
Blocked: no plan Item 2 incomplete Landing page shows "No plans available" -- members cannot self-register
Blocked: no bank Item 3 incomplete Billing run will execute but SEPA export will fail -- manual payment collection only

Customer Health Model

Health Score Algorithm

The Customer Health Score (CHS) is a composite metric calculated weekly (every Monday at 02:00 UTC) for every active organization. The score ranges from 0 to 100 and drives automated interventions.

Dimension Weight Green (score 70-100) Yellow (score 40-69) Red (score 0-39)
Login Frequency 25% Admin or staff login >= 3x per week Login 1-2x per week Login < 1x per week (or no login in 14+ days)
Feature Adoption 25% >= 5 distinct features used in past 30 days 3-4 features used <= 2 features used
Member Activity 20% Member count growing or stable (>= 0% change) Member count flat (0% change for 60+ days) Member count declining (negative change over 60 days)
Payment Health 20% < 5% failed transactions in past 30 days 5-15% failed transactions > 15% failed transactions
Support Sentiment 10% No open P1/P2 tickets, CSAT >= 4.0 Open P2 tickets or CSAT 3.0-3.9 Open P1 ticket or CSAT < 3.0

Calculation:

healthScore = (loginScore * 0.25)
            + (featureScore * 0.25)
            + (memberScore * 0.20)
            + (paymentScore * 0.20)
            + (supportScore * 0.10)

Each dimension score is calculated on a 0-100 scale: - Green zone: 70-100 (linear interpolation within zone) - Yellow zone: 40-69 (linear interpolation within zone) - Red zone: 0-39 (linear interpolation within zone)

Feature adoption tracking counts distinct feature areas used in the past 30 days:

Feature Area Tracked Action
Member Management View/edit/create member
Billing Run billing or view billing statements
Contracts Create or modify contract
Check-In Any check-in event recorded
Communication Send email or notification
Reporting View any report or dashboard
Resource Management Create/edit resource or booking
Events/Courses Create/edit event or course
Import Run any data import
Settings Modify any organization setting

Score Visualization

The health score is displayed in two locations:

  1. Internal admin dashboard (Membership One team only): Table of all organizations sorted by health score, with traffic light indicators (green/yellow/red dot), trend arrow (up/down/stable compared to last week), and sparkline showing the past 12 weeks.

  2. Customer admin dashboard (organization admin): Simplified "Account Health" widget showing the overall score as a circular gauge, with actionable tips for improvement (e.g., "You have not used billing in 30 days -- run your first billing to improve your account health").


Lifecycle Automation

Email Sequences

Automated email sequences are triggered by lifecycle events. Each email is sent from the organization's verified sender address (or the platform default if not configured).

Timing Trigger Email Template Goal Audience
Day 0 Provisioning complete welcome-magic-link Activate account, set password Admin
Day 1 First login completed getting-started-tips Guide to setup wizard Admin
Day 3 Wizard not completed setup-reminder Nudge to complete configuration Admin
Day 7 Wizard completed OR day 7 feature-spotlight-billing Highlight billing automation Admin
Day 10 No members added add-first-member Prompt to add members or import data Admin
Day 14 (trial) Trial expiry approaching trial-expiry-warning Convert to paid or extend Admin
Day 14 (trial) Trial expired, not converted trial-expired-offer Last chance: 7-day extension or 20% discount Admin
Day 30 30 days active first-month-checkin NPS survey, satisfaction check Admin
Day 60 60 days active feature-spotlight-advanced Highlight advanced features (reports, API, check-in) Admin
Day 90 90 days active quarterly-review Usage summary, ROI calculation, upgrade suggestion Admin
Monthly 1st of each month monthly-usage-summary Member count, revenue, key metrics Admin
Annually Contract anniversary anniversary-thankyou Thank you, renewal confirmation, year-in-review stats Admin
On event Health score drops to Yellow health-yellow-tips Actionable improvement suggestions Admin
On event Health score drops to Red health-red-outreach Personal outreach offer, link to schedule call Admin
On event New feature released release-announcement New feature highlight with link to docs All users

Trigger Rules

Event Condition Action Channel
Trial signup New organization with tier = FREE_TRIAL Start onboarding email sequence Email
Wizard step completed Any wizard step marked as done Update progress, check if sequence email should be suppressed In-app
No login for 7 days Last admin login > 7 days ago Send re-engagement email Email
No login for 14 days Last admin login > 14 days ago Escalate to Yellow health alert Email + internal alert
First billing run Organization runs first billing Send congratulations email, suppress billing-related nurture emails Email
Member milestone Member count crosses 10, 50, 100, 250, 500, 1000 Send milestone celebration email Email
Payment failure rate > 10% Calculated during weekly health check Send payment troubleshooting guide Email
Tier limit approaching Member count > 80% of tier limit Send upgrade suggestion email Email + in-app banner
Contract renewal 30 days out Annual contract renewal date - 30 days Send renewal reminder with usage summary Email

Churn Prevention

Early Warning Signals

Signal Threshold Detection Method Priority Response Time
Health score critical Score < 40 (Red zone) Weekly health calculation P1 48 hours
No admin login 14+ consecutive days without login Daily login check job P1 48 hours
Member count declining Net negative member change for 2+ consecutive months Monthly member delta calculation P2 1 week
Multiple failed payments > 15% transaction failure rate for 2+ billing cycles Post-billing-run analysis P2 1 week
Unresolved critical ticket P1 or P2 support ticket open > 7 days Daily ticket age check P1 24 hours
Feature regression Previously used features no longer used for 30+ days Monthly feature usage comparison P3 2 weeks
Billing downgrade Customer downgrades tier Immediate event trigger P2 48 hours
Export activity Customer exports all member data Immediate event trigger P1 24 hours
Cancellation page visit Customer visits Settings > Cancel Subscription Immediate event trigger P1 24 hours (automated intercept)

Intervention Playbook

Severity Trigger Action Owner SLA
Green (proactive) Health 70-100, feature not adopted Feature spotlight email, in-app tooltip Automated Within 7 days
Yellow (at risk) Health 40-69 for 2+ weeks Automated help email with specific suggestions, offer free training call Automated + CSM review Within 48 hours
Red (critical) Health < 40 for 1+ week Personal outreach: phone call or video meeting from CSM CSM or Founder Within 48 hours
Cancellation request Customer clicks "Cancel Subscription" Show exit survey modal, display save offer (see below), route to retention flow Automated + CSM Immediate (automated) + 24h (CSM)
Post-cancellation Customer confirms cancellation Exit survey, schedule win-back email sequence Automated Immediate

Save offers (presented on cancellation page, one per customer, non-stackable):

Offer Description Eligibility Approval
Pause Freeze account for 1-3 months, no charge, data preserved All tiers, max 1x per year Automatic
Downgrade Move to lower tier with reduced features Team+ tiers Automatic
Extended trial 30-day free extension of current tier First 90 days only Automatic
Discount 20% off for 3 months Professional+, > 6 months active CSM approval
Personal support Free 1-on-1 consultation to resolve issues All tiers, if health < 40 Automatic

Win-back email sequence (after confirmed cancellation):

Timing Email Content
Day 7 winback-1-miss-you "We miss you" + link to reactivate (data preserved for 90 days)
Day 30 winback-2-whats-new New features released since cancellation
Day 60 winback-3-special-offer 30% discount for 6 months if reactivated
Day 90 winback-4-final-notice "Your data will be deleted in 30 days" (GDPR retention)
Day 120 Data deletion All organization data permanently deleted per GDPR

Expansion and Upsell

Usage-Based Triggers

Trigger Condition Action Target Tier
Member limit approaching Starter tier: > 16 members (80% of 20 limit) In-app banner: "You are using 16 of 20 members. Upgrade to Team for 200 members." Team
Member limit approaching Team tier: > 160 members (80% of 200 limit) In-app banner + email: "Upgrade to Professional for 2,000 members." Professional
Member limit reached Any tier: member count = tier limit Block new member creation, show upgrade modal Next tier
Feature gate click User clicks a locked feature Show upgrade modal explaining the feature and which tier unlocks it Tier that includes the feature
Multi-location interest Admin creates a second "location" entity (or asks in support) Email: Professional/Enterprise multi-location overview Professional / Enterprise
API access request Admin visits API documentation or Settings > API Keys Email: API access overview (Professional+ feature) Professional
High usage volume > 1,600 members on Professional (80% of 2,000 limit) Email: Enterprise benefits (dedicated CSM, custom SLA, SLO guarantees) Enterprise

Feature Gate Definitions

Feature Starter Team Professional Enterprise
Member management 20 members 250 members Unlimited Unlimited
Membership plans 3 plans max 10 plans max Unlimited Unlimited
Billing automation (SEPA) Manual only Monthly billing Full automation Full automation
Check-in (QR/NFC) QR only QR + NFC QR + NFC + terminal QR + NFC + terminal + biometric
Resource booking Not available 5 resources Unlimited Unlimited
Events and courses 3 active events 20 active events Unlimited Unlimited
Team members (staff) 1 (admin only) 5 users 25 users Unlimited
Email templates 3 default 10 custom Unlimited Unlimited + custom domain
Reporting Basic dashboard Standard reports Advanced analytics + export Custom dashboards + BI connector
API access Not available Not available REST API (rate limited) REST API (unlimited) + webhooks
DATEV integration Not available Not available Standard export Full automation
White-label branding Platform badge Platform badge Custom logo + colors Full white-label (no platform branding)
Support Knowledge Base Email (48h) Priority email (24h) + phone Dedicated CSM + phone + SLA
Data retention 1 year 3 years 7 years Custom (up to 10 years)
Multi-location Not available Not available 3 locations Unlimited locations
Custom domain Not available Not available Available (add-on EUR 9/month) Included
SSO (SAML/OIDC) Not available Not available Not available Available
SLA guarantee None 99.5% uptime 99.9% uptime 99.95% uptime + SLO

Cross-Sell Opportunities

Features that are available in the customer's tier but not yet adopted represent cross-sell opportunities. Detection and outreach are automated.

Feature Not Used Detection Criteria Email Template Conversion Target
Course management No events created after 30 days active crosssell-courses Increase feature adoption score
SEPA direct debit Bank account configured but no billing run crosssell-sepa First automated billing
Check-in No check-in events after 30 days, tier supports it crosssell-checkin First check-in event
Resource booking No resources created after 30 days, tier supports it crosssell-resources First booking
Mobile app No mobile app logins from organization's members crosssell-mobile-app 10+ member app logins
Email communication No bulk emails sent after 30 days crosssell-communication First campaign sent
Reporting No report views after 30 days crosssell-reporting First report exported
Data import < 10 members added manually, no import performed crosssell-import First CSV import

Customer Journey Map

End-to-End Journey

stateDiagram-v2 [*] --> Discovery Discovery --> Evaluation Evaluation --> Trial Evaluation --> Lost : Not interested Trial --> Purchase : Converts Trial --> Lost : Trial expires Purchase --> Onboarding Onboarding --> Setup Setup --> GoLive GoLive --> Adoption Adoption --> Mature Mature --> Renewal : Contract renewal Mature --> Expansion : Upgrade tier Mature --> AtRisk : Health declining Renewal --> Mature : Renewed Expansion --> Mature : Upgraded AtRisk --> Intervention Intervention --> Mature : Recovered Intervention --> Churned : Cancelled Churned --> WinBack WinBack --> Evaluation : Reactivated WinBack --> [*] : Data deleted (120 days) Lost --> WinBack : Re-engage campaign

Journey Touchpoints

Phase Customer Experience Channels Key Emotion Success Metric
Discovery Finds Membership via search, ad, referral, or trade show. Visits website, reads features, views pricing. Website, Google, social media, trade show booth Curiosity, skepticism Website visit, pricing page view
Evaluation Attends 30-min demo, asks questions, compares with current solution. Reviews competitor comparison page. Video call, email, website docs Interest, comparison anxiety Demo completed, trial started
Trial Signs up for 14-day trial, explores dashboard, adds sample members, tests billing. Receives nurture emails. Product (web app), email, knowledge base Excitement, occasional confusion Features explored (>= 5), members added
Purchase Selects tier, accepts terms, enters payment. Receives contract confirmation. Product, email, payment page Commitment, anticipation Conversion within 14 days
Onboarding Receives magic link, sets password, enters setup wizard. Organization provisioned automatically. Email, product Empowerment, slight overwhelm Wizard completed in < 24h
Setup Configures plans, imports members, sets up SEPA, invites team. Attends training call (Team+). Product, video call, knowledge base Productivity, occasional frustration Go-live checklist >= 5/8
Go-Live First real members register, first billing run executed, first check-ins recorded. Product, email notifications Relief, satisfaction First billing run successful
Adoption Daily use: managing members, running billing, handling check-ins. Discovers advanced features. Product (web + mobile), email Confidence, efficiency Health score > 70
Mature Established routine, stable member base, regular billing. Becomes a reference customer. Product, email, quarterly review Trust, loyalty Health score > 80, NPS > 8
Renewal Receives renewal reminder, reviews usage summary, confirms continuation. Email, product Validation, ROI assessment Renewal rate > 90%
Expansion Hits tier limit or discovers locked feature, evaluates upgrade. Multi-location expansion. Product (upgrade modal), email, sales call Growth ambition Tier upgrade within 30 days
At Risk Usage declining, missed logins, failed payments. Receives automated and personal outreach. Email, phone, product Frustration, disengagement Health score recovers to > 60
Churned Cancels subscription, completes exit survey, enters win-back sequence. Data preserved 120 days. Email, exit survey Disappointment, relief Win-back within 90 days (target 10%)

Metrics Dashboard

The customer lifecycle dashboard (internal, Membership One team only) tracks the following KPIs:

KPI Definition Target Frequency
Lead-to-Trial Conversion Trials started / Leads created > 30% Weekly
Trial-to-Paid Conversion Paid subscriptions / Trials started > 25% Weekly
Time to First Value Days from provisioning to first real member added < 3 days Per customer
Time to Go-Live Days from provisioning to go-live checklist passed < 7 days (self-service), < 30 days (assisted) Per customer
Onboarding Completion Rate Customers completing all 8 checklist items / Total customers > 60% Monthly
30-Day Retention Customers active at day 30 / Customers activated > 95% Monthly
90-Day Retention Customers active at day 90 / Customers activated > 90% Monthly
Annual Retention Customers renewing / Customers up for renewal > 90% Quarterly
Health Score Distribution % of customers in Green / Yellow / Red > 70% Green Weekly
NPS Net Promoter Score from quarterly surveys > 50 Quarterly
Monthly Recurring Revenue (MRR) Sum of all active subscription fees Growth target: +10% MoM Monthly
Average Revenue Per Account (ARPA) MRR / Active customers > EUR 60 Monthly
Customer Lifetime Value (CLV) ARPA x Average customer lifespan in months > EUR 2,000 Quarterly
Customer Acquisition Cost (CAC) Total sales + marketing cost / New customers acquired < EUR 500 Quarterly
CLV:CAC Ratio CLV / CAC > 4:1 Quarterly

Implementation Notes

Database Entities

The customer lifecycle introduces or extends the following entities (see Chapter 11 for full schema):

Entity Module Purpose
Lead membership-crm Sales pipeline tracking (existing, see Ch. 11)
Deal membership-crm Opportunity management (existing, see Ch. 11)
Activity membership-crm Interaction logging (existing, see Ch. 11)
ProvisioningJob membership-entity Tenant provisioning tracking (new)
OnboardingChecklist membership-entity Go-live checklist progress (new)
HealthScore membership-entity Weekly health score snapshots (new)
LifecycleEvent membership-communication Lifecycle email trigger log (new)
MigrationJob membership-import Data migration tracking (existing, extended)

API Endpoints

Method Path Description Auth
POST /api/v1/provisioning/create Trigger tenant provisioning System (internal)
GET /api/v1/provisioning/{id}/status Check provisioning status System / Admin
POST /api/v1/onboarding/wizard/step/{step} Save wizard step data Admin
GET /api/v1/onboarding/wizard/progress Get wizard completion status Admin
GET /api/v1/onboarding/checklist Get go-live checklist status Admin
POST /api/v1/migration/upload Upload CSV for migration Admin
POST /api/v1/migration/validate Validate uploaded data Admin
POST /api/v1/migration/dry-run Execute dry run (no insert) Admin
POST /api/v1/migration/execute Execute migration (insert) Admin
GET /api/v1/health-score/{entityId} Get current health score System / Admin
GET /api/v1/health-score/{entityId}/history Get health score history System / Admin
POST /api/v1/lifecycle/trigger Manually trigger lifecycle event System

RabbitMQ Events

Exchange Routing Key Payload Producer Consumer
lifecycle provisioning.create {orgName, adminEmail, tier, industry, leadId} CRM module Provisioning worker
lifecycle provisioning.completed {entityId, adminUserId, provisioningJobId} Provisioning worker Communication module
lifecycle provisioning.failed {entityId, errorMessage, failedStep} Provisioning worker Alerting
lifecycle health.score.calculated {entityId, score, previousScore, dimensions} Health score job Lifecycle engine
lifecycle health.alert.yellow {entityId, score, triggerDimensions} Lifecycle engine Communication module
lifecycle health.alert.red {entityId, score, triggerDimensions} Lifecycle engine Communication + CRM
lifecycle churn.cancellation.requested {entityId, reason, saveOfferPresented} Subscription module CRM + Communication
lifecycle expansion.upgrade.triggered {entityId, fromTier, toTier, trigger} Billing module CRM + Communication

Scheduled Jobs

Job Schedule Description
HealthScoreCalculationJob Weekly, Monday 02:00 UTC Calculate health scores for all active organizations
TrialExpiryJob Daily, 06:00 UTC Check for expiring trials, send warning or expiry emails
ProvisioningRetryJob Every 5 minutes Retry failed provisioning steps
ChurnDetectionJob Daily, 03:00 UTC Check early warning signals, trigger interventions
WinBackSequenceJob Daily, 08:00 UTC Send scheduled win-back emails for churned customers
UsageSummaryJob Monthly, 1st at 04:00 UTC Generate and send monthly usage summaries
SampleDataCleanupJob Daily, 01:00 UTC Delete expired sample data (> 30 days old)