MlemCRM · For version 0.4.0

The MlemCRM user guide

From your first sign-in to everyday teamwork. Configure the CRM for your business and keep customers, requests and tasks together.

Try the demo · opens in a new tab

01 / 16

Start with your workspace

Each installation serves one company. Its server holds the shared customer database and business objects; employees have separate logins. Use a modern browser on a computer or phone. Your installer prepares the server and a secure HTTPS address.

  1. Get your CRM address, administrator email and initial password from the installer. Open the address and sign in. Public demo credentials do not belong to your production installation.
  2. Choose Russian, English or Vietnamese in the sidebar. Your preference is saved. Use Appearance to change the theme, accent, sidebar and table density.
  3. Open Team, edit your own account and set a personal password. Changing it ends active sessions, so sign in again with the new password.
  4. Create employee accounts, apply suitable templates and enter a few trial records. Agree on names, statuses and required information before moving real business data.
In this guide ↑

02 / 16

Understand the three roles

Permissions cover the whole installation. This is a shared workspace, not a separate private customer list for each manager. Assign rights according to responsibilities rather than making everyone an administrator.

Administrator

Configures data structure, team and connections; works with records and sees the audit log.

Manager

Creates and edits business records, tasks and events; manages files and exports. Cannot manage accounts or the configurator.

Viewer

Reads shared data and reports. Cannot create, change or delete records or files.

  1. Administrators can open Configurator, Team, Integrations and the Audit log as well as work with everyday business records.
  2. Managers work with customers, services, deals, tasks and events. They can use configured AI; an administrator connects the provider.
  3. Viewers are suitable for an owner or partner who needs read access. Record changes and exports that require write permission are unavailable.
  4. If you need department isolation, access only to assigned customers or a complex permissions matrix, discuss this before purchasing. The current three roles do not provide those rules.
In this guide ↑

03 / 16

Create, edit, block or remove an account

Only administrators can manage Team. An employee email is a validated sign-in identifier, unlike a free-form customer contact. Existing passwords cannot be viewed or retrieved; an administrator can set a replacement password.

  1. Choose Invite a teammate and enter a name, valid email, a password of 12–256 characters and a role. Share credentials privately. Give every employee their own account.
  2. Use the edit icon next to a user to change their name, email or role. Leave Password empty to keep the existing password, or enter a new one to replace it.
  3. Changing email, role or password ends all of that user’s sessions. Blocking stops access immediately; unblocking lets them sign in again without restoring old sessions.
  4. Deleting removes the login account while retaining customers, deals, files and audit history. Use Block for temporary absence. The last active administrator cannot be disabled; the published public-demo login is protected.
In this guide ↑

04 / 16

Configure objects, fields and relationships

An object is a list such as Trips, Bikes or Requests. Fields describe a record, including dates, amounts and statuses. A relationship connects a record to another object, such as a booking to a customer. Customers exists on a fresh installation; employee accounts are managed separately.

  1. Apply the sales and work templates from Overview if suitable. They create services, deals, tasks and events. A template is a starting point, not a complete industry booking system.
  2. In Configurator choose New object. Enter a permanent key using lowercase Latin letters, digits and underscores, for example trips. Provide a name in just one language; additional translations are optional.
  3. Open the object and add fields: text, email, phone, number, date, checkbox, choice or relationship. Enter choice values one per line. Create the target object before selecting it for a relationship.
  4. Changing interface language uses an available customer-entered name without machine translation. Object and field names can be edited. Keys remain permanent: the name editor does not delete fields, rename keys or change data types.
In this guide ↑

05 / 16

Customers and flexible contact details

A customer needs a name; Contact is optional. It accepts an email, phone, Telegram @username, Zalo link or other useful text. The separate Phone field can hold the usual number. You no longer need to invent an email to save a customer.

  1. Open Customers and choose New record. Enter the name and a useful contact such as https://zalo.me/0901234567 or @travel_guest.
  2. Add a company, status and notes if useful. Collect only the information your business needs; leaving the contact blank is allowed.
  3. For a returning customer, search first instead of making another card. Do not rely on automatic duplicate merging to clean up separate records.
  4. Use a customer relationship in a booking or deal. Contact stays on the customer card, so changing it does not require editing every booking.
In this guide ↑

06 / 16

Work with records and large lists

Tables load in pages. Search runs on the server across the whole object, including records that are not on the current page. Saved records have an editing card; relationship fields connect business data.

  1. Open the object from the sidebar, enter a search and apply available filters. Clear filters if a record you expect seems to be missing.
  2. Use the page controls and page-size choice. A record being absent from the first page does not mean it was deleted.
  3. Choose New record or the edit icon on an existing row. Complete required fields; date, number and choice types are validated on save.
  4. If another colleague changed the same record, reload it and apply your update to the latest version. Selecting rows does not itself change data: a separate action button performs an operation.
In this guide ↑

07 / 16

Attach files to a record

Files belong to saved records: a contract to a deal, booking confirmation to a request, or a vehicle photo to a bike. Storage lives on the CRM server without mandatory S3. The maximum size of one file is 20 MiB.

  1. Save the record first, reopen its card and use the attachments section to upload a file. An unsaved card cannot own files.
  2. Choose a clear filename such as booking-2026-12-10.pdf. Confirm that the attachment appears and can be opened or downloaded.
  3. Administrators and managers can upload and delete attachments. Viewers can access available files but cannot modify them.
  4. Include files in backups together with the database and AI encryption key. Never upload real passports, personal data or customer contracts to the public demo.
In this guide ↑

08 / 16

Tasks and the Kanban board

Tasks capture the next action: confirm payment, check a pickup point or inspect a returned bike. A new task starts in New. The three system columns, New, In progress and Done, retain their names and relative order.

  1. Apply the work template if Tasks is not present. Create a task from Overview or Tasks; enter a title, due date, priority and customer when relevant.
  2. Change the status as work begins and finishes. Move cards between Kanban columns; on a phone you can also change status inside the record card.
  3. Open column settings. System column colours are editable. Add your own column, such as Review, with a name in at least one language and a colour.
  4. Place a custom column between In progress and Done by dragging or using the ordering controls. Move records out before removing a column. A due date does not send a Telegram notification automatically.
In this guide ↑

09 / 16

Calendar and important dates

The calendar shows dated events for departures, meetings, vehicle handovers and returns. Dated tasks complement daily planning. A calendar event and an entry in your booking object are separate records unless you create an explicit relationship.

  1. Create an event with a title and date, and add a time or customer when useful. One event named after the trip works well for a group departure.
  2. Move between periods and inspect events on a particular day. Open an event card to view or change its details.
  3. Create preparatory tasks before a date: check documents a few days earlier and confirm pickup the day before. Record responsibility using an agreed custom field or note.
  4. Do not assume calendar entries trigger automatic reminders. The current version does not promise push, SMS or Telegram reminders, visa-expiry checking or external-calendar synchronization.
In this guide ↑

10 / 16

Export and move your data

Administrators and managers can export tables as CSV or XLSX for reconciliation, sharing or external analysis. An export is not a full installation backup. Column headings follow the interface language with fallback names for custom fields.

  1. Open an object, set the search and filters you need and choose Export. Check the format and intended data scope.
  2. For a large table, wait for the export job to complete and download its result. Export is not limited to the visible page.
  3. Check row counts and a sample of contacts, dates, amounts and related customer names before relying on the spreadsheet.
  4. A bulk Excel import button is not promised. Agree with the installer on source format, fields, duplicate handling and a trial migration before moving a large existing database.
In this guide ↑

11 / 16

Integrations and incoming messenger requests

Integrations create protected webhooks for receiving records. A generic webhook and Telegram integration are available. The CRM does not automatically read personal conversations or serve as a universal inbox: a bot or external sender must be configured separately.

  1. An administrator creates an integration with a descriptive name and a target object for the generic webhook. Telegram messages create customer records.
  2. Save the secret shown when the integration is created and share it only with whoever configures the sender. Never publish it in instructions or group chats.
  3. The installer connects the bot or service to the supplied URL according to the integration API. Send one test request and confirm that it reaches the right table.
  4. Revoke the integration if the secret is exposed or the sender is no longer used. A Zalo contact link is contact information, not an installed Zalo API integration.
In this guide ↑

12 / 16

Connect AI and ask useful questions

On a local or customer installation, an administrator adds an OpenAI-compatible provider in Configurator → AI connections. OpenRouter and compatible local services are supported. AI is disabled in the public demo and keys cannot be connected there.

  1. Enter a provider name, complete API base address and API key when required. Load the model catalogue, select an exact model ID and an active model, then save. A key does not guarantee access to every model.
  2. OpenRouter free models are marked in the catalogue; quotas and availability depend on the provider. Allow local network access only for your trusted Ollama, LM Studio or service.
  3. Ask the AI assistant: “How many tasks are in progress?”, “Show our services” or “Which services generated the most sales last month?” Specify the object, period and metric.
  4. The CRM computes results on its server. The question and object structure go to the provider; record values stay on the server. AI does not perform arbitrary CRM edits or replace accounting. On failure, check model access, key, quotas and connectivity. Detailed narration of every uploaded file is not promised.
In this guide ↑

13 / 16

Example: travel and visa-run agency in Nha Trang

Begin with customer → booking → trip. One customer may travel repeatedly, and one trip carries a group. This example is operational recordkeeping; your agency must independently confirm current visa rules, documents, routes and border requirements.

  1. The administrator adds managers and applies the sales and work templates. Create services such as Laos visa run, Cambodia visa run and e-visa assistance with agreed prices. Establish the currency of amounts and do not mix USD and VND without an explicit rule.
  2. Create trips with departure, return_date, route, pickup, capacity and notes fields. Create bookings with relationships client → clients and trip → trips, plus status, price, deposit, seat and pickup_contact. Each object and field needs a name in only one language.
  3. A manager receives a Telegram or Zalo request, searches or creates the customer, checks the desired date and saves a booking. Link it to a trip and record payment and seat. Suggested statuses: Request, Waiting for documents, Confirmed, Travelling, Completed and Cancelled.
  4. Enter one trip, three customers and three linked bookings. Add a group departure event to Calendar and document-check and pickup-confirmation tasks. Locate bookings through their relationship or search; test a date change, cancellation and another trip for the same customer.
  5. Before actual use, check seat capacity, duplicate seat assignments and payments manually. Automatic overbooking prevention, visa checks, remaining-balance calculation and group broadcasts are not included. Agree on improvements first if these are mandatory for your agency.
In this guide ↑

14 / 16

Example: vehicle and property rental

Keep inventory, customer and reservation in separate objects. A bike or apartment then remains the same record as renters change. The CRM supports shared request tracking; automatic availability and date-overlap prevention are not part of the basic configuration.

  1. Create vehicles with type, registration, price and condition; properties with address, category and price. In rentals add a customer relationship, separate vehicle and property relationships, start/end dates, amount, deposit and status.
  2. For a request, find the customer, select a particular rental item, agree on dates and save the reservation. Attach a contract and photos after saving its card.
  3. Create handover and return events and tasks to check payment and condition. On completion change status and record damage or deposit return in fields or notes.
  4. Before confirming, inspect other reservations for the same vehicle or home. Overlapping dates, extensions, substitutions and deposit reconciliation need manual checks; automatic conflict blocking requires further development.
In this guide ↑

15 / 16

Production, demo, backups and updates

The public demo is shared by all visitors and resets daily at 01:00 Europe/Moscow. A customer installation must not reset like the demo. Server updates and backups are the owner’s or installer’s responsibility, not a manager’s record-card action.

  1. Use fictional data in the demo. Do not upload real passports, API keys or confidential contracts. Another visitor can change shared records.
  2. For a company, obtain a verified installation kit. The installer runs a single SSH delivery command with the server, instance name and domain, then hands over an individual administrator account. Prepare DNS, HTTPS and available ports.
  3. A complete backup includes SQLite data, uploaded files and the AI encryption key. Automatic local backups are useful, but you also need an off-server copy and a tested recovery procedure.
  4. Update a pilot first, then customer installations individually. The installer uses update to preserve data and takes a snapshot before changing versions. Never run a fresh installation or demo reset over a live company workspace.
In this guide ↑

16 / 16

Troubleshooting and your first acceptance check

Start with a small, verifiable workflow. Clear names and agreed required fields matter more than many tables. When reporting an issue, record the expected result, actual result, role and device; exclude passwords and API keys.

  1. Cannot find a customer: clear search and filters and check the object and pagination. Search covers the full object, not only loaded rows.
  2. Cannot edit: check your role. A viewer reads; only an administrator changes structure and accounts. Sign in again after a role change.
  3. My object has no translation: that is allowed. Add an optional name in another language through the editor; customer data is never automatically translated.
  4. Before adoption, follow a whole cycle: enquiry → customer → booking → task/event → payment → completion → export. Note which steps are convenient now and which need additional capabilities.
In this guide ↑