Logic function: hello-world.ts
```typescript
import { CoreApiClient } from 'twenty-sdk/generated/core';
import { MetadataApiClient } from 'twenty-sdk/generated/metadata';
const handler = async () => {
const coreClient = new CoreApiClient();
const metadataClient = new MetadataApiClient();
// Query the core /graphql endpoint — fetch some people
const coreResult = await coreClient.query({
people: {
edges: {
node: {
id: true,
name: {
firstName: true,
lastName: true,
},
},
},
},
});
// Query the metadata /metadata endpoint — fetch current workspace
const metadataResult = await metadataClient.query({
currentWorkspace: {
id: true,
displayName: true,
},
});
return {
coreResponse: coreResult,
metadataResponse: metadataResult,
};
};
```
With route trigger should now produce:
<img width="582" height="238" alt="Screenshot 2026-02-25 at 17 14 29"
src="https://github.com/user-attachments/assets/8c597113-7552-4d32-845a-352083d84ac7"
/>
```json
{
"coreResponse": {
"people": {
"edges": [
{
"node": {
"id": "20202020-b000-4485-94de-70c2a98daef2",
"name": {
"firstName": "Jeffery",
"lastName": "Griffin"
}
}
},
{
"node": {
"id": "20202020-b003-415a-9051-133248495f7f",
"name": {
"firstName": "Terry",
"lastName": "Melendez"
}
}
},
{
"node": {
"id": "20202020-b00e-4bc1-87c8-00aeb49c10f8",
"name": {
"firstName": "Lee",
"lastName": "Jones"
}
}
},
{
"node": {
"id": "20202020-b012-44c1-9fdc-90f110962d07",
"name": {
"firstName": "Sarah",
"lastName": "Hernandez"
}
}
},
]
}
},
...
"metadataResponse": {
"currentWorkspace": {
"id": "20202020-1c25-4d02-bf25-6aeccf7ea419",
"displayName": "Apple"
}
}
}
Twenty Documentation
Official documentation for Twenty CRM, powered by Mintlify.
🌐 Live Site
Visit the documentation at docs.twenty.com
📚 Content
This repository contains:
- User Guide (46 pages) - Complete guide for Twenty users
- Developers (24 pages) - Technical documentation for developers
- Twenty UI (25 pages) - UI component library documentation
🚀 Local Development
To run the documentation locally:
# From the twenty monorepo root
npx nx run twenty-docs:dev
The documentation will be available at http://localhost:3000
📝 Editing Content
Adding/Editing Pages
-
Edit MDX files in the appropriate directory:
user-guide/- User documentationdevelopers/- Developer documentationtwenty-ui/- Component documentation
-
Update
navigation/base-structure.jsonif you need to change the tab/group hierarchy or add/remove pages. This file stays in the repo and is not uploaded to Crowdin. -
Keep the translation template (
navigation/navigation.template.json) in sync by runningyarn docs:generate-navigation-templateafter editing the base structure. This template is the only file that should be pushed to Crowdin. -
For each translated locale pulled from Crowdin, ensure a
packages/twenty-docs/l/<language>/navigation.jsonfile exists. These files contain labels only; page slugs always come from the base structure. -
Run
yarn docs:generateto rebuilddocs.jsonfrom the base structure + translated labels.
MDX Format
All documentation pages use MDX format with frontmatter:
---
title: Page Title
description: Page description
image: /images/path/to/image.png
---
Your content here...
Adding Images
- Place images in the
/images/directory - Reference them in MDX:
 - Or use Mintlify Frame component:
<Frame>
<img src="/images/your-image.png" alt="Description" />
</Frame>
🔧 Configuration
navigation/base-structure.json- Source of truth for tabs, groups, icons, and page slugs (English only, not sent to Crowdin).navigation/navigation.template.json- Generated translation template (labels only) that is uploaded to Crowdin.l/<language>/navigation.json- Locale-specific label files pulled from Crowdin.docs.json- Generated Mintlify configuration (always runyarn docs:generateafter modifying navigation files).package.json- Package dependencies and scripts (docs:generate,docs:generate-navigation-template, …).project.json- Nx workspace configuration
📦 Building
# Build the documentation
npx nx run twenty-docs:build
🔗 Links
🤝 Contributing
To contribute to the documentation:
- Fork the repository
- Make your changes in the
packages/twenty-docsdirectory - Test locally with
npx nx run twenty-docs:dev - Submit a pull request
📄 License
This documentation is part of the Twenty project and is licensed under AGPL-3.0.