# Activities Data Model

{% hint style="success" %}
**Audience**: Technical Builders, Implementors, and Developers

**Purpose:**  Explains the Activity data model in order to build integrations, <code class="expression">space.vars.automations</code>, and workflows that depend on Activity data.
{% endhint %}

## Overview

<code class="expression">space.vars.activities</code> represent work that has happened as Logged <code class="expression">space.vars.activities</code> or work that needs to happen as Scheduled <code class="expression">space.vars.activities</code>. <code class="expression">space.vars.activities</code> can be linked to <code class="expression">space.vars.contacts</code> or <code class="expression">space.vars.objects</code>, appear on <code class="expression">space.vars.timelines</code>, and trigger or be triggered by <code class="expression">space.vars.automations</code>.

This page defines the <code class="expression">space.vars.activities</code> data model in <code class="expression">space.vars.Kizen\_company\_name</code>, including the schemas, fields, and relationships used for scheduling and automating <code class="expression">space.vars.activities</code>.

Use this page when building:

* Integrations that read or write <code class="expression">space.vars.activity</code> data
* <code class="expression">space.vars.automations</code> that schedule <code class="expression">space.vars.activities</code>
* Business processes that link <code class="expression">space.vars.activities</code> to <code class="expression">space.vars.contacts</code> or <code class="expression">space.vars.objects</code>

The material on this page builds on information covered on the [Activities Core Concepts](/docs/concepts/activities/activities-core-concepts.md) page.

### How Activities Are Identified

Each <code class="expression">space.vars.activity</code> <code class="expression">space.vars.object</code> or <code class="expression">space.vars.activity</code> has a unique ID, which is unique within a business. These unique IDs are never reused.

#### Activity Lifecycle

The <code class="expression">space.vars.activity</code> lifecycle governs how <code class="expression">space.vars.activities</code> transition through planned and completed states. Unlike Record lifecycle events, <code class="expression">space.vars.activity</code> state is derived from timestamps and related records rather than explicit lifecycle enums.

* **Activity created → interaction defined**: Creating an <code class="expression">space.vars.activity</code> establishes a new interaction <code class="expression">space.vars.entity</code>. When a `due_datetime` is provided, the <code class="expression">space.vars.activity</code> appears as an upcoming task in the UI.
* **Activity completed and logged → state resolved**: A Scheduled <code class="expression">space.vars.activity</code> remains in a scheduled state until it is logged. Logging the <code class="expression">space.vars.activity</code> records completion metadata such as `completed_at` and creates a corresponding Logged <code class="expression">space.vars.activity</code> linked through `logged_activity_id`.

<code class="expression">space.vars.activity</code> state is determined by system fields including `due_datetime`, `completed_at`, `logged_activity_id`, and `notification`. The platform does not expose lifecycle enums such as “scheduled” or “completed.”

***

## Data Structure

The <code class="expression">space.vars.activity</code> Model encompasses three core elements: <code class="expression">space.vars.activity</code> <code class="expression">space.vars.objects</code>, Scheduled <code class="expression">space.vars.activities</code>, and Logged <code class="expression">space.vars.activities</code>.

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

1. An <code class="expression">space.vars.activity</code> <code class="expression">space.vars.object</code> defines the schema for a specific <code class="expression">space.vars.activity</code> type.&#x20;
2. When work is planned, a Scheduled <code class="expression">space.vars.activity</code> is created to track work that has not yet occurred.&#x20;
3. When work is completed, or when an <code class="expression">space.vars.activity</code> is logged directly, a Logged <code class="expression">space.vars.activity</code> is created to capture the details of the engagement.

<div data-with-frame="true"><figure><img src="/files/5IipomAs7xzoVHTn50OE" alt="" width="563"><figcaption></figcaption></figure></div>

## Activity Field Types

<code class="expression">space.vars.activities</code> in <code class="expression">space.vars.Kizen\_company\_name</code> 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 <code class="expression">space.vars.activity</code>.
2. <code class="expression">space.vars.activity</code> Fields: Fields tracked on the <code class="expression">space.vars.activity</code> itself. These fields are stored when an <code class="expression">space.vars.activity</code> is logged and do not update fields on associated <code class="expression">space.vars.entities</code>.
3. <code class="expression">space.vars.fields</code>: Fields that belong to an associated <code class="expression">space.vars.entity</code> on an <code class="expression">space.vars.object</code>. These fields are updated as part of <code class="expression">space.vars.activity</code> completion and apply only to logged <code class="expression">space.vars.activities</code>.

Understanding the difference between these field types is critical when designing <code class="expression">space.vars.activity</code> schemas, configuring required fields, and building workflows that update related <code class="expression">space.vars.entities</code>.

### System Fields

<div data-with-frame="true"><figure><img src="/files/B743np8FQbhJDaCtmG8k" alt="" width="563"><figcaption></figcaption></figure></div>

System fields are platform-defined fields that belong to the <code class="expression">space.vars.activity</code> itself. They are intrinsic to the <code class="expression">space.vars.activity</code> <code class="expression">space.vars.entity</code> and are included with every <code class="expression">space.vars.activity</code>.

Examples include:

* <code class="expression">space.vars.activity</code> name
* Description and Visibility
* Completion timestamps
* Built-in <code class="expression">space.vars.activity</code> attributes

System fields:

* Always belong to the <code class="expression">space.vars.activity</code> <code class="expression">space.vars.entity</code>
* Are stored directly on the <code class="expression">space.vars.activity</code> <code class="expression">space.vars.entity</code>
* Cannot be modified by or repurposed
* Do not update fields on associated <code class="expression">space.vars.entities</code> when an <code class="expression">space.vars.activity</code> is completed

### Activity Fields

<div data-with-frame="true"><figure><img src="/files/8mSbDGD0kooW9cS2YJmw" alt="" width="563"><figcaption></figcaption></figure></div>

<code class="expression">space.vars.activity</code> fields are fields defined on the <code class="expression">space.vars.activity</code> object itself that capture information specific to a logged <code class="expression">space.vars.activity</code>. These fields extend the <code class="expression">space.vars.activity</code> schema beyond system-defined attributes.

**Examples include:**

* Outcome or result values
* <code class="expression">space.vars.activity</code>-specific notes or classifications
* Custom values captured at the time the <code class="expression">space.vars.activity</code> is logged

**Activity fields:**

* Belong to Scheduled or Logged <code class="expression">space.vars.activity</code> <code class="expression">space.vars.entities</code>
* Are stored directly on the Logged <code class="expression">space.vars.activity</code>
* Are captured when an <code class="expression">space.vars.activity</code> is logged
* Do **not** update fields on associated <code class="expression">space.vars.entities</code> when the <code class="expression">space.vars.activity</code> is completed

<code class="expression">space.vars.activity</code> fields are used to describe what happened during the <code class="expression">space.vars.activity</code>, not to modify related <code class="expression">space.vars.entities</code>.

### Activity Custom Fields

<div data-with-frame="true"><figure><img src="/files/yikwqROkNCIEs59GcRUI" alt="" width="563"><figcaption></figcaption></figure></div>

Associated <code class="expression">space.vars.fields</code> are fields that belong to a related <code class="expression">space.vars.object</code> (such as a <code class="expression">space.vars.contact</code> or other  <code class="expression">space.vars.object</code>) and are updated only when the <code class="expression">space.vars.activity</code> is logged with a specific associated <code class="expression">space.vars.entity</code> selected.&#x20;

These fields are included in the <code class="expression">space.vars.activity</code> experience, but their definitions come from the associated <code class="expression">space.vars.entity</code> schema. When the <code class="expression">space.vars.activity</code> is completed, the values update the associated <code class="expression">space.vars.entity</code> rather than the <code class="expression">space.vars.activity</code>.

**Key characteristics:**

* Defined on the associated <code class="expression">space.vars.entity</code> and surface on the <code class="expression">space.vars.activity</code> only when a related <code class="expression">space.vars.entity</code> is selected
* Use the field types supported by the associated <code class="expression">space.vars.object</code>
* Required only when a related <code class="expression">space.vars.entity</code> is selected
* Updated on both the <code class="expression">space.vars.activity</code> and <code class="expression">space.vars.entity</code> when the <code class="expression">space.vars.activity</code> is completed and logged
* Do not apply if no associated <code class="expression">space.vars.entity</code> is present

Associated <code class="expression">space.vars.entity</code> fields allow <code class="expression">space.vars.activities</code> to drive updates to related <code class="expression">space.vars.entities</code> while keeping <code class="expression">space.vars.activity</code> data and <code class="expression">space.vars.entity</code> data clearly separated.

### **(`fields[]`) P**arameters

<table><thead><tr><th width="170.98046875">Field</th><th width="106.171875">Type</th><th width="109.58203125">Required</th><th>Description</th></tr></thead><tbody><tr><td><code>id</code></td><td>UUID</td><td>Yes</td><td>Field definition ID</td></tr><tr><td><code>name</code></td><td>String</td><td>Yes</td><td>Canonical name</td></tr><tr><td><code>display_name</code></td><td>String</td><td>Yes</td><td>User-facing label</td></tr><tr><td><code>field_type</code></td><td>String</td><td>Yes</td><td>Base type</td></tr><tr><td><code>custom_field_type</code></td><td>String</td><td>Yes</td><td>Subtype</td></tr><tr><td><code>value</code></td><td>Object</td><td>No</td><td>Stored value</td></tr></tbody></table>

***

## **Record Associations**

<code class="expression">space.vars.activities</code> can be associated with <code class="expression">space.vars.contacts</code> or <code class="expression">space.vars.objects</code> through relationship fields. These associations define the <code class="expression">space.vars.entities</code> an <code class="expression">space.vars.activity</code> may reference.

The configured associations also determine which <code class="expression">space.vars.fields</code> can appear on the <code class="expression">space.vars.activity</code>. Only fields from the associated <code class="expression">space.vars.contact</code> or <code class="expression">space.vars.object</code> types are available.

When an <code class="expression">space.vars.activity</code> is completed, values entered into <code class="expression">space.vars.fields</code> will update the specific associated records referenced by the <code class="expression">space.vars.activity</code>.

Because <code class="expression">space.vars.activities</code> may update associated <code class="expression">space.vars.entities</code>, this behavior introduces additional validation and permission considerations.

### **(`associated_entities[]`) P**arameters

<table><thead><tr><th width="188.890625">Field</th><th width="88.6171875">Type</th><th width="111.8671875">Required</th><th>Description</th></tr></thead><tbody><tr><td><code>custom_object_id</code></td><td>UUID</td><td>Yes</td><td><code class="expression">space.vars.object</code> type for which the record belongs</td></tr><tr><td><code>entity_id</code></td><td>UUID</td><td>Yes</td><td>ID of the linked <code class="expression">space.vars.entity</code></td></tr><tr><td><code>object_name</code></td><td>String</td><td>Yes</td><td><code class="expression">space.vars.object</code> display name</td></tr><tr><td><code>display_name</code></td><td>String</td><td>Yes</td><td><code class="expression">space.vars.entity</code> display name</td></tr><tr><td><code>object_api_name</code></td><td>String</td><td>Yes</td><td>Canonical API name</td></tr></tbody></table>

### Activity Custom Field Population Behavior

When an associated <code class="expression">space.vars.entity</code> is selected for an <code class="expression">space.vars.activity</code>:

* Existing values from the associated <code class="expression">space.vars.entity</code> are pre-filled into the corresponding <code class="expression">space.vars.activity</code> <code class="expression">space.vars.fields</code>.
* This pre-fill occurs for Logged <code class="expression">space.vars.activities</code> with pre-selected associated <code class="expression">space.vars.entities</code>.
* Pre-filled values bypass permissions only for existing values.

For more information on permissions, see [Activity Permissions](/docs/concepts/activities/activity-permissions.md).

### Required Field Rules

All required fields behavior depends on the type of field you are creating or modifying and whether there is an associated <code class="expression">space.vars.entity</code> selected for it.

#### Activity Custom Field Options

When creating an <code class="expression">space.vars.activity</code> custom field, <code class="expression">space.vars.Kizen\_company\_name</code> gives you two option toggles on the fields.

* If "Field is Required" is toggled on, the field will always be required and this cannot be modified later. This applies even if no related entity is selected.
* If "Informational Field (Readonly)" is toggled on, the <code class="expression">space.vars.activity</code> <code class="expression">space.vars.field</code> will be set to a read-only status.

#### Activity Custom Field Advanced Rules

Sets the visibility permissions on the <code class="expression">space.vars.fields</code> themselves with <code class="expression">space.vars.activity</code>. See: [Advanced Activity Rules](/docs/concepts/activities/advanced-activity-rules.md).

#### Required Associated Record Fields

When an <code class="expression">space.vars.activity</code> is associated with another <code class="expression">space.vars.entity</code>, any required fields on the associated <code class="expression">space.vars.entity</code> also become required for the <code class="expression">space.vars.activity</code>.

For example, if an <code class="expression">space.vars.activity</code> 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 <code class="expression">space.vars.entity</code> is selected. If no related <code class="expression">space.vars.entity</code> is associated, these fields are not required to submit the <code class="expression">space.vars.activity</code>.

**System Fields on Associated Records**

When configuring custom <code class="expression">space.vars.activity</code> fields from an associated <code class="expression">space.vars.object</code>, the <code class="expression">space.vars.object</code>'s **Display Name** field is not selectable and cannot be added as an <code class="expression">space.vars.activity</code> field. If a **Display Name** value is included in a Log <code class="expression">space.vars.activity</code> or Complete Scheduled <code class="expression">space.vars.activity</code> payload for any reason, the platform will automatically ignore it and no validation error will be raised.

This applies to both the Log <code class="expression">space.vars.activity</code> and Complete Scheduled <code class="expression">space.vars.activity</code> flows.

### Clearing Values

Users must be able to clear values from <code class="expression">space.vars.activity</code> <code class="expression">space.vars.fields</code> during <code class="expression">space.vars.activity</code> submission, even when those fields were pre-filled from a related <code class="expression">space.vars.entity</code>. Clearing a value explicitly indicates intent and should be treated as a valid submission action.

This also applies to the **Display Name** field on associated <code class="expression">space.vars.objects</code>. Display Name isn't a selectable <code class="expression">space.vars.activity</code> field, so if it shows up in the payload, there's no need to clear it before submitting. Display Name is never recorded on the logged <code class="expression">space.vars.activity</code>.&#x20;

{% hint style="warning" %}
**Caution**: If you see Display Name appear as an <code class="expression">space.vars.activity</code> field, it's either an invalid field added by AI or an <code class="expression">space.vars.object</code> that was misconfigured by AI.
{% endhint %}

***

## Schemas

### Activity Object Schema

<code class="expression">space.vars.activity</code> <code class="expression">space.vars.objects</code> define the type and configuration of <code class="expression">space.vars.activities</code>. All Scheduled and Logged <code class="expression">space.vars.activities</code> reference an <code class="expression">space.vars.activities</code> <code class="expression">space.vars.object</code>.

## The \_ActivityObject object

```json
{"openapi":"3.0.3","info":{"title":"Kizen API","version":"1.0.0"},"components":{"schemas":{"_ActivityObject":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"api_name":{"type":"string"},"association_mode":{"type":"string"}},"required":["api_name","association_mode","id","name"]}}}}
```

### Scheduled Activity Schema

Scheduled <code class="expression">space.vars.activities</code> represent future tasks and can have an assignee and associations, but no field values.

## The ScheduledActivityV2WriteRequest object

```json
{"openapi":"3.0.3","info":{"title":"Kizen API","version":"1.0.0"},"components":{"schemas":{"ScheduledActivityV2WriteRequest":{"type":"object","properties":{"activity_object_id":{"type":"string","format":"uuid"},"activity_object_name":{"type":"string","nullable":true,"minLength":1},"due_datetime":{"type":"string","format":"date-time"},"original_due_datetime":{"type":"string","format":"date-time"},"employee_id":{"type":"string","format":"uuid","nullable":true},"role_id":{"type":"string","format":"uuid","nullable":true},"note":{"type":"string"},"mentions":{"type":"array","items":{"type":"string","format":"uuid","nullable":true}},"notifications":{"type":"array","items":{"$ref":"#/components/schemas/_ScheduledActivityNotificationV2WriteRequest"}},"associated_entities":{"type":"array","items":{"$ref":"#/components/schemas/_AssociatedEntityWriteRequest"},"nullable":true},"notify_mentioned":{"type":"boolean","default":false}}},"_ScheduledActivityNotificationV2WriteRequest":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/_ScheduledActivityNotificationV2WriteTypeEnum"},"time_amount":{"type":"integer","maximum":2147483647,"minimum":1},"time_unit":{"$ref":"#/components/schemas/TimeUnitEnum"}},"required":["time_amount","time_unit","type"]},"_ScheduledActivityNotificationV2WriteTypeEnum":{"enum":["email","text"],"type":"string","description":"* `email` - email\n* `text` - text"},"TimeUnitEnum":{"enum":["minute","hour","day"],"type":"string","description":"* `minute` - minute\n* `hour` - hour\n* `day` - day"},"_AssociatedEntityWriteRequest":{"type":"object","properties":{"custom_object_id":{"type":"string","format":"uuid","nullable":true,"description":"This field is deprecated, use custom_object instead.","deprecated":true},"entity_id":{"type":"string","format":"uuid","nullable":true,"description":"This field is deprecated, use entity instead.","deprecated":true},"custom_object":{"allOf":[{"$ref":"#/components/schemas/_CustomObjectRequest"}],"nullable":true},"entity":{"allOf":[{"$ref":"#/components/schemas/EntityRequest"}],"nullable":true}}},"_CustomObjectRequest":{"type":"object","description":"A serializer that accepts either an 'id' field or an alternate identifier field.\n\nThis serializer class automatically detects which identifier field is being used and\nperforms validation to ensure at least one identifier is provided. It also provides\nutility methods for retrieving objects by their identifiers.\n\nAttributes:\n    IDENTIFIER_FIELD (str): The name of the alternate identifier field. Should be\n        defined in subclasses.\n\nMethods:\n    get_identifier_field(): Determines the alternate identifier field name.\n    validate(attrs): Ensures either 'id' or the alternate identifier is provided.\n    get_identifier_values(data, values_map, queryset): Retrieves objects by their identifiers.","properties":{"id":{"type":"string","format":"uuid","nullable":true,"description":"Required if \"name\" is not provided."},"name":{"type":"string","nullable":true,"minLength":1,"description":"Required if \"id\" is not provided."}}},"EntityRequest":{"type":"object","description":"A serializer that accepts either an 'id' field or an alternate identifier field.\n\nThis serializer class automatically detects which identifier field is being used and\nperforms validation to ensure at least one identifier is provided. It also provides\nutility methods for retrieving objects by their identifiers.\n\nAttributes:\n    IDENTIFIER_FIELD (str): The name of the alternate identifier field. Should be\n        defined in subclasses.\n\nMethods:\n    get_identifier_field(): Determines the alternate identifier field name.\n    validate(attrs): Ensures either 'id' or the alternate identifier is provided.\n    get_identifier_values(data, values_map, queryset): Retrieves objects by their identifiers.","properties":{"id":{"type":"string","format":"uuid","nullable":true,"description":"Required if \"name\" is not provided."},"name":{"type":"string","nullable":true,"minLength":1,"description":"Name of entity or email of contact."}}}}}}
```

## The ScheduledActivityV2Read object

```json
{"openapi":"3.0.3","info":{"title":"Kizen API","version":"1.0.0"},"components":{"schemas":{"ScheduledActivityV2Read":{"type":"object","properties":{"associated_entities":{"type":"array","items":{"$ref":"#/components/schemas/_AssociatedEntityRead"}},"id":{"type":"string","format":"uuid"},"note":{"type":"string"},"due_datetime":{"type":"string","format":"date-time"},"original_due_datetime":{"type":"string","format":"date-time"},"completed_at":{"type":"string","format":"date-time"},"logged_activity_id":{"type":"string","format":"uuid"},"activity_object":{"type":"string"},"employee":{"type":"string"},"role":{"$ref":"#/components/schemas/SimpleRole"},"mentions":{"$ref":"#/components/schemas/EmployeeSerpy"},"associated_fields":{"type":"string"},"notifications":{"type":"string"},"created":{"type":"string","format":"date-time"},"access":{"$ref":"#/components/schemas/AccessSerpy"}},"required":["access","activity_object","associated_entities","associated_fields","completed_at","created","due_datetime","employee","id","logged_activity_id","mentions","note","notifications","original_due_datetime","role"]},"_AssociatedEntityRead":{"type":"object","properties":{"custom_object":{"$ref":"#/components/schemas/_CustomObjectRead"},"entity":{"$ref":"#/components/schemas/_EntityRead"},"custom_object_id":{"type":"string","format":"uuid","deprecated":true},"object_name":{"type":"string","deprecated":true},"object_api_name":{"type":"string","deprecated":true},"entity_id":{"type":"string","format":"uuid","deprecated":true},"name":{"type":"string","readOnly":true,"deprecated":true},"display_name":{"type":"string","readOnly":true,"deprecated":true}},"required":["custom_object","custom_object_id","display_name","entity","entity_id","name","object_api_name","object_name"]},"_CustomObjectRead":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"object_name":{"type":"string"}},"required":["id","name","object_name"]},"_EntityRead":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"email":{"type":"string","readOnly":true},"display_name":{"type":"string","readOnly":true}},"required":["display_name","email","id","name"]},"SimpleRole":{"type":"object","properties":{"id":{"type":"string","format":"uuid","readOnly":true},"name":{"type":"string","maxLength":200},"default_for_new_users":{"type":"boolean"}},"required":["id","name"]},"EmployeeSerpy":{"type":"object","properties":{"picture_url":{"type":"string"},"id":{"type":"string","format":"uuid"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"},"display_name":{"type":"string"},"account_type":{"type":"string"}},"required":["account_type","display_name","email","first_name","id","last_name","picture_url"]},"AccessSerpy":{"type":"object","properties":{"view":{"type":"boolean"},"edit":{"type":"boolean"},"remove":{"type":"boolean"}},"required":["edit","remove","view"]}}}}
```

### Logged Activity Schema

Logged <code class="expression">space.vars.activities</code> represent past tasks and can have assignee and associations. While you cannot log an <code class="expression">space.vars.activity</code> via API, you can view logged <code class="expression">space.vars.entities</code> by ID.

## The LogActivityRead object

```json
{"openapi":"3.0.3","info":{"title":"Kizen API","version":"1.0.0"},"components":{"schemas":{"LogActivityRead":{"type":"object","properties":{"fields":{"type":"array","items":{"$ref":"#/components/schemas/LoggedActivityRecordField"}},"id":{"type":"string","format":"uuid"},"notes":{"type":"string"},"activity_object":{"allOf":[{"$ref":"#/components/schemas/_ActivityObject"}],"readOnly":true},"associated_entities":{"type":"array","items":{"$ref":"#/components/schemas/AssociatedEntity"},"readOnly":true},"logged_at":{"type":"string","format":"date-time"},"logged_by":{"$ref":"#/components/schemas/EmbedEmployee"},"completed_at":{"type":"string","format":"date-time","nullable":true,"readOnly":true},"completed_by":{"allOf":[{"$ref":"#/components/schemas/SerializerMeta"}],"readOnly":true},"scheduled_activity_id":{"type":"string","format":"uuid","nullable":true,"readOnly":true},"mentions":{"type":"array","items":{"type":"string","format":"uuid"},"readOnly":true}},"required":["activity_object","associated_entities","completed_at","completed_by","id","logged_at","logged_by","mentions","notes","scheduled_activity_id"]},"LoggedActivityRecordField":{"type":"object","properties":{"value":{"type":"object","additionalProperties":{},"nullable":true},"id":{"type":"string","format":"uuid"},"field_type":{"type":"string","readOnly":true},"custom_field_type":{"type":"string","nullable":true,"readOnly":true},"name":{"type":"string","readOnly":true},"display_name":{"type":"string","readOnly":true}},"required":["custom_field_type","display_name","field_type","id","name"]},"_ActivityObject":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"api_name":{"type":"string"},"association_mode":{"type":"string"}},"required":["api_name","association_mode","id","name"]},"AssociatedEntity":{"type":"object","properties":{"custom_object_id":{"type":"string","format":"uuid"},"object_name":{"type":"string"},"entity_id":{"type":"string","format":"uuid"},"name":{"type":"string"},"display_name":{"type":"string"},"custom_object_name":{"type":"string"},"object_api_name":{"type":"string"}},"required":["custom_object_id","custom_object_name","display_name","entity_id","name","object_api_name","object_name"]},"EmbedEmployee":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"full_name":{"type":"string"},"display_name":{"type":"string"},"email":{"type":"string","format":"email"},"deleted":{"type":"boolean"}},"required":["deleted","display_name","email","full_name","id","name"]},"SerializerMeta":{"type":"object","properties":{"picture_url":{"type":"string"},"id":{"type":"string","format":"uuid"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"},"display_name":{"type":"string"},"account_type":{"type":"string"}},"required":["account_type","display_name","email","first_name","id","last_name","picture_url"]}}}}
```

***

## Timeline Representation

<code class="expression">space.vars.activities</code> appear on <code class="expression">space.vars.timelines</code> based on associations and timestamps.

### When Activities Appear

An <code class="expression">space.vars.activity</code> appears on a <code class="expression">space.vars.timelines</code> when it includes the record in `associated_entities[]`. If an <code class="expression">space.vars.activity</code> is associated to multiple <code class="expression">space.vars.entities</code>, it appears on each associated record's <code class="expression">space.vars.timeline</code>.

### Lifecycle Impact

Completing a Scheduled <code class="expression">space.vars.activity</code> creates a Logged <code class="expression">space.vars.activity</code>, which appears on the <code class="expression">space.vars.timeline</code> at the appropriate chronological position.

If an association is removed or a <code class="expression">space.vars.entity</code> is archived, the <code class="expression">space.vars.activity</code> no longer appears on that <code class="expression">space.vars.timeline</code>.

***

## Additional Information

<details>

<summary>Supported Activity APIs</summary>

Activities can be accessed programmatically to:

* [Schedule Activities](/docs/concepts/activities/activities-api-and-webhooks/schedule-activities-api.md)&#x20;
* [View Logged Activity details](/docs/concepts/activities/activities-api-and-webhooks/view-logged-activity-details-api.md)
* [List Scheduled Activities](/docs/concepts/activities/activities-api-and-webhooks/list-scheduled-activities-api.md)
* [Retrieve Scheduled Activities by ID](/docs/concepts/activities/activities-api-and-webhooks/retrieve-scheduled-activity-details-by-id-api.md)

API operations require valid authentication and business context.&#x20;

{% hint style="info" %}
**Note**: 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.
{% endhint %}

</details>

<details>

<summary>Error States</summary>

Errors may occur due to:

* Validation failures
* Missing required associations
* [Activity Permission restrictions](/docs/concepts/activities/activity-permissions.md)
* Automation execution failures

API responses include error details describing the failure condition.

</details>

***

## What's Next?

Next, continue to [Activity Permissions](/docs/concepts/activities/activity-permissions.md) to understand how access to <code class="expression">space.vars.activities</code> is controlled, including:

* Who can create, view, and modify <code class="expression">space.vars.activities</code>
* How permissions interact with <code class="expression">space.vars.activity</code> <code class="expression">space.vars.objects</code> and associated <code class="expression">space.vars.entities</code>
* How access rules are enforced consistently across the UI, APIs, and <code class="expression">space.vars.automations</code>

Understanding permissions is essential before exposing <code class="expression">space.vars.activity</code> data through integrations or enabling <code class="expression">space.vars.automation</code> workflows.

<details>

<summary>Related Topics</summary>

* [Activities](/docs/concepts/activities.md)
* [Activities Core Concepts](/docs/concepts/activities/activities-core-concepts.md)
* [Activity Permissions](/docs/concepts/activities/activity-permissions.md)
* [Advanced Activity Rules](/docs/concepts/activities/advanced-activity-rules.md)
* [Activities API & Webhooks](/docs/concepts/activities/activities-api-and-webhooks.md)

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.kizen.com/docs/concepts/activities/activities-data-model.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
