Security and data protection Your data.
Hosted in Québec.
Hosted in Québec, Canada. Daily backups encrypted with a key I do not keep on the server. A separate database for every client. Two-factor authentication mandatory on every account. What I do, described plainly.
Hosting in Québec
The server is in a datacentre in Québec, Canada, behind a CDN and a web application firewall. Payment, email delivery and site protection rely on providers that may process data outside Canada; they are named in the Privacy Policy.
- Datacentre: Québec, Canada
- HTTPS on every connection (TLS 1.2 / 1.3)
- Geo-blocking on public pages: North America + EU only
- External uptime monitoring every 5 minutes
Protecting your clients' information
Tools built into the CRM to manage the personal information you hold about your clients.
- Per-channel consents on every contact (email, SMS, phone), dated
- Consent flag for marketing campaigns
- Change log on your records: who changed what, and when
- Excel or CSV export of your contacts and companies
Electronic signature
Designed around the principles of Quebec's LCJTI: who signed, their explicit consent, and a timestamped proof emailed to the signer. What the LCJTI says, article by article
- Unique 256-bit link per signer, no account needed
- Proof PDF: timestamp, IP address, browser, SHA-256 fingerprints
- Rate-limited: 30 views / 5 submissions per minute per IP
- Single-use: once signed, the link cannot sign again
Two-factor authentication — mandatory
One-time codes from any standard authenticator app. Mandatory on every account — like your bank, but for your CRM.
- Google Authenticator, Microsoft, Bitwarden, Authy, 1Password
- 8 single-use recovery codes
- Fixed 14-day period to set it up
- Lost device: recovery codes
Encrypted backups
Daily backups on three levels, encrypted before they leave the server. The passphrase is kept outside the hosting infrastructure.
- Daily encrypted database backups (AES-256)
- 7 days on the server + 30 days in an Ontario datacentre
- 40-character passphrase kept outside the hosting infrastructure
- Restore procedure documented and tested
One database per client
Each client has its own database, with its own credentials limited to that database. Checked in an internal audit.
- Dedicated database + dedicated credentials per client
- 32-character random passwords
- Automated cross-client access tests
- A separate application instance per client
Things I do without advertising them.
- Automated dependency vulnerability scans (Composer audit + Dependabot)
- Monthly automated kernel patches + reboot
- Weekly security report sent to the administrator
- Daily OS security updates applied automatically
- Web application firewall + geo-blocking on public pages
- External uptime monitoring every 5 minutes
- Additional access protection on admin surfaces (one-time PIN)