# Customer records (CRM)

Searchable customer records, private notes, lead status, activity and CSV export. Chat, bookings, visits, quotes and orders populate the same contacts.

## Install

Use the verified installer in the website container. It installs dependencies, checks checksums, and refuses to replace customer changes:

```sh
python /opt/runalio/catalog_install.py customer-crm
python /opt/runalio/catalog_install.py --status
```

Review the preview and click Publish to promote backend code and pages. Production data remains separate.

To undo the last installation before publishing: `python /opt/runalio/catalog_install.py --rollback`.

## What the customer needs to do

- Open Business admin → Customers to manage contacts.
- The built-in contact-form still arrives in portal Leads; backend module contacts also synchronize to the portal customer dashboard.

## Administration and data

Business admin opens from the portal Settings. Managed websites use portal team membership and same-origin mutation checks. Customer data stays in the website SQLite database and participates in consistent backups. Agent changes to source and page snippets remain drafts until Publish. No customer credentials are embedded in pages or chat.
