Skip to main content

Activity Logs – Overview

Written by Maxwell Adapoe
Updated over 2 weeks ago

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

  1. Go to Activity Logs in your FirstPromoter dashboard.

  2. Apply any filters or search criteria you want — the export will respect your current filter selection.

  3. Click the Download button (icon) in the top-right corner of the page.

  4. 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

timestamp

Date and time the event occurred

event_id

Unique event identifier

user_id

ID of the team member who performed the action

user_name

Name of the team member

user_email

Email of the team member

entity_type

Type of entity affected (e.g. commission, promoter)

entity_id

ID of the affected record

entity_class

Internal model class of the entity

action

Action performed (e.g. created, updated, deleted)

changes

JSON object of changed fields with old and new values

model_class

Internal model class that triggered the event

model_id

ID of the source model

promoter_id

ID of the associated promoter (if applicable)

request_method

HTTP method of the originating request

request_path

API endpoint path

request_controller

Internal controller that handled the request

request_action

Internal controller action

status_code

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.

Did this answer your question?