Video chapters
- 0:00 Welcome
- 0:05 Overview: from contacts to perks
- 0:25 Part 1 · Contacts — Contacts: explained
- 0:42 Add, import and find contacts
- 2:07 Part 2 · Customer groups — Groups: explained
- 2:21 A VIP group and a rule-based group
- 3:42 Part 3 · Group benefits — Group benefits: explained
- 3:53 VIP 10% off, and Leo's price on the shop
- 4:49 Part 4 · Applications and approval — Applications: explained
- 5:04 Studio Club: Leo applies, we approve
- 7:02 Part 5 · Shared accounts — Shared accounts: explained
- 7:17 Leo orders for Northwind Cafe
- 9:02 Wrap-up
Written guide
Evidence: this course uses earlier local captures, including unsaved forms inspected on 2 October and visually reviewed on 4 October 2026. Saving membership, delivering invitations, enforcing Buyer/Manager access and consuming benefits require separate outcome checks; this pass did not complete those live operations.
What you will learn
This course covers Appmint CRM Customers and Benefits: contacts, customer groups, shared accounts, benefit packages and enrolment. We will show how the records connect, then create and check each part. A group organises customers; a shared account gives people a defined relationship to an account; a benefit package has its own eligibility and approval.
01. Find and maintain contacts
Contacts is the customer directory; groups and benefits organize or entitle those customers. Search the existing identity before creating another.
Steps
Open Customers & Benefits → Contacts. Search by email, open the matching record and inspect Basic Information. For a new controlled customer use Add Contact, fill the actual identity fields and save, then reopen and inspect the saved record.
Check the result
The older recorded editor sent welcome/profile notifications and did not persist Groups through profile update. Recheck current behavior; use the dedicated group operation below.
02. Create and manage group membership
Static groups contain selected members. Dynamic groups derive membership from rules and require a tested matching and nonmatching example.
Steps
- Open CRM → Customers & Benefits → Contacts.
- Select New Group in the Groups & Contacts sidebar. The separate Customer Groups tab lists groups; the inspected creation entry is in Contacts.
- Enter Group Name, a useful Description and Static Group, then select Save.
- Return to Contacts and narrow the search to the intended people. Select their card checkboxes and check the selected count.
- Open Bulk Actions → Bulk Update → Add to Group, choose the saved group and apply once.
- Reload, select the group and confirm the intended customers by email. Clear the selection before another bulk operation. Use Remove from Group only for the specific membership you intend to remove.

Actual unsaved 2 October form. The older drawer title says Edit Group although it was opened through New Group; current source distinguishes New Group for a new record. Saving the group name alone does not add members.
Check the result
Dynamic Group is not complete simply because you select its type. The Contacts group editor currently offers Static/Dynamic but does not expose rule fields beneath that selector. Existing saved rules are evaluated elsewhere, but a complete novice-followable rule-creation path remains unverified. Use Static Group for explicit membership until the editable rule path and matching/nonmatching results are demonstrated.
03. Create a shared purchasing account
Shared Accounts associates people with an account customer; it does not share a password. Buyer and Manager have different order visibility.
Steps
- Select Shared Accounts → Start a shared account.
- Under Which customer is the account?, select the existing account customer. This is the account being bought on.
- Under Add someone to this account, select the person who will buy, or enter the intended new member email. This second identity is distinct from the account itself.
- Choose Buyer or Manager after reading its scope. Buyer sees their own orders; Manager has the wider account scope described by the form.
- Review the optional email note and select Add to account only when you intend to create the relationship and notify the recipient.
- Reopen the account and check membership. Then test with the member's own login; the operator's view cannot prove their permissions.

Actual unsaved form. The account customer is selected but no member has been added. This is not an invitation-delivery or access result.
Check the result
Existing-customer association and new-email invitation are different paths. Both may notify; verify delivery and access for the intended recipient.
04. Prepare a benefit package
Benefits define the actual entitlement and its eligibility. Saving an inactive package does not prove a discount or shipping perk is applied.
Steps
- Open Group Benefits → Create Benefits.
- Enter the package Name, display Title and description. Inspect Status—the captured new form starts Active, so deliberately choose an inactive preparation state when the package is not ready.
- Select the Application Form only when enrollment needs that saved form. Decide whether Requires Approval applies and provide the actual information/legal agreement.
- Scroll through Customer Groups, Perks and Validity Period. Configure the eligible audience and real entitlement; a badge or title alone grants no benefit.
- Select Create, reopen the package through its edit action and compare status, eligibility, perk and dates.
- Before advertising it, verify the benefit in its actual consumer—for example checkout for a discount—not merely in this editor.

Actual unsaved form. These upper controls do not show all perk and validity fields; continue down the editor before saving.
Check the result
Test each selected perk at its actual consumer before promising it to customers.
05. Enroll, review and activate
Enrollment is the customer’s relationship with a package. Pending, approved and active are different states; review the application and actual entitlement separately.
Steps
- Open Enrollments → Enroll Customer.
- Search by the customer's name or email and select the correct result. Choose the intended Benefit Package; typing its name in Notes does not link it.
- Review the optional notes, then select Submit Enrollment. If the package is missing, finish package setup and return rather than selecting an unrelated offer.
- Find the resulting application and use its review/approval actions according to your process. Reopen the same customer's record after each decision.
- Where activation is required, use the offered Activate action and inspect validity. Finally check the customer's actual benefit outcome.

Actual unsaved form. The disabled button is expected with missing selections and is not an application failure.
Check the result
The older form offered inactive packages; eligibility enforcement and status transitions remain required runtime checks. Do not demonstrate a successful benefit using a saved enrollment alone.
06. Connect workflows and notifications
Workflows manages benefit application stages. Notifications supplies message templates; it is separate from the sender and from evidence that the customer received the message.
Steps
Open Workflows → New Workflow where a definition is needed. Inspect the actual benefit-application stages. Submit a controlled enrollment and locate its task. In Notifications create the appropriate template, configure its actual event context and controlled recipient, then verify the resulting delivery.
Check the result
Creating the workflow may immediately create the default definition. Exact notification variant/context must be verified rather than guessed.
07. Read back entitlement and access
A complete setup ends with persisted membership and the customer’s actual benefit or shared-account behavior. A summary count is supporting information.
Steps
Reload Contacts, the group and the enrollment. Verify the same customer identity in each. Test Buyer and Manager visibility independently and inspect the customer’s relevant purchase or service entitlement. Correct the specific relationship if the result differs.
Check the result
Do not claim all group perks or shared-account permissions proven from one customer test. Public invitations, dynamic rules and each perk need their own outcome checks.
Your next check
Return to the chapter for the action you need. When you change the configuration, check the matching record, customer view or destination again. A saved setting and a successful external outcome are different observations.
Detailed examples and earlier saved results
The examples below preserve earlier recorded settings and results. Use your own group names and business terms; inactive packages and empty boards are preparation evidence, not completed customer entitlement.
Locate a customer before creating another
Open Contacts and use Search contacts... to look for the person's email or name. In our organization Alex Cedar already exists as [email protected]. Select the contact to open Edit Contact.
The first section, Basic Information, includes Email, Username, First Name, Last Name, Middle Name, Title, Prefix, Suffix, Phone, Account Type, Birthday and Sex. Email is marked required. Account Type offers Subscriber, Contact and Customer. Fill only information you actually have and need; an unknown phone number should remain empty.
To add a new person, choose Add Contact. This build still labels the opened drawer Edit Contact even when the record is new. Enter a real customer email only when you intend to register that customer: the current save operation dispatches a welcome notification. Our course capture inspects this form without submitting a fictional email.

The remaining sections organize company information, lead and sales information, groups and benefits, additional emails, phone numbers, addresses, social media, preferences, profile images, security/login, affiliations, subscriptions, projects, security questions, community profile and activity history. Expand the section relevant to the information you are maintaining instead of trying to complete every section at once. Security and login changes are separate operational decisions; do not reset access just to add a consultation note.
Current limitation: profile Save also dispatches a profile-update notification. In addition, the Groups field shown inside this editor is stripped by the current update API, including for staff. Do not use that field as proof that group membership was saved. The dedicated group workflow is being verified below; the application issue is logged separately.
Create a consultation customer group
Choose Customer Groups. The toolbar includes a plus icon to create a record; its current form title is updateData. Select the plus, then enter:
| Field | Example | Purpose |
|---|---|---|
| Name | crm-general-course-consultation-clients | A recognizable identifier for this group |
| Description | Fictional Cedar & Form clients preparing for a design consultation. | Explains why the group exists |
| Group Type | Static | Membership is selected explicitly rather than inferred from rules |
The other type is Dynamic. Its rule editor exists, but the rule-evaluation and membership demonstration is still being verified; this first group uses Static deliberately.

Select Save. The observed success message is Data inserted. In this build the list did not immediately refresh, so click the refresh icon beside the search field. Confirm that the group appears. You can also return to Contacts and see its name in Groups & Contacts.

Now add Alex through the dedicated group operation:
- Return to Contacts. Search [email protected] and confirm the filtered result is Alex Cedar.
- Select Select all above the filtered list. Check 1 selected before continuing; a broader search can select more people than intended.
- Select Bulk Actions, then Bulk Update. Deduplicate is the initially selected bulk tab; it does not add group membership.
- Open Action and choose Add to Group. The current selected control displays the internal value
add_to_group; the action button reads Add to Group. - Open Select Group and choose crm-general-course-consultation-clients.
- Select Add to Group once. Data updated appears and the left group count changes from0to1.
- Reload, then select the group in Groups & Contacts. Confirm 1 contacts in crm-general-course-consultation-clients and the Alex Cedar row.



This updates the group's membership list without editing Alex's customer profile. To undo an incorrect assignment, use the same filtered selection and Bulk Update with Remove from Group, then verify the group again. That removal action is present in the UI and source; the recorded example keeps Alex in the intended group.
Understand shared purchasing accounts
Select Shared Accounts, then Start a shared account. The first question is Which customer is the account? The account is an ordinary customer record representing, for example, an agency, department or wholesale buyer. Its customer groups determine the benefits members receive when buying on it. This does not ask people to share a password.

Use Find the customer this account belongs to to choose an existing customer. The member form appears after selection. It offers Buyer and Manager. The Buyer explanation says Sees only their own orders. The final action is Add to account.

The implementation distinguishes an existing customer from a new email. An existing customer is linked directly; a new email receives an invitation and becomes associated after signup. Both paths send a notification. Our recording stops before that final action, so it proves the setup controls, not a delivered invitation or a completed membership. A shared account is not listed as established merely because its customer was selected—the first association creates the shared-account relationship.
Prepare a benefit package before enrolling anyone
Open Group Benefits → Create Benefits. A package includes Name, Title, Status, Description, an optional Application Form, Requires Approval, Information, Legal Agreement, Customer Groups, Perks, visual badge settings, Notifications and Validity Period.
For our local draft, Name is crm-general-course-consultation-prep, Title is Consultation client discount, and Status is Inactive. Expand Perks, enter 5 in Discount, and keep Discount Type Percentage. We use Consultation client as Badge Text. No customers or groups are assigned to this package.

Perks also exposes Early Access, Priority Support, Free Shipping, Free Shipping Minimum, Shipping Discount and Exclusive Products. These are different business commitments. Enable only the terms you intend to offer, and test the relevant storefront behavior before advertising them. Creating a package is not evidence that a checkout discount has been applied.
Select Create, then check the saved card. To verify the persisted configuration, open the card's three-dot menu → Edit, then expand Perks. The recorded readback shows Discount 5 and Discount Type Percentage. Use Cancel to close this inspection without changing the package.

The current course package is inactive and has no enrollment. In Enrollments, the status filters include Pending, Under Review, Approved, Rejected, Active, Expired and Cancelled. Enroll Customer opens Customer, Benefit Package and Notes, with Submit Enrollment as the final action. We inspected but did not submit that form. The current selector includes the inactive test package; eligibility enforcement needs verification before this is taught as a successful enrollment.
Prepare the application review board
Open Workflows. With no workflow configured, the dashboard shows zero workflows/stages and No Workflows Selected. Select New Workflow once. This creates the default benefit-application definition immediately; it does not open a naming drawer.
The result shows 1 workflow configured, 6 Stages, and these columns: Application Submitted, Under Review, Documents Required, Final Review, Approved, Rejected. Reload and return to Workflows to confirm it remains. Our board has zero tasks because creating the review process is separate from enrolling a customer.

Use the Kanban view to see stage columns and Table for a tabular view. The stage names distinguish a request for more information from a final decision. Do not use Escalate overdue simply to explore: it is an operational action on overdue work, not a view toggle. Connecting an actual submitted enrollment to this board still needs verification; the empty board does not prove that connection.
Locate benefit message templates
Open Notifications → Create Template. The Create Notification Template form exposes Name, From, Subject, To, Datatype, Variant, Subtype, Delivery Type, Is Default, HTML, Text, Attachments and Thumbnail. Show Template Variables is available beside the editor. Delivery Type initially shows email.

A template defines message content and matching conditions; it is not the SMTP delivery server. Our example organization has no benefit templates yet. We inspected this form and chose Cancel, leaving it unchanged. Do not type a guessed variant or recipient expression: use the event's documented context, preview the resulting message and verify delivery before enabling a customer-facing template. Template creation and actual notification delivery remain separate release checks.
Verification notes
BusinessMade Contacts — supporting guide
Image evidence: retained captures illustrate the labelled screen or action, not a fresh completed walkthrough of every step. Shared Appmint references are not BusinessMade execution proof.
Overview
Open Operations → Contacts. This opens the shared Customers & Benefits app; start with Contacts, then follow the related accounts and memberships without duplicating the customer.
BusinessMade navigation and scope
BusinessMade /crm/contacts mounts the complete Customers & Benefits app. Contacts is the entry; other tabs remain available. The separate Customers & Benefits menu explicitly starts Groups. A contact is not a staff user or a logged-in organization member.
Current local walkthrough — find the right customer
- Open Operations → Contacts. The page title is Customers & Benefits, with Contacts selected. This is the customer directory, not Admin → Users.
- In Search contacts..., enter the customer's email. Our existing controlled record is
[email protected]. Wait for the matching card and compare its name/email before opening it. In the capture, 1 of 7 is the filtered result while All Contacts 7 remains the directory total.

Select the name on the matching card to open Edit Contact. Basic Information contains Email, Username, First Name, Last Name, phone and Account Type. Expand the named sections for company details, sales information, Groups & Benefits, addresses or preferences; these are sections of the same customer, not new records.

For a new person, close the editor, clear the search and select Add Contact. The current creation drawer also says Edit Contact. Email is required; enter the person's actual identity, choose the appropriate Account Type, and save only when ready to create the account. Subscriber, Contact and Customer are available options; choose intentionally rather than assuming a selection creates staff access.

Live boundary: Search, opening the existing record and inspecting Add Contact were exercised on 4 October. No customer create/update was submitted. Current source queues a welcome on signup and a profile-update notification on update, including updates triggered by bulk membership. A saved static group alone is safe to prepare but does not prove contact membership.
01. Find and maintain contacts
Why this matters
Contacts is the customer directory; groups and benefits organize or entitle those customers. Search the existing identity before creating another.
Follow these steps
Open Customers & Benefits → Contacts. Search by email, open the matching record and inspect Basic Information. For a new controlled customer use Add Contact, fill the actual identity fields and save, then reopen and inspect the saved record.
Check the result
The older recorded editor sent welcome/profile notifications and did not persist Groups through profile update. Recheck current behavior; use the dedicated group operation below.
02. Create and manage group membership
Why this matters
Static groups contain selected members. Dynamic groups derive membership from rules and require a tested matching and nonmatching example.
Follow these steps
Open Customer Groups, create a named Static group and save. Return to Contacts, narrow the search and select the intended records. Use Bulk Actions → Bulk Update → Add to Group, choose the group and apply once. Reload and inspect membership. Use Remove from Group to correct a disposable assignment.
Check the result
For Dynamic groups, configure the actual rule editor and verify inclusion/exclusion after underlying data changes; current complete runtime proof remains pending.
03. Create a shared purchasing account
Why this matters
Shared Accounts associates people with an account customer; it does not share a password. Buyer and Manager have different order visibility.
Follow these steps
Open Shared Accounts → Start a shared account. Choose Which customer is the account? using the existing account customer. Add the member with Buyer or Manager and select Add to account. Verify the member’s own access and, for a new email, the invitation and signup association.
Check the result
Existing-customer association and new-email invitation are different paths. Both may notify; verify delivery and access for the intended recipient.
04. Prepare a benefit package
Why this matters
Benefits define the actual entitlement and its eligibility. Saving an inactive package does not prove a discount or shipping perk is applied.
Follow these steps
Open Group Benefits → Create Benefits. Enter identity, status and description. Configure Customer Groups, Perks and Validity Period, review approval, form and legal-agreement settings, then Create. Reopen through Edit and verify the saved perk and eligibility.
Check the result
Test each selected perk at its actual consumer before promising it to customers.
05. Enroll, review and activate
Why this matters
Enrollment is the customer’s relationship with a package. Pending, approved and active are different states; review the application and actual entitlement separately.
Follow these steps
Open Enrollments → Enroll Customer. Choose Customer and Benefit Package, enter Notes and Submit Enrollment. Find the application, use Move to Review, then Approve or Reject with the intended notes. Where appropriate use Activate. Reopen the enrollment and test the intended benefit through the customer’s own workflow.
Check the result
The older form offered inactive packages; eligibility enforcement and status transitions remain required runtime checks. Do not demonstrate a successful benefit using a saved enrollment alone.
06. Connect workflows and notifications
Why this matters
Workflows manages benefit application stages. Notifications supplies message templates; it is separate from the sender and from evidence that the customer received the message.
Follow these steps
Open Workflows → New Workflow where a definition is needed. Inspect the actual benefit-application stages. Submit a controlled enrollment and locate its task. In Notifications create the appropriate template, configure its actual event context and controlled recipient, then verify the resulting delivery.
Check the result
Creating the workflow may immediately create the default definition. Exact notification variant/context must be verified rather than guessed.
07. Read back entitlement and access
Why this matters
A complete setup ends with persisted membership and the customer’s actual benefit or shared-account behavior. A summary count is supporting information.
Follow these steps
Reload Contacts, the group and the enrollment. Verify the same customer identity in each. Test Buyer and Manager visibility independently and inspect the customer’s relevant purchase or service entitlement. Correct the specific relationship if the result differs.
Check the result
Do not claim all group perks or shared-account permissions proven from one customer test. Public invitations, dynamic rules and each perk need their own outcome checks.
Verification notes
BusinessMade /crm/contacts mounts the complete Customers & Benefits app. Contacts is the entry; other tabs remain available. The separate Customers & Benefits menu explicitly starts Groups. A contact is not a staff user or a logged-in organization member.
Shared UI procedures are authored from the actual component mounted by the BusinessMade route registry. The changed wrapper/navigation has been source-inspected; the current local inspection is recorded above. Customer/provider outcomes and permission tests not explicitly demonstrated remain pending.
BusinessMade Customers & Benefits — supporting guide
Image evidence: retained captures illustrate the labelled screen or action, not a fresh completed walkthrough of every step. Shared Appmint references are not BusinessMade execution proof.
Overview
Open Operations → Customers & Benefits. Its BusinessMade wrapper starts on Groups, so you can prepare membership and benefits while preserving the same underlying contact.
BusinessMade navigation and scope
CustomerGroups.tsx mounts CustomersBenefitsHome with initialTab="groups"; saved view URL parameters may override that initial tab. Use Contacts within the app when creating the person, then Groups/Benefits/Enrollments. Verify actual consumer eligibility independently from a saved active benefit.
Create the first static group — verified local procedure
A group organizes selected customers. Saving the group does not enroll them in a benefit or send a campaign. Start with an empty static group so its identity exists before assigning members.
- Open Operations → Contacts. On the Contacts tab, find Groups & Contacts on the left and select New Group.
- Enter Course Riverside Members in Group Name, or another unused meaningful name. Enter a description explaining its purpose. Select Static Group in Group Type; the alternative is Dynamic Group (Rule-based) and needs its own tested rules.

Select Save at the bottom of the drawer. Wait for the drawer to close and the group to appear in the left sidebar. Reload and confirm it remains. The illustrated group has 0 members: that is the expected result of creating an empty group.

Open Operations → Customers & Benefits. This menu starts the Customer Groups tab. The same group appears in its table with Name, Description and Static Group Type. You do not need to create it again through this second entry.

Verified result: Course Riverside Members persisted after reload and appeared in both navigation entries on 4 October. No benefit, enrollment, invitation or broadcast was created.
Membership boundary: The dedicated bulk Add to Group action first saves group contacts, then synchronizes the customer's groups through the customer-update API. That update queues a profile notification in the current server. Membership was therefore not submitted in this no-message rehearsal. The later membership and benefit chapters below remain unverified, including recovery if the two updates do not both succeed.
01. Find and maintain contacts
Why this matters
Contacts is the customer directory; groups and benefits organize or entitle those customers. Search the existing identity before creating another.
Follow these steps
Open Customers & Benefits → Contacts. Search by email, open the matching record and inspect Basic Information. For a new controlled customer use Add Contact, fill the actual identity fields and save, then reopen and inspect the saved record.
Check the result
The older recorded editor sent welcome/profile notifications and did not persist Groups through profile update. Recheck current behavior; use the dedicated group operation below.
02. Create and manage group membership
Why this matters
Static groups contain selected members. Dynamic groups derive membership from rules and require a tested matching and nonmatching example.
Follow these steps
Open Customer Groups, create a named Static group and save. Return to Contacts, narrow the search and select the intended records. Use Bulk Actions → Bulk Update → Add to Group, choose the group and apply once. Reload and inspect membership. Use Remove from Group to correct a disposable assignment.
Check the result
For Dynamic groups, configure the actual rule editor and verify inclusion/exclusion after underlying data changes; current complete runtime proof remains pending.
03. Create a shared purchasing account
Why this matters
Shared Accounts associates people with an account customer; it does not share a password. Buyer and Manager have different order visibility.
Follow these steps
Open Shared Accounts → Start a shared account. Choose Which customer is the account? using the existing account customer. Add the member with Buyer or Manager and select Add to account. Verify the member’s own access and, for a new email, the invitation and signup association.
Check the result
Existing-customer association and new-email invitation are different paths. Both may notify; verify delivery and access for the intended recipient.
04. Prepare a benefit package
Why this matters
Benefits define the actual entitlement and its eligibility. Saving an inactive package does not prove a discount or shipping perk is applied.
Follow these steps
Open Group Benefits → Create Benefits. Enter identity, status and description. Configure Customer Groups, Perks and Validity Period, review approval, form and legal-agreement settings, then Create. Reopen through Edit and verify the saved perk and eligibility.
Check the result
Test each selected perk at its actual consumer before promising it to customers.
05. Enroll, review and activate
Why this matters
Enrollment is the customer’s relationship with a package. Pending, approved and active are different states; review the application and actual entitlement separately.
Follow these steps
Open Enrollments → Enroll Customer. Choose Customer and Benefit Package, enter Notes and Submit Enrollment. Find the application, use Move to Review, then Approve or Reject with the intended notes. Where appropriate use Activate. Reopen the enrollment and test the intended benefit through the customer’s own workflow.
Check the result
The older form offered inactive packages; eligibility enforcement and status transitions remain required runtime checks. Do not demonstrate a successful benefit using a saved enrollment alone.
06. Connect workflows and notifications
Why this matters
Workflows manages benefit application stages. Notifications supplies message templates; it is separate from the sender and from evidence that the customer received the message.
Follow these steps
Open Workflows → New Workflow where a definition is needed. Inspect the actual benefit-application stages. Submit a controlled enrollment and locate its task. In Notifications create the appropriate template, configure its actual event context and controlled recipient, then verify the resulting delivery.
Check the result
Creating the workflow may immediately create the default definition. Exact notification variant/context must be verified rather than guessed.
07. Read back entitlement and access
Why this matters
A complete setup ends with persisted membership and the customer’s actual benefit or shared-account behavior. A summary count is supporting information.
Follow these steps
Reload Contacts, the group and the enrollment. Verify the same customer identity in each. Test Buyer and Manager visibility independently and inspect the customer’s relevant purchase or service entitlement. Correct the specific relationship if the result differs.
Check the result
Do not claim all group perks or shared-account permissions proven from one customer test. Public invitations, dynamic rules and each perk need their own outcome checks.
Verification notes
CustomerGroups.tsx mounts CustomersBenefitsHome with initialTab="groups"; saved view URL parameters may override that initial tab. Use Contacts within the app when creating the person, then Groups/Benefits/Enrollments. Verify actual consumer eligibility independently from a saved active benefit.
Shared UI procedures are authored from the actual component mounted by the BusinessMade route registry. The changed wrapper/navigation has been source-inspected; the current local inspection is recorded above. Customer/provider outcomes and permission tests not explicitly demonstrated remain pending.