Secure Messages for Perfex CRM
Version: 1.0.0
Author: Cloudmill
Support:
1. Introduction
Secure Message is a high-security extension for Perfex CRM that allows you to safely share sensitive information such as passwords, login credentials, API keys, or private notes.
Unlike traditional messaging systems, this module uses Zero-Knowledge AES-256 encryption. All encryption happens directly in the user's browser, which means the server never receives or stores the original plaintext message.
Only an encrypted version of the message is stored in the database, ensuring that sensitive data remains protected at all times.
This approach significantly reduces the risk of data leaks or unauthorized access.
2. Installation
Follow these steps to install the module in Perfex CRM.
Step 1 – Download
Download the module ZIP file from CodeCanyon.
Step 2 – Upload the Module
Log in to your Perfex CRM Admin Panel and navigate to: Setup → Modules
Click Upload Module and select: secure_messages.zip
Step 3 – Activate the Module
After uploading, click Activate to enable the module.
Step 4 – Configure Permissions
Navigate to: Setup → Staff → Permissions
Enable the Secure Messages permission for the staff members who should be allowed to create and manage secure messages.
3. Data Destruction & Security
The module is designed to ensure that sensitive information does not remain stored longer than necessary.
Two independent mechanisms ensure automatic data removal.
Burn-After-Reading
When the Burn-After-Reading option is enabled:
-
The recipient opens the secure message.
-
The message is decrypted locally in the browser.
-
Once the message is opened, the encrypted record is immediately deleted from the database.
This ensures that the message can only be viewed once.
Automated Expiration via Cronjob
Messages that are not configured for burn-after-reading are automatically removed using the Perfex CRM Cronjob system.
The system performs the following actions:
-
The module stores an expiration timestamp when the message is created.
-
The Perfex Cronjob runs.
-
During each Cronjob execution, the module scans the database for expired messages.
-
Any message whose expiration time has passed is permanently deleted from the database.
Cronjob Requirement
Your Perfex CRM Cronjob must be configured correctly on the server. This ensures that expired secure messages are removed automatically and the database remains clean.
4. How the Encryption Works
The module follows a Zero-Knowledge security model, meaning the server never has access to the decryption key.
The process works as follows:
Step 1 – Client-Side Encryption
When a user creates a secure message, JavaScript encrypts the message using AES-256 encryption directly in the browser.
Step 2 – Server Storage
Only the encrypted message blob is sent to the server and stored in the database.
The decryption key is never stored on the server.
Step 3 – Secure Link
The decryption key is embedded in the URL fragment, for example:
https://example.com/secure-message/abc123#decryptionkey
Everything after the # symbol is never transmitted to the server and only exists in the recipient's browser.
Step 4 – Decryption
When the recipient opens the link:
-
The browser extracts the key from the URL fragment.
-
The encrypted message is fetched from the server.
-
The browser decrypts the message locally.
Step 5 – Cleanup
When the message is read or when it expires, the encrypted data is permanently removed from the database.
5. Configuration
You can configure the module defaults via: Secure Messages → Settings
Available configuration options include:
Default Expiration
Set the default lifetime for messages.
Available options:
-
1 day
-
3 days
-
7 days
-
30 days
-
Never expire
Default Self-Destruction
Define the default behavior for new messages:
-
Burn After Reading
-
Time-based Expiration
Cronjob Integration
No additional configuration is required.
The module automatically hooks into the Perfex CRM Cronjob system using the after_cron_run action to perform cleanup tasks.
6. Changelog
Version 1.0.0 – March 2026
Initial release.
Features include:
-
Client-side AES-256 encryption
-
Zero-Knowledge architecture
-
Burn-after-reading secure messages
-
Automatic Cronjob cleanup for expired messages
-
Support for 20+ languages, including:
- Brazilian Portuguese
- Bulgarian
- Canadian French
- Catalan
- Chinese
- Czech
- Dutch
- English
- Finnish
- French
- German
- Greek
- Indonesia
- Italian
- Japanese
- Norwegian
- Persian
- Polish
- Portuguese
- Romanian
- Russian
- Slovak
- Spanish
- Swedish
- Turkish
- Ukrainian
- Vietnamese
7. Support
If you encounter any issues or need help with installation, configuration, or usage, please contact: