CRM
Customer, segment, store and receipt management: the customer database and everything that reads or writes it.
24 features · 72 use cases · 36 happy paths · 101 failure paths · 9 open findings
mindmap root((CRM)) Customer list and filtering Customer create and edit Customer deletion with unsubscribe notice Customer CSV export with column picker Customer CSV import Children CSV import AI natural-language customer filter Save current filters as a segment Segment list, refresh and export Segment builder with automatic tag actions Segment categories User tags user types Customer receipts tab and ticket/stamp gene… Customer loyalty — raffle tickets Customer loyalty — cards and stamps Customer loyalty — rewards Customer loyalty — coupon exchanges Customer children dependants Receipt verification queue Store list, filters and exports Store create and edit Store CSV import Store labels store types Customer action log dormant
Features
| Feature | Modules | Use | ✅ | ⛔ | Risk |
|---|---|---|---|---|---|
| Customer list & filtering Paginated, sortable, filterable list of the centre’s registered customers showing code, name, surname, email, VAT number and phone, with row… | crm | 4 | 2 | 4 | — |
| Customer create & edit Tabbed customer record: general data (identity, contact, address, consents, tags, manual campaigns) plus receipts and loyalty tabs once the … | crm | 5 | 3 | 9 | — |
| Customer deletion with unsubscribe notice Deletes a customer record and, unless the operator opts out, posts to users_unsubscribe_send so the person receives an unsubscribe/erasure… | crm | 2 | 1 | 3 | 🔴 High |
| Customer CSV export with column picker Exports the currently filtered customer set as CSV, letting the operator choose from ~30 columns. The file is produced server-side and deliv… | crm | 3 | 1 | 3 | 🟠 Medium |
| Customer CSV import Bulk customer create/update from a CSV: the operator uploads the file, maps each CSV column to one of ~40 user attributes, picks the match k… | crm | 3 | 1 | 7 | — |
| Children CSV import Bulk import of customers’ children (dependants) keyed on the parent’s id or email, carrying name, surname, birth date, gender, relationship … | crm, playcenter | 2 | 1 | 3 | — |
| AI natural-language customer filter A prompt box that turns a plain-language audience description into structured customer filters, which are then prepended to whatever filters… | ai | 2 | 1 | 5 | 🟠 Medium |
| Save current filters as a segment Turns the ad-hoc filter set from the customer list into a reusable, named segment by handing the serialised filters to the segment builder. | crm | 2 | 1 | 2 | — |
| Segment list, refresh & export Lists segments with their category, account types, consent flags, automatic tags and member count, and offers per-row recalculation and CSV … | crm | 3 | 2 | 4 | 🔵 Low |
| Segment builder with automatic tag actions Two-tab editor for a segment: general data (name, category, account types) plus a live filter builder that previews the matching customers, … | ai, crm, employees_segments | 3 | 1 | 6 | 🔵 Low |
| Segment categories Simple CRUD for the taxonomy used to group segments, so long segment lists stay navigable. | crm | 2 | 1 | 2 | — |
| User tags (user types) Manages the labels that can be attached to customers, with flags controlling whether a tag is an interest, whether it is visible in the back… | crm | 3 | 1 | 3 | — |
| Customer receipts tab & ticket-stamp generation Inside an existing customer record: register purchase receipts (date, code, amount, store, campaign) and generate the raffle tickets or loya… | loyalty-cards, tickets | 3 | 1 | 4 | — |
| Customer loyalty — raffle tickets Read-oriented view of a customer’s raffle entries per campaign: ticket code, originating receipt, store, rule, creation date, plus a per-rul… | tickets | 2 | 1 | 2 | — |
| Customer loyalty — cards & stamps Shows the customer’s loyalty cards per campaign with their stamp counts, and lets staff manually add stamps or exchange a completed card. | loyalty-cards | 3 | 2 | 3 | — |
| Customer loyalty — rewards Issue a reward to a customer against a campaign and then redeem, un-redeem or resend it, with code, validity window and exchange date on sho… | rewards | 4 | 2 | 5 | — |
| Customer loyalty — coupon exchanges Lists the proposal coupons a customer has taken and lets staff redeem one by recording the store and the exchange date. | cms, crm | 2 | 1 | 4 | — |
| Customer children (dependants) Per-customer list of registered children with name, birth date and relationship, plus play-centre check-in and check-out directly from the r… | playcenter | 3 | 2 | 5 | — |
| Receipt verification queue Moderation workspace for customer-uploaded purchase receipts: review the image and OCR’d data, validate (which also redeems the entitlement)… | tickets | 5 | 4 | 7 | 🟠 Medium |
| Store list, filters & exports The centre’s store directory with module-aware filters, a CSV export of the full store dataset, and a bulk QR export for store-level loyalty… | crm | 4 | 2 | 3 | — |
| Store create & edit Multi-step store editor covering general data, physical-store attributes, the store QR code and centre-defined extra attributes, including s… | crm, fideliza, intranet-sovos, intranet-yardi | 4 | 2 | 8 | 🔵 Low |
| Store CSV import Bulk store create/update from CSV with ~30 mappable attributes including address, categories, social handles, IBAN, fiscal name, tenant code… | crm | 3 | 1 | 3 | — |
| Store labels (store types) CRUD for the code+name labels used to group stores, which campaigns and proposals can then target as a set instead of listing individual sto… | crm | 2 | 1 | 3 | 🟠 Medium |
| Customer action log (dormant) A per-customer log of interactions — calls, visits, emails, forms (manual) and automatic entries such as marketing info sent, reservations a… | crm | 3 | 1 | 3 | 🟠 Medium |
Findings in this area
- 🔴 High R01 · Unsubscribe notice is fire-and-forget on customer deletion
- 🟠 Medium R04 · Export spinner never clears on failure
- 🟠 Medium R05 · AI filter prompt is not URL-encoded
- 🟠 Medium R06 · AI filter sends prompt text to Sentry
- 🟠 Medium R09 · Unknown receipt reject reason breaks the moderation panel
- 🟠 Medium R15 · 19 translation keys used by the code do not exist
- 🔵 Low R16 · Segment refresh and save hide failures
- 🔵 Low R21 · Required-extra errors are untranslated
- ⚪ Info R30 · Dormant and dead surface