Events
Tenant events are crucial for managing tenant security and subscriptions. Tenant events are captured and persist even after admins delete projects. On the other hand, Canopy maintains project activities in its unique project Activity History and disposes of activity history when the admin deletes the project.
Tenant admins can view Tenant level events in the Event Log by clicking on the Events tab in Tenant Settings. The Event Log displays information including event classification, type, user, date, time, and description. If more detailed information on the event is available, the Show More action will appear. When clicked, more detailed information on the event will be shown, if available.

Classes are created to logically group event types that belong to the same module or workflow in the application.
| Type | Description |
|---|---|
| Change | Changed ‘{{project_name}}’ ({{project_id}}) from {{active_type_a}} to {{active_type_b}}. |
| Create | Project ‘{{project_name}}’ ({{project_id}}) created. |
| Type | Description |
|---|---|
| Archive | Archived ‘{{project_name}}’ ({{project_id}}). |
| Error | Error {{error_message}} archiving ‘{{project_name}}’ ({{project_id}}) |
| Initiated | Archiving of ‘{{project_name}}’ ({{project_id}}) initiated. |
| Type | Description |
|---|---|
| Create | Deletion certificate created for ‘{{project_name}}’ ({{project_id}}). |
| Download | Deletion certificate downloaded for ‘{{project_name}}’ ({{project_id}}). |
| Request | Requested deletion certificate for ‘{{project_name}}’ ({{project_id}}). |
| Type | Description |
|---|---|
| Delete | Deleted ‘{{project_name}}’ ({{project_id}}). |
| Type | Description |
|---|---|
| Email Send | Error sending email. Class: {{class}} Type: {{type}} Email Address: {{email}} Response: {{ResponseMetadata}} |
| Type | Description |
|---|---|
| Create | Access restriction {{restriction_name}} created. Name: {{user}} IP Address Range: {{addresses}} Domain: {{domain}} Role: {{role}} |
| Delete | Access restriction {{restriction_name}} deleted. Name: {{user}} IP Address Range: {{addresses}} Domain: {{domain}} Role: {{role}} |
| Modify | Access restriction {{restriction_name}} modified. New Restriction Name: {{user}} IP Address Range: {{addresses}} Domain: {{domain}} Role: {{role}} Old Restriction Name: {{user}} IP Address Range: {{addresses}} Domain: {{domain}} Role: {{role}} |
| Restrict | User restricted from accessing the application from {{ip_address}} by access restriction {{restriction_name_link}}. Name: {{user}} IP Address Range: {{addresses}} Domain: {{domain}} Role: {{role}} |
Logs MFA one-time passcode email delivery details.
Email OTP

| Type | Description |
|---|---|
| Email OTP | Subject: Canopy Multifactor Authentication Code From: {{from_email}} To: {{to_email}} Message ID: {{MessageId}} |
Records password reset request and reset confirmation email activity.
Request Email

Reset Email

| Type | Description |
|---|---|
| Request Email | Subject: Reset Your Canopy Password From: {{from_email}} To: {{to_email}} Message ID: {{MessageId}} |
| Reset Email | Subject: You’ve Successfully Set Your Canopy Password From: {{from_email}} To: {{to_email}} Message ID: {{MessageId}} |
| Type | Description |
|---|---|
| Error | Error {{error}} restoring ‘{{project_name}}’ ({{project_id}}) to an active {{active_type}} project. |
| Request | Restoration requested for ‘{{project_name}}’ ({{project_id}}) to an active {{active_type}} project. |
| Restore | Restored ‘{{project_name}}’ ({{project_id}}) to an active {{active_type}} project. |
| Type | Description |
|---|---|
| Create | Created {{template_type}} template {{template_name}} ({{template_id}}). |
| Deleted | Deleted {{template_type}} template {{template_name}} ({{template_id}}). |
| Edit | Edited {{template_type}} template {{template_name}} ({{template_id}}). |
Audits user lifecycle and security events including add/update/delete, lockouts, MFA/password failures, and password reset controls.
Create Email

Add Tenant Email

| Type | Description |
|---|---|
| Added | Account added by {{admin_email}}. Name: {{name}} Email: {{email}} Company Name: {{company}} Role: {{role}} Add Users Privilege: {{can_add_users}} |
| Create Email | Subject: {{subject}} From: {{from_email}} To: {{to_email}} Message ID: {{MessageId}} |
| Deleted | Account deleted by {{admin_email}}. Name: {{name}} Email: {{email}} Company Name: {{company}} Role: {{role}} Add Users Privilege: {{can_add_users}} |
| Disabled (Inactive) | Account disabled after {{count}} days of inactivity. |
| Disabled (Lockout) | Login attempts exceeded; account disabled. |
| Disabled (Suspended) | Account suspended by {{admin_email}}. |
| Enabled | Account enabled by {{admin_email}}. |
| MFA Authentication Failure | Multi-factor authentication challenge failed. |
| Password Authentication Failure | Password authentication challenge failed. |
| Password Reset Request (Admin) | Password reset request by {{admin_email}}. |
| Password Reset Expired | Password reset token expired (15-minute validity window exceeded). |
| Password Reset Blocked (IP Mismatch) | Password reset attempt rejected: Originating IP address does not match the request initiator. |
| Password Reset Blocked (Replay Attack) | Password reset attempt rejected: Token has already been consumed (Replay Protection). |
| Password Reset Request (User) | Password reset request by user. |
| Add Tenant Email | Subject: {{subject}} From: {{from_email}} To: {{to_email}} Message ID: {{MessageId}} |
| Updated | Account updated by {{admin_email}}. Name: {{name}} Email: {{email}} Company Name: {{company}} Role: {{role}} Add Users Privilege: {{can_add_users}} |