syncable-entity-runner-and-actions

Implements create, update, and delete action handlers for Twenty workspace migration execution.

Updated Aug 3, 2026
One-click install
npx skills add https://github.com/masoodtalha/twenty --skill syncable-entity-runner-and-actions-masoodtalha
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: syncable-entity-runner-and-actions
Source: https://github.com/masoodtalha/twenty/tree/main/.cursor/skills/syncable-entity-runner-and-actions
Command: npx skills add https://github.com/masoodtalha/twenty --skill syncable-entity-runner-and-actions-masoodtalha

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When adding a new syncable entity to the Twenty CRM platform, developers must write runner-layer action handlers that transpile universal migration actions into flat entities and execute them against the metadata database. This Skill provides the exact patterns, base classes, and utilities needed to implement those handlers correctly. ## Core Features & Use Cases - Create Action Handler: Extends WorkspaceCreateActionHandlerService to transpile universal create actions and insert flat entities via TypeORM repositories. - Update Action Handler: Resolves universal relation identifiers in update payloads back to regular IDs before applying repository updates. - Delete Action Handler: Uses base-class delete transpilation helpers and performs hard deletes by entity ID. - Universal-to-Flat Conversion: Provides the fromUniversalFlatMyEntityToFlatMyEntity utility built on resolveUniversalRelationIdentifiersToIds. - Use Case: While building a new metadata entity (e.g., a custom object) in Twenty, use this Skill at Step 4 of the syncable entity workflow to wire up database execution for all migration actions. ## Quick Start Ask the AI to implement the create, update, and delete action handlers for your new syncable entity following the Twenty workspace migration runner pattern.

Frequently Asked Questions about syncable-entity-runner-and-actions

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement a workspace migration action handler in Twenty?▼

Extend the appropriate base class (WorkspaceCreateActionHandlerService, WorkspaceUpdateActionHandlerService, or WorkspaceDeleteActionHandlerService) and implement transpileUniversalActionToFlatAction plus executeForMetadata. Inject the entity's TypeORM repository with the 'metadata' datasource.

How to convert universal flat entities to flat entities in Twenty migrations?▼

Create a fromUniversalFlatMyEntityToFlatMyEntity utility that calls resolveUniversalRelationIdentifiersToIds with the metadata name, universal flat entity, and flat entity maps. This maps universal relation identifiers back to regular database IDs.

What is the difference between universal and flat entities in Twenty?▼

Universal entities use universal identifiers for relations so migrations remain portable across workspaces, while flat entities contain regular database IDs. Action handlers transpile universal actions into flat actions before executing database operations.

Does the delete action handler perform soft or hard deletes?▼

The delete handler performs hard deletes using the TypeORM repository delete() method with an array of entity IDs. Transpilation is handled by the base class helper transpileUniversalDeleteActionToFlatDeleteAction.

When should executeForWorkspaceSchema be implemented?▼

Implement executeForWorkspaceSchema only when the entity requires changes to the workspace schema itself. For metadata-only entities, the method can simply return without performing any operation.