=== Virtual Solutions Client CRM ===
Contributors: virtualsolutionssoftware
Tags: crm, clients, customers, woocommerce, contacts
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A simple CRM for WordPress: clients, appointments, tasks, tags and emails, with WooCommerce sync, encrypted client data and a built-in guide.

== Description ==

Virtual Solutions Client CRM (“Client CRM” in your dashboard) turns WordPress into a clean, fast CRM. Use it on its own to manage the clients of a service business, or connect it to WooCommerce and every shop customer becomes a client card with orders, revenue and history.

**Client cards with everything in one place**

* Individuals and businesses, with photo/logo, title, job, department, birthday and language
* Contact details: two emails, phone, mobile, website, preferred contact method (email, phone, SMS, WhatsApp, Viber, in person)
* Billing and shipping address
* Business & tax: VAT / Tax ID, tax office, registration number, industry, company size
* Client / account number, contact persons (name, role, email, phone), legal form, annual revenue
* Billing: invoices email, payment method, IBAN, credit limit, discount, payment terms
* Social profiles (incl. TikTok, YouTube), background notes, files & documents
* Pipeline: status, source, referred by (another client), owner, tags, rating, estimated value, client since
* Account & consent: linked WordPress/WooCommerce user, marketing consent with date, GDPR / SMS consent, do not contact

**Industry packs — free**

Tick your industry in Settings → Industries and the client card gets its own section with the details that business keeps. 33 packs, 300+ fields:

* For every business: personal details & ID, family & important dates, contracts & subscriptions
* Health & wellness: medical practices, dental, therapy & coaching, gyms & fitness, beauty & spa, veterinary
* Professional services: legal, accounting & payroll, insurance, banking & finance, consulting, recruitment, architecture & interior design
* Property & home: real estate, property management & rentals, construction & home services
* Retail, food & hospitality: retail & e-commerce, wholesale, restaurants & catering, hotels & rentals, travel, events & photography
* Automotive & transport: automotive (vehicles, service & inspection dates), logistics & freight
* Education & community: education & tutoring, nonprofits & clubs
* Tech & creative: software & IT services, marketing & creative agencies
* Industry & trade: manufacturing, agriculture

Important details (allergies, access notes, learning needs…) are pinned to a "Keep in mind" card, and renewal, expiry and appointment dates show under "Key dates", on the dashboard and in the daily email. Switching a pack off only hides its fields — nothing is deleted.

**Email your clients**

* Send to everyone, a group (status, tag, segment, type, source, owner), a selection from the client list, or one client
* Personalize with {first_name}, {company}, {client_code} and any other client field, with fallbacks: {first_name|there}
* Rich editor with images, buttons and attachments; preview for a real client and send yourself a test
* Newsletters include an unsubscribe link (one-click unsubscribe in Gmail and Apple Mail when you send through SMTP or a mail plugin) and skip clients who unsubscribed, are marked “Do not contact” or haven’t given consent
* Sent in the background at a safe pace (emails per minute), with a live report: sent, failed with reasons, skipped with reasons, retry failed
* Every email shows up on the client’s timeline
* Works side by side with SMTP and email plugins (WP Mail SMTP, FluentSMTP, Post SMTP…): when one handles email on your site, Client CRM sends through it and never changes how the rest of your site sends email. No SMTP plugin? Set up your own mail server in Settings → Email (password stored encrypted)

**Team roles & permissions**

* Settings → Roles & permissions lists every role on your site — WordPress's own, WooCommerce's and ones added by other plugins — and lets you choose what each one can do in the CRM: open it, see all clients or only their own, add and edit, log activity, delete, email one client or send newsletters, import, export, manage tags, change settings
* Create your own roles (start from Manager, Sales agent, Assistant or Viewer), and give people roles right there
* "Only their own clients" also limits tasks, appointments, the calendar, emails, reports and exports
* Only Client CRM's permissions are changed — what a role can do elsewhere in WordPress stays as it is. Site administrators always have full access

**Your clients’ data stays private, even if your database leaks — free**

* Encryption of client data (Settings → Security): names, contact details, notes, timeline, tasks, appointments, emails and files are encrypted with XChaCha20-Poly1305 before they reach the database, so a stolen copy of the database or a leaked database backup can’t be read
* The key is stored locked with your site’s secret keys from wp-config.php, and you save a recovery key to unlock the CRM if those secret keys ever change
* Search, filters, sorting, key dates and birthdays keep working while everything is encrypted
* Protected client files: files and photos of clients are kept in a private folder instead of the public Media Library, only people who may see the client can open them, and they are encrypted too
* Activity log & alerts: who opened, changed, exported or deleted clients, tamper-evident; email alerts about unusual activity (bulk viewing, mass deletes, exports, repeated wrong passwords), and the account that does it can be paused automatically
* Sensitive steps (showing the recovery key, changing the key, turning encryption off, changing alerts) ask for your password again

**Your client data stays on your server**

* Client CRM keeps everything on your own website and never sends your client data to us
* Optional usage statistics: only if a site administrator agrees (in the setup wizard or Settings → Data), Client CRM sends us general statistics once a week to help improve it — never client data. Settings → Data shows exactly what is sent. See “External services” below

**A user guide inside the CRM**

* Help center with 33 in-depth topics in English and Greek, searchable, with a “?” on every screen that opens the right topic

**English, Ελληνικά and any other language**

* English and Greek built in (Settings → General → Language): for everyone on the site and in the emails your clients get, whatever language WordPress is in — or “Same as WordPress”, so each person sees the language of their own WordPress profile
* Ready for translation into any language, like any WordPress plugin (wordpress.org language packs, Loco Translate, Poedit); the built-in guide can be translated too
* On a new install it follows WordPress: Greek sites start in Greek, English sites in English, sites in other languages in “Same as WordPress”
* Dates, months and numbers follow the chosen language too

**Calendar & appointments**

* Book appointments, bookings, meetings, calls and events with a client, a time, a place and who they're with — types and colors are yours to set
* One calendar with everything that has a date: appointments, tasks, industry key dates (next appointment, service due, lease end…), birthdays and, with Pro, scheduled emails
* Month, week, day and list views; filter by what to show and whose calendar
* Drag appointments and tasks to move them, or an appointment's lower edge to change its length; click an empty slot to book
* Statuses: scheduled, confirmed, completed, cancelled, no-show — completed appointments count as contact and show on the client's timeline
* Upcoming appointments on the client card and the dashboard, and today's appointments in the daily email
* Works on phones: a month overview with dots and the day's agenda below

**Work with your clients**

* Activity timeline: log notes, calls, meetings, emails and messages (also for things that happened earlier)
* Tasks & reminders with due dates, times, priorities and assignees, plus a daily email digest
* Tags with colors, filters, and saved segments
* Quick actions: email, call, WhatsApp, log, add task
* Dashboard with new clients per month, pipeline, tasks, recent activity, top clients, leads going cold and a "Coming up" list of birthdays, renewals and key dates

**WooCommerce**

* Customers and guest checkouts become clients automatically (matched by account and email)
* Order count, total spent, average order and last order on every card, orders on the timeline
* One-click sync for existing customers and past orders
* "Virtual Solutions Client CRM" box on the order screen
* Compatible with High-Performance Order Storage (HPOS)

**Light, dark or automatic — for each user**

* Every CRM user picks their own look in Settings → My preferences: Automatic (follows the computer or phone), Light or Dark
* Switch any time with the theme button in the top bar — it changes instantly and is remembered for that user only

**Import / export**

* CSV import with column matching, duplicate handling (update or skip), comma/semicolon/tab detection and Excel encodings (including Greek)
* CSV export of everything, a filtered list, a segment or selected clients

**Virtual Solutions Client CRM Pro** adds a drag-and-drop custom field builder (16 field types, your own sections, hiding built-in fields, custom fields as list columns, in search, in CSV files, in email personal tags and as key dates), email templates, scheduled emails, open & click tracking, repeating appointments, automatic reminder emails to clients and calendar sync with Google, Apple and Outlook. The “Go Pro” button in Client CRM opens a full Free vs Pro comparison.

Pro's plans and the full Free vs Pro comparison are on our store: [wp.virtualsolutions.gr/virtual-clients-crm](https://wp.virtualsolutions.gr/virtual-clients-crm/)

Virtual Solutions Client CRM is made by Virtual Solutions: [virtualsolutions.gr](https://virtualsolutions.gr/)

== Installation ==

1. In WordPress, go to Plugins → Add New Plugin, search for “Virtual Solutions Client CRM” and click Install Now (or upload the `virtual-solutions-client-crm` folder to `/wp-content/plugins/`).
2. Activate the plugin. A short setup wizard opens (you can skip it), then the Client CRM dashboard.
3. Add your first client, import a CSV, or (with WooCommerce) go to Client CRM → Settings → WooCommerce and click “Run sync”.

Administrators and WooCommerce shop managers get access through the `manage_vclients` capability.

== Frequently Asked Questions ==

= Does it need WooCommerce? =

No. Everything works without it. When WooCommerce is active, the shop features switch on automatically.

= Where is my data stored? =

In your own WordPress database, in tables starting with `wp_vclients_` (with your site's table prefix), and client files in a private folder in `wp-content/uploads`. Client CRM never sends your client data to us or to any other service; it only leaves your site when you send an email, export a file or connect a calendar app (Pro).

= Does Client CRM send anything to you? =

Only if you agree. The setup wizard, Settings → Data and a one-time question on the dashboard let a site administrator switch on usage statistics; it is off until then. Once a week Client CRM then sends general statistics that help us decide what to improve: some of your setup answers (country, language, currency, industry, team size, your word for clients), rough ranges of how much you use the CRM, which features are on, and software versions — see “External services” for the full list. Your clients, your business name, email and phone, your team and your site address are never sent. Settings → Data shows the exact report and lets you switch it off anytime.

= Can I translate Client CRM or change its wording? =

Yes. The text domain is `virtual-solutions-client-crm` (Pro: `virtual-clients-crm-pro`) and the template is `languages/virtual-solutions-client-crm.pot`. Use a wordpress.org language pack, Loco Translate, or a `.mo` file in `wp-content/languages/plugins/` (for example `virtual-solutions-client-crm-de_DE.mo`). For other languages choose Settings → General → Language → “Same as WordPress”. A translation for English (`en_US`) or Greek (`el`) changes the wording in that language. The built-in guide: Settings → General → “Download the help text to translate”, then save your translation as `wp-content/languages/virtual-solutions-client-crm/help-de_DE.json` (or `help-de.json`).

= What happens when I delete the plugin? =

Nothing is deleted unless you turn on Settings → Data → “Delete all CRM data when the plugin is deleted”.

= What happens if I lose the encryption key? =

The key is stored locked with your site’s secret keys (the “salts” in wp-config.php). If those change, for example when a site is moved without its wp-config.php or a security plugin renews them, Client CRM locks and asks for your recovery key. Paste it and everything works again. Without the key and the recovery key the encrypted data can’t be read by anyone, including you, so keep the recovery key somewhere safe away from the website.

= Does encryption stop every attack? =

No. It protects your clients when a copy of the database or a database backup gets out. Someone who takes over the whole website (its files and its database) can read client data, and someone who signs in with a CRM user's password sees what that user may see; the activity log and its alerts help you notice and stop that.

= Does encryption protect WooCommerce orders? =

No. It covers the data Client CRM keeps. WooCommerce keeps its own copy of customer details in its orders.

== Developers ==

* `vclients_client_fields` / `vclients_client_sections` — register fields and sections
* `vclients_industry_packs` — add or change industry packs
* `vclients_client_saved`, `vclients_client_deleted`, `vclients_activity_added`, `vclients_task_saved` — actions
* `vclients_statuses`, `vclients_sources`, `vclients_list_columns`, `vclients_csv_columns`, `vclients_nav_items` — filters
* `vclients_client_sidebar` — add cards to the client card sidebar
* `vclients_default_theme` — look for users who haven’t picked one (auto, light or dark)
* `vclients_mail_route` (`own` or `wordpress`), `vclients_mail_plugins`, `vclients_mail_blocked` — how Client CRM sends email; `vclients_phpmailer_init` — adjust Client CRM's own mail connection (it never uses WordPress's shared one)
* `vclients_usage_endpoint` filter or `VCLIENTS_USAGE_ENDPOINT` constant — where the optional usage statistics go (an empty value sends nothing)
* `vclients_help_topics` — change or add help topics (receives the topics and the locale they are shown in)
* `vclients_translation_files` — the translation files loaded when Client CRM speaks another language than WordPress (e.g. Greek on an English site), most important first

== External services ==

Virtual Solutions Client CRM can send usage statistics to a service run by Virtual Solutions, the makers of Client CRM, to help decide what to improve. **It is off by default** and only starts after a site administrator ticks “Help improve Client CRM” on the last step of the setup wizard, switches on “Share usage statistics” in Settings → Data, or answers “Yes, share” to the one-time question on the Client CRM dashboard. It stops as soon as it is switched off, and when the plugin is deactivated or deleted.

* **When:** once a week, in the background (WP-Cron).
* **What is sent:** a random ID made on your site when sharing is switched on (switching off forgets it); the Client CRM version and the Client CRM Pro version if it is active; some of your setup answers — country, Client CRM language, currency, industry and other industry packs, team size and the word you use for clients; rough ranges of how many clients, tasks, appointments, tags, segments, sent emails, CRM users and custom roles you have, and of how long ago Client CRM was installed; whether the setup wizard was finished, skipped or hidden, and whether sample clients are in; which features are on (encryption, security alerts, WooCommerce sync, the daily email, how emails are sent); the versions of WordPress, PHP, the database and WooCommerce, WordPress's language, whether it is a multisite and the environment type (production, staging, development or local).
* **What is never sent:** your clients or anything else kept in the CRM, your business name, email, phone or logo, your users and team, and your site address. The request doesn't carry WordPress's usual user agent, which names the site.
* **Where to:** https://europe-west1-wp-crm-34828.cloudfunctions.net/usageStats — the Client CRM statistics service, run by Virtual Solutions on Google Cloud (Firebase) in the EU (Belgium). Reports are kept for 24 months, and IP addresses aren't stored with them.
* **Terms of service:** https://wp.virtualsolutions.gr/legal/terms/ — **Privacy policy:** https://wp.virtualsolutions.gr/legal/privacy/

Settings → Data → Usage statistics shows the exact report before anything is sent.

== Screenshots ==

1. The dashboard: the coming appointments, open tasks, pipeline value and new clients per month.
2. The client list with status tabs, search, filters, tags and your choice of columns.
3. A client card: contact details, activity timeline, tasks, appointments and key dates in one place.
4. One calendar for appointments, tasks, key dates and birthdays, with month, week, day and list views.
5. Tasks and reminders, grouped by overdue, today and upcoming.
6. Emails to all clients, a group or one client, with marketing consent and an unsubscribe link built in.
7. Encryption of client data in Settings → Security.
8. The setup wizard fits the client card to your kind of business, with 33 free industry packs.
9. Light, dark or automatic look for each user: a client card in dark mode.

== Changelog ==

= 1.0.0 =
* First release: client cards with 33 free industry packs, emails and newsletters, a calendar with appointments, tasks and reminders, team roles and permissions, encryption of client data with an activity log, WooCommerce sync, CSV import and export, and a built-in help center, in English and Greek and ready for translation into any language.
