Customers
Part of the IP4CMS portal. β All module guides
What it's for β Customers is where you keep the record of the external parties your tenant sells products and services to β both individual people (B2C) and organisations (B2B). Each customer carries contact and billing details, a linked financial account that tracks their balance and transactions, the products or subscriptions they hold, and optional portal logins so the customer can sign in to their own self-service portal. Customers are distinct from members: members belong to your organisation's internal/community membership programme, whereas customers are the people and companies you bill for products and services.
Where to find it β Left-hand navigation under Sales β Customers β All Customers, or go directly to /app/customers. Opening a single customer takes you to /app/customers/<id>.
Before you start
- The Sales licence module must be enabled for your tenant β the Customers item lives inside the Sales navigation group and is hidden when Sales is not licensed.
- You need the
customers:read:allpermission to see the list and open customer records. To add, change, or remove customers you also needcustomers:create:all,customers:update:all, andcustomers:delete:allrespectively. - To filter the list by tag or to assign tags on a customer, you need
tags:read(andtags:manageto edit tag assignments). - A financial account is created automatically for each customer, so no manual account setup is required first. Currency options come from your tenant's currency settings.
Key tasks
Create a customer
- Go to Customers (
/app/customers). - Click Add Customer. (You'll only see this if you have
customers:create:all.) - Choose the Customer Type:
- Individual β First name and Last name become required.
- Organization β Organization name becomes required.
- Fill in the remaining fields (all optional unless noted):
- Email β validated as a proper email address if entered.
- Phone
- Address line 1 / line 2, City, State, Postal code, Country (defaults to
USA). - Tax ID
- Currency β required on create. Defaults to your tenant's default transaction currency. This sets the currency of the financial account that gets created for the customer.
- Notes β free text.
- Click Save. The customer is created with status Active, and a financial account in the chosen currency is created and linked automatically.
The list also offers a dedicated New Customer page at /app/customers/new (reached from some flows) with the same fields plus a Status selector. Either route creates the same record.
Edit a customer
- Open the customer's row actions on the list and choose Edit, or open the customer and edit from there. (Requires
customers:update:all.) - Change any field. You can switch the customer type; the matching name fields stay required (name fields for Individual, organization name for Organization).
- The Status can be set to Active, Inactive, or Suspended when editing.
- Click Save.
What editing does behind the scenes:
- If the customer's name changes, the linked financial account's name is kept in sync automatically.
- If a customer somehow has no account yet, saving an edit creates and links one.
View a customer's details, products and subscriptions
Open a customer to reach the detail page. The left card shows Customer Information (status badge, name, type, account balance, contact details, address, tags, created/updated dates). The right side has four tabs:
- Overview β financial-account summary (account ID, status, balance, currency) and any notes. If no account exists yet, you'll see a notice that one will be created on the next update.
- Transactions β the customer's account transactions. With the right permissions you can create transactions here. (Hidden behind a notice if the customer has no account.)
- Products β the products and subscriptions held against the customer's account. Each row shows the Product, a Usage snapshot and its as-of date, Type (Recurring or Once-off), Quantity, Unit Price, Discount, Total, Next Billing date, and Status (Active, Suspended, Cancelled, Expired). This is the same "Customer Products" data also reachable under Sales β Customer Products, here filtered to this one customer's account.
- Documents β placeholder; documents are not yet surfaced here.
Manage a customer's billing / account
A customer's billing flows through the linked financial account:
- The account balance is shown on the detail card and Overview tab. A positive balance is shown in red (the customer owes money / amount outstanding) and a negative balance in green (credit). The balance is stored in minor units (cents) and formatted to the account currency.
- Use the Transactions tab to review and (with permission) create account transactions.
- Recurring products on the Products tab carry a Next Billing date that drives the customer's billing cycle.
You do not create the account yourself β it is provisioned automatically when the customer is created (or on first update if missing).
Give a customer portal access (manage portal users)
A customer can have one or more portal users β login accounts that let the customer sign in to their own self-service portal.
- From the customers list, open the Users action on a customer row (requires
customers:read:allto view;customers:update:allto manage). - In the Users panel you can:
- Invite user β enter an email and send an invitation. The customer receives login credentials by email. (If email delivery is suppressed, a temporary password is returned to you on screen.)
- Create user β create a login directly with email, a password (min 8 characters), optional first/last name and phone, and a role. The role defaults to the configured default role for the "customer" owner type.
- Resend invitation β resets the user's password and emails new credentials (you may be shown the new temporary password).
- Activate / Deactivate a user β controls whether they can log in.
- Delete a user β removes the portal login.
Customers can also self-register through a public signup flow (email or mobile OTP verification) when your tenant exposes a public customer signup site; those self-registered customers appear here like any other.
Find and filter customers
- Search matches across first name, last name, organisation name, email, and phone.
- Filters: Customer Type (Individual / Organization), Status (Active / Inactive / Suspended), and β if you have
tags:readβ Tag. - Sort by name, type, email, phone, status, or created date. The list columns include Account Code, Customer Name, Type, Email, Tags, Phone, Balance, Status, and Created. Your filters, sort, and page are remembered (saved in the URL and locally).
Delete a customer
From the row actions or the detail page click Delete Customer and confirm. This is a soft delete β the record is hidden from lists but retained in the database (it can still be referenced by historical orders and transactions).
How the data connects
- What you enter (name, type, contact, address, tax ID, notes, currency, tags) is stored on the customer record in your tenant's database, scoped to your tenant.
- Accounts / billing β on create (and on update if missing), the system automatically creates and links a financial account in the chosen currency. That account holds the balance, feeds the Transactions tab, and is what billing and settlement post against. The account name is kept in sync with the customer name.
- Sales / products β products and subscriptions are attached to the customer's account, not the customer record directly. The Products tab reads these "customer products" (account items) by account ID β the same data shown under Sales β Customer Products. Recurring items drive next-billing dates.
- Customer portal β portal users you invite or create become login accounts tied to the customer, letting that customer sign in to their self-service portal to see their products, balance, and transactions. Public signup creates a customer plus its first portal user in one flow.
- Tags β assigned tags are stored as snapshots on the customer and can be used to filter the list and group customers.
Permissions & access
| Capability | Permission |
|---|---|
| View customers list and detail | customers:read:all |
| Add a customer | customers:create:all |
| Edit a customer / manage portal users / edit tags | customers:update:all |
| Delete a customer / delete portal users | customers:delete:all |
| Filter by tag, assign tags | tags:read (and tags:manage to change) |
| Module gate | Tenant must have the Sales licence module enabled |
Customers are tenant-scoped: you only ever see customers belonging to your own tenant. Row actions (View, Edit, Users, Delete) appear only when you hold the matching permission.
Tips & gotchas
- Customers are not members. Members are your internal/community membership records; customers are external parties you bill (individuals or organisations). They live in separate modules with separate permissions. Don't add a billing customer to the Members module or vice-versa.
- Balance colour is intentional, not an error. A red balance means the customer owes you (outstanding); green means they're in credit. Zero shows in grey/black.
- Accounts are automatic. You never create the financial account manually. If you see a yellow "no financial account yet" notice on Overview or Transactions, just save an edit to the customer and the account will be created.
- Currency is set at create time and ties to the auto-created account. Choose carefully β changing it later affects how a new account would be created but the original account currency is what your transactions already use.
- Products live on the account. A customer's products and subscriptions are reached from the Products tab of the customer, but they're really attached to the account β the same records appear under Sales β Customer Products.
- Deletes are soft. A deleted customer disappears from the list but is retained so historical orders/transactions stay intact.
- Invitations expose credentials when email is off. If credential email isn't sent, the temporary password is shown to you on screen once β capture it then, as it isn't stored for later display.
- Self-registered customers show up here too. Customers created through the public OTP signup flow appear in the same list and are managed identically.