Activity Log
Track every action performed within your organization for security, compliance, and accountability.
Overview
The Activity Log keeps a complete record of everything that happens in your organization. Every time a team member invites a colleague, changes a subscription plan, or performs any other significant action, it is automatically recorded.
This gives you full visibility into who did what and when — helping you maintain security, ensure compliance, and quickly investigate any issues.
Accessing the Activity Log
Navigate to Settings > Activity Log in your organization dashboard.
Only organization Owners and Admins can view the Activity Log. Regular members do not have access to this page.
The org-wide Activity Log page is a Pro feature. Entries are recorded on every plan, so the task activity tab, client and project history, and the dashboard's recent activity work everywhere. After an upgrade to Pro, the page shows the history from before the upgrade.
Using the Activity Log
Searching
Use the search bar at the top to find specific entries by action name or description. For example, search for a team member's name to see all actions they performed, or search for "deleted" to find all deletion events.
Filtering by Category
Click the Category filter to narrow results by type of activity:
| Category | What it tracks |
|---|---|
| Members | Inviting, joining, removing members and changing roles |
| Organization | Updating organization settings (name, logo) |
| API Keys | Creating and revoking API keys |
| Subscription | Plan changes, cancellations, reactivations, seat updates, and provisioning |
| Projects | Creating, updating, and deleting projects and project members |
| Clients | Creating, updating, and deleting clients |
| Client portal | Inviting, re-sending invites to, accepting invites of, and revoking client contacts |
| Workspaces | Workspace and stage configuration changes |
| Task Types | Managing the organization's task type registry |
| Client Task Types | Managing the task types shown to clients in the portal |
| Tags | Managing the organization's tag registry |
| Tasks | All task, subtask, comment, attachment, time entry, and timer activity |
| Comment Images | Images pasted into and removed from task or subtask comments |
| Weekly Summary | Weekly digest emails delivered to members |
| Feedback | In-app feedback submissions emailed to the team |
Categories are automatically generated based on actual activity in your organization. If your team has never used API keys, for example, the "API Keys" category will not appear in the filter.
Filtering by Date
Use the Date filter to view activity within a specific time range:
- Today — actions from the current day
- This week — actions since the beginning of the week
- This month — actions since the beginning of the month
- Older — actions from more than a month ago
Sorting
Click the Action or Date column headers to sort results in ascending or descending order. By default, the most recent entries are shown first.
Tracked Actions
Below is a complete list of all actions that are automatically recorded in the Activity Log.
Members
| Action | When it is recorded |
|---|---|
| Member Invited | An invitation email is sent to a new team member |
| Member Joined | A member accepts an invitation and joins the organization |
| Member Removed | A member is removed from the organization |
| Member Role Changed | A member's role is changed (e.g., from "Member" to "Admin") |
| Invitation Cancelled | A pending invitation is cancelled before being accepted |
Organization
| Action | When it is recorded |
|---|---|
| Organization Created | The organization is created |
| Organization Updated | The organization name or logo is changed |
| Organization Slug Changed | The organization's URL slug is changed |
| Organization Deleted | The organization is permanently deleted |
| Demo Data Generated | A platform admin seeds the organization with sample demo data |
| Feature Enabled | A platform admin switches an organization feature (such as Invoicing) on |
| Feature Disabled | A platform admin switches an organization feature off; its data is kept |
| Organization Portal Settings Updated | An owner or admin turns "Accept client requests" on or off (the metadata holds the previous and new values) |
API Keys
| Action | When it is recorded |
|---|---|
| API Key Created | A new API key is generated |
| API Key Revoked | An existing API key is revoked |
User Preferences
| Action | When it is recorded |
|---|---|
| User Locale Changed | A member changes the interface language from the user menu |
Subscription & Billing
| Action | When it is recorded |
|---|---|
| Subscription Canceled | A subscription is set to cancel at the end of the billing period |
| Subscription Reactivated | A previously canceled subscription is reactivated |
| Plan Changed | The subscription plan is upgraded or downgraded |
| Seats Updated | The number of seats in the subscription is changed |
| Subscription Provisioned | The Gipo team puts the organization on Pro with a custom discount and trial |
Projects
Subordinate project events (comments, attachments) record the project id as the resource so the project's Activity tab picks them up automatically. Comment-family events are kept out of that history (comments live in the Comments tab).
| Action | When it is recorded |
|---|---|
| Project Created | A new project is added to the organization |
| Project Updated | A project's fields (name, description, client, status, dates) are changed |
| Project Moved | A project is dragged to another status column on the board (and reordered) |
| Project Deleted | A project is permanently deleted |
| Project Member Added | A team member is added to a project |
| Project Member Removed | A team member is removed from a project |
| Project Member Role Updated | A project member's role (manager vs. standard) is changed |
| Project Commented | A comment is posted on a project |
| Project Comment Updated | A project comment is edited by its author |
| Project Comment Deleted | A project comment is removed (by the author, an org admin, or a project manager) |
| Project Attachment Added | A file is uploaded to a project |
| Project Attachment Removed | A file is removed from a project |
| Project Comment Image Added | An image is pasted into a project comment and uploaded |
| Project Comment Image Removed | A pasted project-comment image is deleted from storage |
Clients
Subordinate client events (comments, attachments) record the client id as the resource so the client's Activity tab picks them up automatically. Comment-family events are kept out of that history (comments live in the Comments tab).
| Action | When it is recorded |
|---|---|
| Client Created | A new client is added to the organization |
| Client Updated | A client's name, description or image is changed |
| Client Deleted | A client is permanently deleted (the metadata contactCount holds how many portal contacts were deleted with it) |
| Client Commented | A comment is posted on a client |
| Client Comment Updated | A client comment is edited by its author |
| Client Comment Deleted | A client comment is removed (by the author or an org admin) |
| Client Attachment Added | A file is uploaded to a client |
| Client Attachment Removed | A file is removed from a client |
| Client Comment Image Added | An image is pasted into a client comment and uploaded |
| Client Comment Image Removed | A pasted client-comment image is deleted from storage |
Client portal
Client contact events record the contact id as the resource and the client id in the metadata.
| Action | When it is recorded |
|---|---|
| Client Contact Invited | A person is invited to a client's portal, or a revoked contact is invited again |
| Client Contact Invite Resent | A pending or expired portal invite is sent again with a new link |
| Client Contact Accepted | An invited person opens the invite link, or accepts the invite from their personal page, and gets portal access (the actor is the contact) |
| Client Contact Permission Updated | An owner or admin turns a contact's "Can open requests" permission on or off (the metadata holds the previous and new values). An invite records the permission in its own metadata |
| Client Contact Revoked | A contact's portal access ends. The metadata reason is manual (an owner or admin revoked it), member_joined (the person joined the organization as a member; the actor is that person) or account_deleted (the person deleted their account; no actor) |
| Project Portal Updated | A project's portal switch, add-ons, "New tasks start visible", "Progress display" or Client requests setting (switch, workspace, entry stage, default assignee) changes (the metadata holds the previous and new values). Deleting the request workspace or entry stage turns the requests switch off with the metadata reason request_workspace_deleted or request_stage_deleted |
| Project Portal Reset | A project's portal switch turns off because its client changed or was deleted (the metadata holds the previous and new switch values and the old and new client ids) |
| Project Client Update Edited | A project's client update note changes (the metadata holds the text length only) |
| Task Client Visibility Changed | Tasks are shown or hidden in the client portal (one entry per project; the metadata holds the project id, the new value and, for a bulk change, the count) |
Workspaces
| Action | When it is recorded |
|---|---|
| Workspace Created | A new workspace is added to the organization |
| Workspace Renamed | A workspace's name is changed |
| Workspace Deleted | A workspace is permanently deleted (only when empty) |
| Stage Added | A new stage column is added to a workspace |
| Stage Renamed | A stage is renamed |
| Stage Finalizing Updated | A stage is flagged or unflagged as the finalizing stage |
| Stage Client Status Updated | The Client status a stage maps to is set or removed. Records the previous and the new status |
| Stages Reordered | The horizontal order of stages in a workspace is changed |
| Stage Sorted | A stage's tasks are bulk-reordered by priority or due date via the "Sort by" action |
| Stage Removed | A stage is removed from a workspace (only when empty) |
Teams
| Action | When it is recorded |
|---|---|
| Team Created | A new team is created |
| Team Renamed | A team is renamed |
| Team Deleted | A team is deleted (its project grants are removed and its members are unassigned) |
| Team Member Added | A person is added to a team |
| Team Member Removed | A person is removed from a team |
| Team Project Added | A team is granted access to a project |
| Team Project Removed | A team's access to a project is removed |
| Team Invoicing Access Changed | An owner or admin grants or revokes a team's invoicing permission. Records the previous and new values |
Task Types
| Action | When it is recorded |
|---|---|
| Task Type Created | A new task type is added to the registry |
| Task Type Updated | A task type's name or color is changed |
| Task Type Deleted | A task type is removed from the registry |
Client Task Types
| Action | When it is recorded |
|---|---|
| Client Task Type Created | A new client task type is added |
| Client Task Type Updated | A client task type's name, color, linked internal types or default internal type is changed |
| Client Task Type Deleted | A client task type is removed. Its linked internal types show no type in the portal |
Tags
| Action | When it is recorded |
|---|---|
| Tag Created | A new tag is added to the registry |
| Tag Updated | A tag's name is changed |
| Tag Deleted | A tag is removed from the registry |
Task Templates
| Action | When it is recorded |
|---|---|
| Task Template Created | A task is saved as a reusable template (fields + checklist) |
| Task Template Updated | A task template is renamed |
| Task Template Deleted | A task template is removed from the library (tasks created from it are unaffected) |
Custom Fields
| Action | When it is recorded |
|---|---|
| Task Custom Field Created | A new custom field definition is added (as a draft, with a temporary name) |
| Task Custom Field Configured | A draft custom field is finalized, locking its type |
| Task Custom Field Updated | A custom field's name, type (while still a draft), or options are changed |
| Task Custom Field Reordered | The display order of custom fields is changed |
| Task Custom Field Deleted | A custom field is removed (clearing its values from all tasks) |
Tasks
Subordinate task events (subtasks, comments, attachments) record the parent task id as the resource so the per-task activity feed picks them up automatically.
| Action | When it is recorded |
|---|---|
| Task Created | A task is added to a workspace |
| Task Updated | A task's fields (subject, project, type, dates, etc.) are changed. An automatic change to the parent's estimated hours or due date, caused by a subtask create, edit, delete or conversion to a task, is recorded with source subtaskRollup and the id and name of that subtask |
| Task Deleted | A task is permanently deleted |
| Task Assigned | A task's assignee list changes. A bulk assignee change from the task list (add, remove, or remove all) records one entry per changed task |
| Task Tags Updated | A task's tag list changes |
| Task Custom Field Set | A task's custom field value is filled or cleared |
| Task Template Applied | A template is loaded into a task, overwriting its fields and checklist |
| Task Finalized | A task is marked finalized (manually or by dropping into a finalizing stage) |
| Task Reopened | A finalized task is reopened |
| Task Blocked | A task is blocked with a reason, freezing it read-only |
| Task Unblocked | A blocked task is unblocked (with a reason) |
| Task Moved | A task moves between stages or workspaces. A bulk stage move from the task list records one entry per moved task |
| Task Exported | The task list is exported as a CSV file. Records the row count, the workspaces, the filters, the sort and the columns. Not tied to a single task, so it does not appear in any task's activity |
| Task Invoice Status Changed | A task's invoice status or invoice month is changed from the task list (or undone), or imported from the invoicing spreadsheet by a one-off script. Records the previous and new values. Shown in the task's activity only to people with invoicing access |
| Subtask Created | A subtask is added to a task |
| Subtask Updated | A subtask's name, description, estimated hours or due date is changed |
| Subtask Deleted | A subtask is removed from a task |
| Subtask Assigned | A subtask's assignee list changes |
| Subtask Finalized | A subtask is marked finalized |
| Subtask Reopened | A finalized subtask is reopened |
| Subtask Moved | A subtask is moved to another group |
| Subtask Converted to Task | A subtask is converted into a new task, carrying its comments, files and logged time |
| Task Created from Subtask | A task is created by converting an existing subtask (see Subtask Converted to Task on the source task) |
| Task Created from Duplicate | A task is created as a copy of another task (fields, custom fields and checklist — never comments, files, time or history) |
| Subtask Group Created | A subtask group is added to a task |
| Subtask Group Renamed | A subtask group is renamed |
| Subtask Group Deleted | An empty subtask group is deleted (a task always keeps at least one) |
| Task Commented | A comment is posted on a task or subtask, by a member or by a Client contact in the portal. Metadata: authorKind (member or contact); a member's comment also records mentionedContactIds, the Client contacts it mentions |
| Comment Updated | A comment is edited by its author, a member or a Client contact in the portal. On a task, a contact's edit records authorKind: contact |
| Comment Deleted | A comment is removed (by the author, an org admin, or a project manager). A contact can delete their own task comment in the portal: the row records authorKind: contact |
| Comment Visibility Changed | The author makes a task comment visible to the client or internal again. Metadata: commentId, clientVisible |
| Attachment Added | A file is uploaded to a task or subtask |
| Attachment Removed | A file is removed from a task or subtask |
| Time Logged | A time entry is created (manual or completed timer). When an admin or project manager logs on behalf of someone else, the entry records both the person it counts for and who actually logged it |
| Time Updated | A time entry is edited |
| Time Deleted | A time entry is deleted |
| Timer Started | A user starts a timer on a task or subtask |
| Timer Stopped | A running timer is stopped (manual stop, switched, or paused) |
| Timer Auto-Stopped | The 8-hour timer cap was reached and the sweeper persisted the entry |
Comment Images
Images pasted directly into a comment. They live only inside the comment (they never appear in the task's Files list) and record the parent task id, so these entries also surface in the per-task activity feed.
| Action | When it is recorded |
|---|---|
| Comment Image Added | An image is pasted into a comment and uploaded |
| Comment Image Removed | A pasted comment image is deleted from storage (draft abandoned or image removed) |
Weekly Summary
| Action | When it is recorded |
|---|---|
| Weekly Summary Sent | The weekly digest email is delivered to a member at Monday 08:00 in their timezone |
Feedback
| Action | When it is recorded |
|---|---|
| Feedback Submitted | A member sends in-app feedback (bug, feature, product, or other) to the team. Recorded only when the member has an active organization |
What Each Entry Shows
Every entry in the Activity Log includes:
- Action — a color-coded label indicating the type of action (green for creation, red for deletion, gray for updates)
- User — the avatar and name of the team member who performed the action
- Description — a human-readable summary of what happened
- Date — how long ago the action occurred (e.g., "2 hours ago", "3 days ago")
Frequently Asked Questions
Can regular members see the Activity Log?
No. Only members with the Owner or Admin role can access the Activity Log page.
How long are logs retained?
Activity logs are stored indefinitely. There is no automatic expiration or cleanup.
Can I export the Activity Log?
Export functionality is not available at this time. If you need to extract data, please contact your administrator.
Are actions from the REST API also logged?
Yes. Actions performed through the REST API (using API keys) are recorded the same way as actions performed through the dashboard.