Activities Data Model

circle-check

Overview

Activities represent work that has happened as Logged Activities or work that needs to happen as Scheduled Activities. Activities can be linked to Contacts or Custom Objects, appear on Timelines, and trigger or be triggered by Automations.

This page defines the Activities data model in Kizen, including the schemas, fields, and relationships used for scheduling and automating Activities.

Use this page when building:

  • Integrations that read or write Activity data

  • Automations that schedule Activities

  • Custom workflows that link Activities to Contacts or Custom Objects

The material on this page builds on information covered on the Activities Core Concepts page.

How Activities Are Identified

Kizen uses different unique IDs for Activity Objects, Scheduled Activities, and logged Activities. Each ID is unique within a Business and should not be reused across these resource types.

Activity Lifecycle

Activities transition through states derived from timestamps and relationships rather than explicit lifecycle enums.

Typical lifecycle progression:

  • Activity created

  • (If scheduled) due date reached

  • Activity completed

  • Logged Activity created (for Scheduled Activities)

Lifecycle state is inferred from fields such as:

  • due_datetime

  • completed_at

  • logged_activity_id

  • notification

Kizen does not expose strict lifecycle enums such as “scheduled” or “completed”.


Data Structure

The Activity Model encompasses three core elements: Activity Objects, Schedule Activities, and Logged Activities.

The following diagram illustrates the lifecycle and structural relationships between these components:

  1. An Activity Object defines the schema for a specific Activity type.

  2. When work is planned, a Schedule Activity is create to track work that has not yet occurred.

  3. When work is completed, or when an Activity is logged directly, a logged activity is created to capture the details of the engagement.

Activity Field Types

Activities in Kizen support three distinct categories of (fields[]) that behave differently at runtime depending on their type:

  1. System fields: System-defined, non-modifiable fields that are included with every Activity.

  2. Activity fields: Fields stored on the Activity itself. These fields are captured when an Activity is logged and do not update fields on associated Records.

  3. Custom fields: Fields that belong to an associated Record on an Object. These fields are updated as part of Activity completion and apply only to logged Activities.

Understanding the difference between these field types is critical when designing Activity schemas, configuring required fields, and building workflows that update related Records.

System Fields

System fields are platform-defined fields that belong to the Activity itself. They are intrinsic to the Activity record and are included with every Activity.

Examples include:

  • Activity name

  • Description and Visibility

  • Completion timestamps

  • Built-in activity attributes

System fields:

  • Always belong to the Activity record

  • Are stored directly on the Activity Record

  • Cannot be modified or repurposed

  • Do not update fields on associated records when an Activity is completed

Activity Fields

Activity fields are fields defined on the Activity object itself that capture information specific to a logged Activity. These fields extend the Activity schema beyond system-defined attributes.

Examples include:

  • Outcome or result values

  • Activity-specific notes or classifications

  • Custom values captured at the time the Activity is logged

Activity fields:

  • Belong to Scheduled or Logged Activity records

  • Are stored directly on the Logged Activity

  • Are captured when an Activity is logged

  • Do not update fields on associated records when the Activity is completed

Activity fields are used to describe what happened during the Activity, not to modify related records.

Activity Custom Fields

Associated custom fields are fields that belong to a related object (such as a Contact or other Custom Object) and are updated only when the Activity is logged with a specific associated record selected.

These fields are included in the Activity experience, but their definitions come from the associated Record schema. When the Activity is completed, the values update the associated Record rather than the Activity.

Key characteristics:

  • Defined on the associated record and surface on the Activity only when a related Record is selected.

  • Use the field types supported by the associated object

  • Required only when a related Record is selected

  • Updated when the Activity is completed and logged

  • Do not apply if no associated Record is present

Associated Record fields allow Activities to drive updates to related records while keeping Activity data and Record data clearly separated.

(fields[]) Parameters

Field
Type
Required
Description

id

UUID

Yes

Field definition ID

name

String

Yes

Canonical name

display_name

String

Yes

User-facing label

field_type

String

Yes

Base type

custom_field_type

String

Yes

Subtype

value

Object

No

Stored value


Record Associations

When an Activity is associated with a Contact or Custom Object, Activity custom fields may act on that associated Record and update it rather than only on the Activity itself.

A Record association gives you the ability to create Activity fields that update associated Records when an Activity is logged. These updates occur through configured Activity-to-object associations and do not change the Activity’s field model.

This behavior introduces important validation and permission considerations.

(associated_entities[]) Parameters

Field
Type
Required
Description

custom_object_id

UUID

Yes

Object type for which the record belongs.

entity_id

UUID

Yes

ID of the linked record.

object_name

String

Yes

Object display name.

display_name

String

Yes

Record display name.

object_api_name

String

Yes

Canonical API name.

Activity Custom Field Population Behavior

When an associated Record is selected for an Activity:

  • Existing values from the associated Record are pre-filled into the corresponding Activity custom fields

  • This pre-fill occurs for Logged Activities with pre-selected associated Records

  • Pre-filled values bypass permissions only for existing values

For more information on permissions, see Activity Permissions.

Required Field Rules

All required fields behavior depends on the type of field you are creating or modifying and whether there is an associated record is selected for it.

Activity Custom Field Options

When creating an Activity custom field, Kizen gives you two option toggles on the fields.

  • If Field is Required is toggled on, the field will be always be required and this cannot be modified later. This applies even if no related entity is selected.

  • If the Informational Field is toggled on, the Activity custom field will be set to a read only status.

Activity Custom Field Advanced Rules

Sets the visibility permissions on the custom fields themselves with Activity. See: Advanced Activity Rules.

Required Associated Record Fields

When an Activity is associated with another record, any required fields on the associated record also become required for the Activity.

For example, if an Activity is associated with a Deal, the required Deal fields such as Owner or Stage will also be required and must be provided.

These fields are required only when a related Record is selected. If no related Record is associated, these fields are not required to submit the Activity.

Clearing Values

Users must be able to clear values from Activity custom fields during Activity submission, even when those fields were pre-filled from a related Record.

Clearing a value explicitly indicates intent and should be treated as a valid submission action.


Schemas

Activity Object Schema

Activity Objects define the type and configuration of Activities. All Scheduled and Logged Activities reference an Activities Object.

Scheduled Activity Schema

Scheduled Activities represent future tasks and can have an assignee and associations, but no field values.

Logged Activity Schema

Logged Activities represent past tasks and can have assignee and associations. While you cannot log an Activity via API, you can view logged records by ID.


Timeline Representation

Activities appear on Timelines based on associations and timestamps.

When Activities Appear

An Activity appears on a Timeline when it includes the record in associated_entities[]. If an Activity is associated to multiple records, it appears on each Timeline.

Lifecycle Impact

Completing a Scheduled Activity creates a Logged Activity, which appears on the Timeline at the appropriate chronological position.

If an association is removed or a record is archived, the Activity no longer appears on that Timeline.


Additional Information

chevron-rightSupported Activity APIshashtag

Activities can be accessed programmatically to:

API operations require valid authentication and business context. We highly discourage Logging, creating, or updating Activities via API as it is easy to accidentally overwrite existing values when data is passed incorrectly or partially.

chevron-rightError Stateshashtag

Errors may occur due to:

API responses include error details describing the failure condition.


What's Next?

Next, continue to Activity Permissions to understand how access to Activities is controlled, including:

  • Who can create, view, and modify Activities

  • How permissions interact with Activity Objects and associated records

  • How access rules are enforced consistently across the UI, APIs, and automations

Understanding permissions is essential before exposing Activity data through integrations or enabling automation workflows.

Last updated

Was this helpful?