Skip to content

Get activity feed for a process

Retrieving process activity feed

The activity feed gives you a full audit trail of everything that’s happened on a process — task completions, comments, status changes, assignments, and system events. It’s useful for compliance, auditing, and building custom dashboards.

Endpoint

GET /organizations/{org}/activity-feeds

This endpoint returns activities across the entire organization. To scope it to a single process, pass entity_type=run and entity_id={process_id} as query parameters.

Request

Headers

HeaderRequiredDescription
AuthorizationYesBearer {access_token}
AcceptYesapplication/json
X-Tallyfy-ClientYesAPIClient

Query parameters

ParameterTypeRequiredDescription
entity_typestringNo*Entity type to filter: checklist, run, step, task, thread
entity_idstringNo*ID of the specific entity
typestringNoActivity category: Comment, Task, Step, Process, Blueprint, User, Organization, Tag, Group
verbstringNoAction filter (see verb values below)
actor_typestringNouser or guest
actor_idintegerNoSpecific user or guest ID
actor_emailstringNoActor’s email — resolves to actor_id and actor_type automatically
sourcestringNoMember, Guest, or Webhook
created_afterstringNoStart date filter (YYYY-MM-DD format, inclusive)
created_beforestringNoEnd date filter (YYYY-MM-DD format, inclusive)
searchstringNoSearch activity descriptions (2-100 characters)
fieldstringNoFilter by changed field name (e.g. title, status)
origin_typestringNoFilter auto-launched activities by origin: checklist, run, step, task
origin_idstringNoSpecific origin entity ID (requires origin_type)
pageintegerNoPage number (default: 1)
per_pageintegerNoResults per page (default: 20)
sortstringNoSort order, e.g. -created_at for newest first

*Use entity_type=run with entity_id to scope results to a single process.

Verb values

The full set of supported verbs:

created · updated · owners-updated · uploaded · completed · uncompleted · deleted · re-ordered · commented · issue-reported · issue-resolved · archived · unarchived · re-opened · emitted · enabled · disabled · comment-deleted · invited · invite-accepted · linked · unlinked

Code samples

const orgId = 'your_org_id';
const processId = 'your_process_id';
const token = 'your_access_token';
const params = new URLSearchParams({
entity_type: 'run',
entity_id: processId,
per_page: '50',
sort: '-created_at'
});
const response = await fetch(
`https://go.tallyfy.com/api/organizations/${orgId}/activity-feeds?${params}`,
{
method: 'GET',
headers: {
'Authorization': `Bearer ${token}`,
'Accept': 'application/json',
'X-Tallyfy-Client': 'APIClient'
}
}
);
const data = await response.json();
console.log(`Total activities: ${data.meta.pagination.total}`);
data.data.forEach(a => {
console.log(`${a.created_at} - ${a.verb} - ${a.description}`);
});

Response

The response uses Fractal pagination wrapping. Activities sit in data and pagination metadata lives under meta.pagination.

{
"data": [
{
"id": 12345,
"organization_id": "org_xyz",
"verb": ["completed"],
"source": ["Member"],
"actor_type": ["App\\Models\\User"],
"actor_id": [67890],
"auditable_type": "App\\Models\\Task",
"auditable_id": "task_456",
"parentable_type": "App\\Models\\Run",
"parentable_id": "run_789",
"type": ["Task"],
"description": ["Completed task: Review document"],
"field": null,
"old_value": null,
"created_at": "2025-03-15T10:30:00Z",
"text": null,
"references": null,
"actor": [
{
"email": "john@example.com",
"username": "johnsmith",
"first_name": "John",
"last_name": "Smith",
"full_name": "John Smith",
"profile_pic": null,
"resize_profile_pic": null
}
],
"undoable": false,
"audit": {
"data": { }
},
"parent": {
"data": { }
},
"origin": null
}
],
"meta": {
"pagination": {
"total": 145,
"count": 20,
"per_page": 20,
"current_page": 1,
"total_pages": 8,
"links": {
"next": "https://go.tallyfy.com/api/organizations/org_xyz/activity-feeds?page=2"
}
}
}
}

Activity object fields

FieldDescription
idActivity feed ID
organization_idOrganization the activity belongs to
verbArray of actions performed (e.g. ["completed"])
sourceArray indicating who triggered it: Member, Guest, or Webhook
actor_typeArray of actor model types
actor_idArray of actor IDs
actorArray of actor detail objects with email, first_name, last_name, full_name, profile_pic
auditable_typeModel class of the entity acted upon
auditable_idID of the entity acted upon
parentable_typeModel class of the parent entity
parentable_idID of the parent entity
typeArray of activity categories (e.g. ["Task"])
descriptionArray of human-readable descriptions
fieldFor updates, which field changed (array or null)
old_valueFor updates, the previous value (array or null)
created_atWhen the activity occurred
textExtra content such as comment text (array or null)
referencesRelated references (array or null)
undoableWhether this activity can be undone
auditFractal include — current state of the audited object
parentFractal include — parent object details
originFractal include — origin entity for auto-launched activities
audit_stateSnapshot of the audited object’s state (when available)
parent_stateSnapshot of the parent object’s state (when available)

Permissions

The activity_feed_access middleware controls access. You can view the activity feed if you’re:

  • An organization admin
  • A support user with appropriate access
  • The creator of the process (when filtering by entity_type=run)
  • A user with PROCESS_READ permission on that process
  • Assigned to at least one task in that process

Without a specific entity_type=run filter, admins and support users see all org-level activities. Non-admin users see activities scoped to entities they have permission to access.

Rate limits

The API allows 600 requests per minute. Use pagination and caching to stay within limits when polling for updates.

Processes > List processes

Tallyfy’s API lets you retrieve a paginated and filterable list of all running process instances in your organization by calling GET on the runs endpoint with optional parameters for status and ownership and tags and sorting and related data inclusion.

Code Samples > Managing processes (Runs)

The Tallyfy API manages processes (called “runs”) through org-scoped endpoints that cover launching from templates or as empty containers and listing and filtering and fetching details and updating and archiving and restoring and permanently deleting processes along with retrieving activity feeds for audit trails.

Tasks > List process tasks

Tallyfy’s API lets you retrieve all tasks for a specific process run via a GET request with optional filters for status and deadlines and owners and sorting and pagination along with the ability to include related data like form fields and step details in the response.

Processes > Get process

Tallyfy’s GET endpoint lets you retrieve full details of a specific process run by its ID and optionally include related data like tasks and form fields and tags through query parameters while also supporting a special “next_task” option that returns the earliest-deadline incomplete task for building dashboards or automating notifications.