FirstPromoter Activity Logs give you a full audit trail of every action taken inside your FirstPromoter account. Every time a team member, an affiliate, or an API call creates, updates, or deletes a record, that action is captured and stored as a log entry. You can use Activity Logs to investigate changes, troubleshoot unexpected behavior, and maintain accountability across your team.
Activity Logs are available on Enterprise Plan 3 and above and must be enabled on your account. Super Admins have access by default, and other team members can be granted access through custom role permissions. If you cannot see the Activity Logs section, contact support or ask your Super Admin to check your permissions.
Where to find the Activity Logs
Go to your FirstPromoter dashboard > click on your username on the top-right of the screen > Select Activity Logs from the profile dropdown menu.
What gets logged
Activity Logs capture the following types of events:
Created – a new record was added (e.g. a promoter signed up, a commission was created)
Updated – an existing record was changed (e.g. a payout status changed, a campaign setting was updated)
Deleted – a record was removed
In addition to standard create/update/delete events, the following specific actions are also logged:
Payout events (e.g. payouts paid, cancelled)
Contract document signed
Referral moved between promoters
Commission payout events
Export actions (CSV downloads)
Note: Lifecycle transitions like commission.approved or referral.converted are captured as part of the related updated event. The Lifecycle Action field in the log entry will show the specific transition that occurred (e.g. approved, converted).
Filtering and Searching Activity Logs
The Activity Logs page includes a search bar and a set of filters so you can quickly narrow down to the events you're looking for.
Searching
Type any keyword into the search bar to search across logs. By default, the search looks across:
Log ID
Request ID
Event ID
Job ID (JID)
Promoter ID
Changes content
Search by a specific field
Use the Search By dropdown (next to the search bar) to limit your search to a specific field:
All fields – searches across all searchable fields (default)
User – searches by team member name or email
Promoter – searches by promoter name or ID
Filtering
Click the Filters button to open the filter panel. You can apply one or more filters at the same time.
Available filters
Event Type
Filter by the type of event. Events are grouped by entity — for example, all commission.* events are listed together under "Commission". You can select one or more specific event types (e.g. commission.updated, promoter.created) or select an entire entity group to see all events for that entity.
Changed Fields
Filter logs where a specific field was modified. Fields are grouped by entity type. For example, selecting commission.status will return all logs where the commission status field changed.
Source of Action
Filter by where the action came from:
Team member – actions performed via the admin dashboard
Affiliate – actions performed via the affiliate portal
API – actions performed via the FirstPromoter API
Other – internal system actions
User
Filter by a specific team member. Useful for reviewing all actions taken by a particular person.
Promoter
Filter by a specific promoter. Shows all logged events associated with that promoter.
Date Range
Set a From and To date to view logs within a specific time window.
Combining filters
Filters can be combined. For example, you can filter by a specific team member AND a date range to see everything that person did last week.
Understanding Log Entries
Each row in the Activity Logs table represents a single event. This article explains what each field means and how to read a log entry.
Log entry fields
Timestamp
The date and time the event occurred, shown in your account's configured timezone.
Activity
The event type in entity_type.action format — for example, commission.updated or promoter.created. This tells you what kind of record was affected and what happened to it.
When a status transition occurred alongside the update (for example, a commission moving from pending to approved), a Lifecycle Action label appears below the main activity, showing the specific transition (e.g. commission.approved).
For API-only requests that do not produce an entity event, the activity column shows the API action instead.
Summary
A human-readable description of what happened. For example:
"Jane signed in"
"Commission approved for Promoter #123"
"Campaign settings updated"
If a promoter is associated with the event, a View Promoter link will appear below the summary.
User
The team member who performed the action. If the action was triggered by the system (e.g. a background job or an API call without a user session), this field will be empty.
Source of Action
Where the action originated:
Value | Meaning |
Team member | Action performed via the admin dashboard |
Affiliate | Action performed via the affiliate portal |
API | Action performed via the FirstPromoter API |
Other | Action originated from an internal system process |
Changes
The specific fields that changed, showing the old value and the new value for each. For example, if a commission status changed from pending to approved, the changes column shows:
Status: pending → approved
If no fields changed (e.g. for a create event with no tracked fields), this column will be empty.
Status Code
The HTTP status code returned by the API request that triggered the event. A green badge indicates a successful response (2xx), yellow for redirects (3xx), and red for errors (4xx/5xx).
Request Method
The HTTP method of the originating API call (GET, POST, PUT, PATCH, DELETE).
Request Path
The API endpoint path that was called.
Advanced / technical fields
These columns are hidden by default but can be enabled using the column switcher:
Field | Description |
Log ID | Unique identifier for this log entry |
Event ID | Unique identifier for the event (UUID) |
Request ID | Ties together all events from the same HTTP request |
JID | Background job ID, present when the event was triggered by an async worker |
Entity ID | The numeric ID of the affected record |
Viewing full details
Click the View Details action on any log row to open a side panel with the complete log entry, including all fields and the full changes object.
Exporting Activity Logs
You can export your activity logs as a CSV file for record keeping, compliance, or offline analysis.
How to export
Go to Activity Logs in your FirstPromoter dashboard.
Apply any filters or search criteria you want — the export will respect your current filter selection.
Click the Download button (icon) in the top-right corner of the page.
A confirmation dialog will appear. Click Download to proceed.
What's included in the export
Each row in the CSV corresponds to one log entry and includes the following columns:
Column | Description |
| Date and time the event occurred |
| Unique event identifier |
| ID of the team member who performed the action |
| Name of the team member |
| Email of the team member |
| Type of entity affected (e.g. |
| ID of the affected record |
| Internal model class of the entity |
| Action performed (e.g. |
| JSON object of changed fields with old and new values |
| Internal model class that triggered the event |
| ID of the source model |
| ID of the associated promoter (if applicable) |
| HTTP method of the originating request |
| API endpoint path |
| Internal controller that handled the request |
| Internal controller action |
| HTTP status code of the response |
Export limits
Exports are capped at 50,000 rows.
If your filtered result set exceeds 50,000 rows, the export will be sent to your email as a zipped CSV file instead of downloading directly.
Applying date range or other filters before exporting is recommended if you have a high volume of logs.
