Building a modern alternative to Salesforce, powered by the community.
Find a file
martmull 42e060ac74
Ws poc (#11293)
related to https://github.com/twentyhq/core-team-issues/issues/601

## Done
- add a `onDbEvent` `Subscription` graphql endpoint to listen to
database_event using what we have done with webhooks:
- you can subscribe to any `action` (created, updated, ...) for any
`objectNameSingular` or a specific `recordId`. Parameters are nullable
and treated as wildcards when null.
  - returns events with following shape
```typescript
  @Field(() => String)
  eventId: string;

  @Field()
  emittedAt: string;

  @Field(() => DatabaseEventAction)
  action: DatabaseEventAction;

  @Field(() => String)
  objectNameSingular: string;

  @Field(() => GraphQLJSON)
  record: ObjectRecord;

  @Field(() => [String], { nullable: true })
  updatedFields?: string[];
```
- front provide a componentEffect `<ListenRecordUpdatesEffect />` that
listen for an `objectNameSingular`, a `recordId` and a list of
`listenedFields`. It subscribes to record updates and updates its apollo
cached value for specified `listenedFields`
- subscription is protected with credentials

## Result

Here is an application with `workflowRun`


https://github.com/user-attachments/assets/c964d857-3b54-495f-bf14-587ba26c5a8c

---------

Co-authored-by: prastoin <paul@twenty.com>
2025-04-17 16:03:51 +02:00
.cursor/rules Better cursor rules (#10431) 2025-02-24 10:35:28 +01:00
.github feat(analytics): add clickhouse (#11174) 2025-04-16 16:33:10 +00:00
.nx Add nxw.js file (#8362) 2024-11-06 14:24:07 +01:00
.vscode [permissions] Add workspace + security settings permission gates (#10204) 2025-02-14 17:32:42 +01:00
.yarn/releases [FIX] Move preconstruct patch into twenty-shared package (#11124) 2025-03-24 15:51:14 +01:00
packages Ws poc (#11293) 2025-04-17 16:03:51 +02:00
tools/eslint-rules feat: add eslint rule for enforcing WorkspaceService naming convention (#6308) 2024-07-19 19:17:57 +02:00
.dockerignore feat: merge front and server dockerfiles and optimize build (#4589) 2024-03-21 19:22:21 +01:00
.eslintrc.global.cjs [FIX] Out of memory while running app localy (#11341) 2025-04-02 18:35:00 +02:00
.eslintrc.react.cjs Fix lint issues (#11475) 2025-04-09 17:35:25 +02:00
.gitignore have footer on emails (#11300) 2025-04-03 14:26:19 +02:00
.nvmrc Restore nvmrc (#10671) 2025-03-05 14:27:17 +01:00
.prettierignore POC: chore: use Nx workspace lint rules (#3163) 2024-01-03 23:07:25 +01:00
.prettierrc POC: chore: use Nx workspace lint rules (#3163) 2024-01-03 23:07:25 +01:00
.vale.ini Fix vale ci (#3353) 2024-01-10 17:05:23 +01:00
.yarnrc.yml i18n - translations (#10735) 2025-03-07 18:19:42 +01:00
crowdin.yml Translations - Crowdin, Set workspace member locale on signup, and optimizations (#10091) 2025-02-09 22:10:41 +01:00
jest.config.js POC: chore: use Nx workspace lint rules (#3163) 2024-01-03 23:07:25 +01:00
jest.preset.js POC: chore: use Nx workspace lint rules (#3163) 2024-01-03 23:07:25 +01:00
LICENSE feat(sso): allow to use OIDC and SAML (#7246) 2024-10-21 20:07:08 +02:00
Makefile feat(analytics): add clickhouse (#11174) 2025-04-16 16:33:10 +00:00
nx Fix execution permissions (#11604) 2025-04-16 11:46:37 +02:00
nx.json [CI][FRONT] Storybook tests sharding (#9448) 2025-01-10 18:40:03 +01:00
package.json Ws poc (#11293) 2025-04-17 16:03:51 +02:00
README.md Progress on translations (#10142) 2025-02-12 08:13:29 +01:00
render.yaml Begin moving to postgres spilo + adding pgvector (#8309) 2024-11-15 09:38:30 +01:00
tsconfig.base.json Fix import twenty-shared (#9754) 2025-01-20 23:10:39 +01:00
yarn.config.cjs [ENHC] Create Yarn constraints to validate node version (#10542) 2025-02-27 15:18:07 +01:00
yarn.lock Ws poc (#11293) 2025-04-17 16:03:51 +02:00


Twenty logo

The #1 Open-Source CRM

🌐 Website · 📚 Documentation · Roadmap · Discord · Figma


Companies view


Installation

See:
🚀 Self-hosting
🖥️ Local Setup

Does the world need another CRM?

We built Twenty for three reasons:

CRMs are too expensive, and users are trapped. Companies use locked-in customer data to hike prices. It shouldn't be that way.

A fresh start is required to build a better experience. We can learn from past mistakes and craft a cohesive experience inspired by new UX patterns from tools like Notion, Airtable or Linear.

We believe in Open-source and community. Hundreds of developers are already building Twenty together. Once we have plugin capabilities, a whole ecosystem will grow around it.


What You Can Do With Twenty

We're currently developing Twenty's beta version.

Please feel free to flag any specific needs you have by creating an issue.

Below are a few features we have implemented to date:

Add, filter, sort, edit, and track customers:

Companies view

Create one or several opportunities for each company:

Companies view

Track deals effortlessly with the email integration:

Companies view

Tailor your data model to meet business needs:

Companies view

See rich notes displayed in a timeline:

Companies view

Create tasks on records

Companies view

Companies view

Connect your CRM to all your tools through our APIs and Webhooks.

Companies view


Stack

Join the Community