Happy Dog CRM — Knowledge Base
Happy Dog CRM

Happy Dog CRM

A lightweight, self-hosted Customer Relationship Management application built for small pet-service businesses. Manage customers, schedule appointments, send emails, and export reports, all from one place.

🆕 Version 2.0.8

🆕 New in Version 2.0.8

🆕 New in Version 2.0.7

🆕 New in Version 2.0.6

🆕 New in Version 1.90

💾 Installation

ℹ️ Happy Dog CRM ships as a standard Windows installer (HappyDogCRM-windows-setup.exe). Run it and the setup wizard installs the application, creates Start Menu shortcuts, and can launch the app for you when it finishes.

System Requirements

RequirementMinimumRecommended
Operating SystemWindows 10 (64-bit)Windows 11
RAM256 MB free512 MB free
Disk Space200 MB500 MB (including data)
NetworkNone (offline capable)For SMTP email sending
Browser (localhost mode)Any modern browserChrome / Edge

Installation Steps

1
Run the installer

Double-click the downloaded HappyDogCRM-windows-setup.exe and approve the Windows administrator prompt (the app installs to Program Files).

2
Follow the setup wizard

Tick Create a desktop icon if you want one, then click Install. The app is placed in C:\Program Files\HappyDogCRM\ with Start Menu shortcuts created automatically.

3
Launch and choose your mode

Leave Launch Happy Dog CRM checked on the final wizard page (or start it any time from the Start Menu). Press 1 for a native desktop window (recommended) or 2 to open in your default web browser.

4
Sign in with the default credentials

Username: admin   Password: HappyCRM

⚠️ Change the admin password after your first login. Go to the Settings cog ⚙User SettingsChange Password.

Command-Line Options

You can pass flags directly to the executable (installed at C:\Program Files\HappyDogCRM\HappyDogCRM.exe) to skip the interactive prompt:

HappyDogCRM.exe                     # interactive prompt (default)
HappyDogCRM.exe --mode webview      # desktop window via pywebview
HappyDogCRM.exe --mode localhost    # open in default browser
HappyDogCRM.exe --mode localhost --port 8080   # custom port

🚀 First Launch

On first run, Happy Dog CRM automatically:

✓ Your data is stored in %APPDATA%\HappyDogCRM\ and will persist across application updates. The database is never deleted when you update or reinstall the executable.

🔐 Default Login Credentials

🔐 Administrator Account
FieldValue
Usernameadmin
PasswordHappyCRM
RoleAdmin

To change the default credentials at startup, set environment variables before launching:

set ADMIN_USERNAME=myadmin
set ADMIN_PASSWORD=MySecurePass123
HappyDogCRM.exe

☷ Dashboard

The Dashboard provides a live overview of your business at a glance:

Total Contacts
Count of all customer records in the database.
Upcoming Appointments
Scheduled appointments from today onward.
Pipeline Value
Total price of all upcoming Scheduled appointments.
Completed Revenue
Sum of prices from all Completed appointments.

The dashboard also shows your next 5 upcoming appointments and your 4 most recently added customers.

Complete a visit & book the next one

Click any row in Today's Schedule to open the appointment, then:

1
Mark Complete

Records the visit as done and adds its price to the customer's lifetime value.

2
Book their next appointment

A follow-up screen appears pre-filled to match the customer's usual day, time, and visit frequency. Pick how many weeks out (it snaps to their usual day), adjust if needed, and book — or choose No thanks.

☺ Customers

The Customers module stores all client information including:

Customer Statuses

StatusMeaning
LeadInitial contact, not yet engaged
ProspectIn conversation, evaluating services
ActiveCurrent paying customer
ChurnedFormer customer, no longer active

Lifetime Value (LTV)

LTV is not directly editable to preserve accuracy. It is updated in two ways:

Schedule & Calendar

Manage appointments for your customers. Each appointment has:

List Views

Three list tabs let you filter by time range:

Each list view also supports filtering by Type and Status.

Calendar View

Click the Calendar tab to switch to the monthly calendar view.

🔔 Reminders & Alerts

Happy Dog CRM can automatically remind your customers about upcoming appointments by text message or email, and can send an alert the moment an appointment is booked. Everything is set up from inside the application — no typing of commands is required.

Appointment Alerts (when booking)

On the New Appointment screen, pick a customer and their address, phone, and email appear automatically. Tick either box before saving:

Automated Reminders (before the appointment)

1
Open Settings › Messaging (Text SMS)

Choose how messages are sent: Vonage or Twilio for text messages, or email.

2
Turn on "Enable Automated Reminders"

Set how many hours before the appointment the reminder should go out, and edit the message wording if you like.

3
Save

From now on, every appointment you book automatically schedules a reminder.

Editing an appointment updates its reminder; deleting or cancelling it removes the reminder. On the Appointments page, Send Reminders Now sends any due reminders immediately.

Sending while the app is closed — the Background Helper

Reminders and Web Intake are placed in a queue and handled by a small background helper. Installing the helper lets them run on schedule even when the Happy Dog CRM window is closed.

1
Say “Yes” when you first open Happy Dog CRM

The first time you launch the app it asks “Install the Happy Dog CRM background service?” — click Yes and the helper is set up automatically, then quietly sends due reminders and picks up new intake every few minutes.

2
Changed your mind later?

The helper's scripts live in the service folder inside your data folder (%APPDATA%\HappyDogCRM\service). Double-click install_service.bat there to add it, or uninstall_service.bat to remove it.

⚠️ Keep the same Windows user signed in. The helper runs under the Windows account that installed it and shares that account's Happy Dog CRM data, so reminders send while that user is logged in on the machine.
ℹ️ If you do not install the helper, reminders and alerts are still queued — use Send Reminders Now on the Appointments page to send them while the app is open.

Emails

The Emails module allows you to:

ℹ️ Email sending requires SMTP to be configured. See the SMTP Email Setup section. Without SMTP configured, emails are logged to the console only (mock mode).

📥 Web Intake (QR Sign-up)

Web Intake lets new clients add themselves. You display a QR code (on a flyer, your window, or a business card). Scanning it opens the customer's email app, already addressed to you with the subject filled in and a short template in the message (Name, Email, Phone, Address, Dog name, Dog breed, Preferred days, Preferred times, Notes). They fill it in and hit send. Happy Dog CRM checks your inbox and lists each new email under the Intake menu, where you review it and either Approve (which adds the customer and their dog) or Dismiss it. No website or sign-up form is involved — it's just email.

ℹ️ Nothing is added automatically. Every submission waits for your approval, so spam or mistakes never become customers on their own. Your computer never needs to be reachable from the internet — submissions come in through your ordinary email inbox.

One-time setup

1
Open Settings › Web Intake

Click the gear icon, then choose Web Intake from the left menu.

2
Turn on “Enable web intake”

Tick the checkbox at the top of the page.

3
Enter your intake mailbox (IMAP)

This is the email account that will receive submissions. Fill in the Host, Port, Username, and Password. As with SMTP, most providers require an App Password. Leave Folder as INBOX and Security as SSL/TLS (port 993) unless your provider says otherwise.

Shortcut: if submissions come to the same address you already send from, click “Use my SMTP settings” at the top of the page. It copies the username and password from your SMTP settings and fills in the matching host (for example smtp.gmail.comimap.gmail.com). Check the host looks right for your provider, then Save.

4
Set your intake email address

The address the QR code writes to — the one customers email. Leave blank to use the IMAP username. The Subject Tag ([HDCRM-INTAKE] by default) is what the app looks for, so only tagged emails are read.

5
Save, then test

Click Save Web Intake Settings, then Check mailbox now to test the connection.

6
Share your QR code

The page shows your QR code and the address it emails. Click Print QR Code to print a ready-to-post sign — choose whether your company logo, your company name, or nothing (QR only) appears above the code. Customers can also just email that address with the subject tag by hand.

7
Install the Background Helper (recommended)

So the mailbox is checked automatically even when the app is closed, make sure the background helper is installed — the app offers this the first time you open it (the same helper used for reminders).

Common IMAP servers

ProviderIMAP HostPortSecurity
Gmailimap.gmail.com993SSL/TLS
Outlook.com / Microsoft 365outlook.office365.com993SSL/TLS
Yahoo Mailimap.mail.yahoo.com993SSL/TLS

Reviewing submissions

New submissions appear under Intake in the sidebar (with a red count badge). For each:

⚠️ Web Intake reads only messages that carry its subject tag ([HDCRM-INTAKE] by default), so it won't disturb the rest of your inbox.

☍ Reports & Exports

Export any dataset as a CSV file compatible with Excel and Google Sheets. Clicking Export saves the file into your Downloads folder and shows you the file name; open it from there.

DatasetContents
CustomersAll customer records including address and dog details
AppointmentsAll scheduled appointments with customer names
EmailsSent email log with subjects and delivery status
Dog BehaviorsReference table of behavior categories

Use the Preview button to review data in the browser before downloading. Filters for status and date range are available on the Customers and Appointments datasets.

⏰ Time Clock

The Time Clock module lets staff track work hours directly within Happy Dog CRM.

Clocking In and Out

1
Clock In

Click Clock In on the Time Clock page. Optionally add a note (e.g. task description). Your session start time is recorded immediately.

2
Clock Out

Click Clock Out when done. Duration is automatically calculated in minutes. You can optionally add or update your shift note.

Viewing Time Entries

ℹ️ Time entries can be exported from Reports & Exports as a CSV under the Time Entries dataset.

👤 User Management

Administrators can manage user accounts from the Users page.

Roles

RoleCapabilities
Admin Full access: manage all users, view all data, configure SMTP and settings
User Access to Customers, Schedule, Emails, Reports. Cannot manage users or SMTP settings.

Managing Users

1
Create a user

Go to Users page and click New User. Set username, display name, password, and role.

2
Change a password

Admins can reset any user's password. Users can change their own from Settings ⚙User Settings.

3
Deactivate a user

Edit the user and uncheck Active. Deactivated users cannot log in but their data is preserved.

⚙ Settings

Access the Settings page by clicking the cog icon ⚙ in the top-right corner of any page.

SectionWho can accessDescription
User Settings All users Update display name; link to change password
SMTP Settings Admins only Configure outbound email server (host, port, credentials)
Text Settings Admins only Default email signature and welcome message placeholders
Application Preferences Admins only Turn the login screen on, turn the Time Clock on, edit the service types
Web Intake Admins only Intake mailbox, subject tag, and your QR code (with a printable sign)
Background Service Admins only Install/remove the helper that sends reminders while the app is closed
Update Admins only Shows your version and checks for a newer one

Background Service — where is it?

Open SettingsBackground Service to see whether the helper is installed, and to Install, Remove, or Run now — no command line needed.

ℹ️ It is a Scheduled Task, not a Windows Service, so it will not appear in services.msc. It runs for about a second every 5 minutes and exits, so you'll rarely see it in Task Manager. To find it outside the app, open Task Scheduler (taskschd.msc) and look for HappyDogCRM Message Service.

Turning the login screen on

Happy Dog CRM opens straight to the Dashboard — there is no login screen out of the box. That suits the usual setup: one computer at the front desk, used by the people who work there. The app only listens on that computer and is not reachable from the internet.

If more than one person uses the machine and you want separate accounts and a sign-in, open SettingsApplication Preferences and untick Disable login.

⚠️ Check your password before you turn login on. A new install's admin account is admin / HappyCRM — the same on every install, so anyone could look it up. That page shows you the current sign-in and tells you whether it is still the default. Change it under Settings › Users, then turn the login screen on. If you switch it on without knowing the password, you will be locked out of your own data.

Updating Happy Dog CRM

Open SettingsUpdate. It shows the version you're running and a Check for Updates button that asks the Happy Dog Software site whether a newer release is out. If there is one, download it and run the installer over your existing install.

Updating keeps everything. Your database, settings, and license live in your data folder (%APPDATA%\HappyDogCRM) — separate from the installed program. Installing a new version replaces only the program files, so customers, appointments, settings, and your license are all preserved.

SMTP Email Setup

To enable outbound email, configure your SMTP server in Settings ⚙SMTP Settings.

Gmail (App Password)

FieldValue
SMTP Hostsmtp.gmail.com
SMTP Port587
Usernameyouraddress@gmail.com
Password16-character App Password (not your Gmail password)
From Addressyouraddress@gmail.com

Microsoft 365 / Outlook

FieldValue
SMTP Hostsmtp.office365.com
SMTP Port587
Usernameyouraddress@yourdomain.com
PasswordYour Microsoft account password or App Password
⚠️ SMTP passwords are stored in the local SQLite database (%APPDATA%\HappyDogCRM\crm.db). Ensure the database file is protected with appropriate Windows file permissions.

Environment Variable Override

SMTP settings can also be provided via environment variables (take effect immediately, override the database values):

set SMTP_HOST=smtp.gmail.com
set SMTP_PORT=587
set SMTP_USER=you@gmail.com
set SMTP_PASSWORD=yourapppassword
set FROM_ADDRESS=you@gmail.com
set FROM_NAME=Happy Dog CRM

📄 Environment Variables

VariableDefaultDescription
ADMIN_USERNAMEadminDefault admin username (seeded on first run)
ADMIN_PASSWORDHappyCRMDefault admin password (seeded on first run)
SECRET_KEYbuilt-in dev keyFlask session secret. Set this in production
SMTP_HOSTemptySMTP server hostname
SMTP_PORT587SMTP server port
SMTP_USERemptySMTP authentication username
SMTP_PASSWORDemptySMTP authentication password
FROM_ADDRESSemptySender email address
FROM_NAMEHappy Dog CRMSender display name
⚠️ Always set SECRET_KEY to a long random string in any shared or network-accessible deployment. Without it, sessions are signed with a weak default key.

🗃 Data Storage

Database Location

When running as a packaged executable, the database is stored in:
%APPDATA%\HappyDogCRM\crm.db

This ensures your data survives application updates. To find this folder quickly, paste the path into Windows Explorer's address bar.

Backup

To back up your data, simply copy crm.db to a safe location. The database is a standard SQLite file and can be opened with any SQLite viewer (e.g., DB Browser for SQLite).

Tables in the Database

TableContents
customersCustomer records and dog details
appointmentsScheduled appointments
emailsSent email log
dog_behaviorsBehavior categories (Good, Bad, Problematic)
usersUser accounts and hashed passwords
settingsApplication settings (SMTP, text templates)

🔧 Troubleshooting

⚠️ Application won't start

Re-run HappyDogCRM-windows-setup.exe to repair the installation. Run HappyDogCRM.exe from a command prompt (in C:\Program Files\HappyDogCRM\) to see error output. Antivirus software may need to whitelist the executable.

🌐 "localhost" not loading in browser

Use http://127.0.0.1:5000 instead of localhost:5000. Windows sometimes does not resolve localhost to the loopback address. Check Windows Defender Firewall if the port is blocked.

Emails not sending

Verify SMTP credentials in Settings › SMTP Settings. For Gmail, make sure you are using an App Password, not your main password. 2-Factor Authentication must be enabled on your Google account first.

🔐 Forgot admin password

Set the ADMIN_PASSWORD environment variable to a new value, then delete the existing admin record from the database (or rename crm.db) so it gets re-seeded on next launch. Alternatively, open crm.db with DB Browser for SQLite and update the password_hash field directly.

📄 Missing python313.dll error

Everything the application needs, including this DLL, is bundled inside the single HappyDogCRM.exe installed by the setup wizard. If you see this error, re-run HappyDogCRM-windows-setup.exe to repair the installation.

📂 Port already in use

Pass a different port: HappyDogCRM.exe --mode localhost --port 8080. The application also auto-detects a free port if 5000 is busy.

❓ FAQ

Can multiple users access Happy Dog CRM at the same time?

Yes. When run in localhost mode, any computer on the same local network can access the app by navigating to http://<host-IP>:5000. Each user needs their own account created by an administrator.

Is my data sent to the cloud?

No. Happy Dog CRM runs entirely on your local machine. No data is sent externally except outbound email via your configured SMTP server.

Can I import existing customer data?

Currently there is no built-in CSV import. You can insert records directly into the SQLite database using a tool like DB Browser for SQLite.

How do I update the application?

Download and run the latest HappyDogCRM-windows-setup.exe; it upgrades the existing installation in place. Your database at %APPDATA%\HappyDogCRM\crm.db is not touched during updates.

Can I run this without an internet connection?

Yes. All features except SMTP email sending work fully offline.