Record Management (Tables, Kanban)
Relevant source files
The following files were used as context for generating this wiki page:
- packages/twenty-claude-skills/skills/twenty-record-presentation/SKILL.md
- packages/twenty-codex-plugin/references/use-twenty-mcp/result-formatting.md
- packages/twenty-codex-plugin/skills/develop-app/SKILL.md
- packages/twenty-codex-plugin/references/develop-app/layout.md
- packages/twenty-shared/src/constants/DocumentationPaths.ts
- packages/twenty-server/src/engine/metadata-modules/ai/ai-chat/constants/chat-system-prompts.const.ts
Record management in Twenty encompasses the systems and interfaces used to display, organize, and interact with CRM data. This includes core UI structures like Table and Kanban views, as well as the underlying data retrieval and presentation logic that powers both the standard web interface and AI-driven interactions.
The system is designed to provide clear, readable summaries of records, moving away from raw API outputs toward human-friendly formats. It supports various visual surfaces including object index views, record page layouts, and specific view types designed for different workflows.
Sources: packages/twenty-claude-skills/skills/twenty-record-presentation/SKILL.md, packages/twenty-codex-plugin/references/use-twenty-mcp/result-formatting.md
Core Presentation Patterns
Twenty uses specific Markdown patterns and UI components to present records. The choice of layout—labeled blocks, tables, or Kanban cards—depends on the number of records and the context of the interaction.
View Types and Selection
- Table Views: Used for comparing 2 to 10 records. They prioritize scanability with specific alignment rules (text left-aligned, numeric/money right-aligned).
- Labeled Blocks: Preferred for single, detailed record presentation.
- Kanban Views: Mentioned as a primary surface for managing record pipelines, particularly for objects like Opportunities or Projects.
- Calendar Views: Specialized views for date-driven records such as Tasks.
Sources: packages/twenty-claude-skills/skills/twenty-record-presentation/SKILL.md:46-60, packages/twenty-shared/src/constants/DocumentationPaths.ts:182-194
Data Presentation Workflow
The system follows a specific workflow to retrieve and present record data:
This diagram illustrates the process of transforming raw workspace data into a user-facing record display.
Sources: packages/twenty-claude-skills/skills/twenty-record-presentation/SKILL.md:12-23, packages/twenty-codex-plugin/references/use-twenty-mcp/result-formatting.md:11-20
Table Layout and Alignment
Tables are designed for high scanability. Columns are organized to keep stable edges for record names and predictable positions for metadata.
| Column Type | Alignment | Examples |
|---|---|---|
| Record Names | Left-aligned (:---) | Name, Company, Person |
| Numeric/Financial | Right-aligned (---:) | Amount, Count, Currency |
| Status/Short Text | Centered (:---:) | Stage, Source, Boolean (Yes/No) |
| Dates | Right/Fixed Edge | Created At, Last Updated |
Sources: packages/twenty-claude-skills/skills/twenty-record-presentation/SKILL.md:104-120, packages/twenty-codex-plugin/references/use-twenty-mcp/result-formatting.md:131-145
Alignment Rules
- Record names should stay on a stable left edge.
- Narrow columns for visual identifiers (Icons, Avatars) should precede the linked name.
- Fixed-format fields (dates, amounts) should be placed to the right of variable-width fields (names, domains).
Sources: packages/twenty-claude-skills/skills/twenty-record-presentation/SKILL.md:110-115, packages/twenty-codex-plugin/references/use-twenty-mcp/result-formatting.md:140-143
Value Formatting and Field Mapping
Technical field names and raw timestamps are automatically translated into user-facing labels and human-readable dates.
Field Label Mapping
The system converts camelCase or snake_case technical names into readable labels:
createdAt→ CreatedupdatedAt→ Last updatedworkspaceMemberId→ Workspace memberopportunityStage→ Opportunity stage
Sources: packages/twenty-claude-skills/skills/twenty-record-presentation/SKILL.md:78-85, packages/twenty-codex-plugin/references/use-twenty-mcp/result-formatting.md:107-114
Data Type Formatting
Values are formatted according to their semantic meaning:
- Money: Includes currency codes and grouping (e.g.,
EUR 12,450). - Booleans: Presented as
YesorNo. - Dates: Absolute dates are preferred (e.g.,
May 5, 2026, 11:43 AM). ISO timestamps are hidden by default. - Empty Fields: Shown as
Not setor omitted if irrelevant.
Sources: packages/twenty-claude-skills/skills/twenty-record-presentation/SKILL.md:87-101, packages/twenty-codex-plugin/references/use-twenty-mcp/result-formatting.md:116-127
Record Linking Architecture
Linking records back to their workspace context requires resolving the record identity and the workspace origin.
The sequence of steps to generate absolute record links within Tables and Blocks.
Sources: packages/twenty-claude-skills/skills/twenty-record-presentation/SKILL.md:32-44, packages/twenty-codex-plugin/references/use-twenty-mcp/result-formatting.md:34-53
Implementation in Apps
Developers extending Twenty can define and modify how records are managed through app entities.
Key Entity Commands
New layout and record management entities are added via the Twenty CLI:
yarn twenty dev:add: Preferred method to generate objects, fields, and views.yarn twenty dev --once: Synchronizes entity definitions to the active remote.
Sources: packages/twenty-codex-plugin/skills/develop-app/SKILL.md:58-75, packages/twenty-codex-plugin/AGENTS.md:46-48
Layout Configuration
Record management surfaces are configured through several files within an app's src/ directory:
- Views: Define how objects or filtered subsets are exposed.
- Navigation: Manages the sidebar and menu items.
- Page Layouts: Define the structure of individual record pages (Show pages).
- Front Components: Custom UI components that can be registered to interact with records.
Sources: packages/twenty-codex-plugin/skills/develop-app/SKILL.md:88-91, packages/twenty-shared/src/constants/DocumentationPaths.ts:25-50
Summary
Record Management in Twenty is a multi-layered system that prioritizes data readability and scanability. By enforcing strict formatting rules for tables and labeled blocks, the system ensures consistent presentation across various user surfaces. Developers can further customize these experiences by defining custom objects, fields, and layouts through the Twenty SDK and CLI tools.