i18n - translations (#15799)
Created by Github action --------- Co-authored-by: Crowdin Bot <support+bot@crowdin.com> Co-authored-by: github-actions <github-actions@twenty.com>
This commit is contained in:
committed by
GitHub
parent
cd5d0f9eac
commit
8cadd00d34
@@ -0,0 +1,56 @@
|
||||
---
|
||||
title: crwdns59724:0crwdne59724:0
|
||||
image: crwdns59726:0crwdne59726:0
|
||||
info: crwdns59728:0crwdne59728:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/docs/getting-started/api.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns59730:0crwdne59730:0
|
||||
|
||||
crwdns59732:0crwdne59732:0 crwdns59734:0crwdne59734:0 crwdns59736:0crwdne59736:0
|
||||
|
||||
crwdns59738:0crwdne59738:0 crwdns59740:0crwdne59740:0 crwdns59742:0crwdne59742:0
|
||||
crwdns59744:0https://app.twenty.com/settingscrwdne59744:0
|
||||
|
||||
## crwdns59746:0crwdne59746:0
|
||||
|
||||
crwdns59748:0crwdne59748:0 crwdns59750:0crwdne59750:0
|
||||
|
||||
- crwdns59752:0crwdne59752:0 crwdns59754:0crwdne59754:0 crwdns59756:0crwdne59756:0
|
||||
- crwdns59758:0crwdne59758:0 crwdns59760:0crwdne59760:0 crwdns59762:0crwdne59762:0
|
||||
|
||||
```
|
||||
Authorization: Bearer YOUR_API_KEY
|
||||
```
|
||||
|
||||
crwdns59764:0crwdne59764:0 crwdns59766:0crwdne59766:0 crwdns59768:0crwdne59768:0
|
||||
|
||||
## crwdns59770:0crwdne59770:0
|
||||
|
||||
crwdns59772:0crwdne59772:0
|
||||
|
||||
- crwdns59774:0crwdne59774:0
|
||||
- crwdns64012:0{your-domain}crwdne64012:0
|
||||
|
||||
crwdns59778:0crwdne59778:0 crwdns59780:0crwdne59780:0 crwdns59782:0crwdne59782:0
|
||||
|
||||
### crwdns59784:0crwdne59784:0
|
||||
|
||||
crwdns59786:0crwdne59786:0
|
||||
crwdns59788:0crwdne59788:0
|
||||
|
||||
### crwdns59790:0crwdne59790:0
|
||||
|
||||
crwdns59792:0crwdne59792:0
|
||||
crwdns59794:0crwdne59794:0 crwdns59796:0crwdne59796:0
|
||||
|
||||
- crwdns59798:0crwdne59798:0
|
||||
|
||||
- crwdns59800:0crwdne59800:0
|
||||
- crwdns59802:0{objectName}crwdne59802:0
|
||||
- crwdns59804:0crwdne59804:0
|
||||
|
||||
crwdns59806:0crwdne59806:0 crwdns59808:0crwdne59808:0 crwdns59810:0crwdne59810:0
|
||||
@@ -0,0 +1,87 @@
|
||||
---
|
||||
title: crwdns59378:0crwdne59378:0
|
||||
image: crwdns59380:0crwdne59380:0
|
||||
info: crwdns59382:0crwdne59382:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/docs/getting-started/webhooks.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns59384:0crwdne59384:0
|
||||
|
||||
crwdns59386:0crwdne59386:0 crwdns59388:0crwdne59388:0 crwdns59390:0crwdne59390:0
|
||||
|
||||
crwdns59392:0crwdne59392:0 crwdns59394:0crwdne59394:0
|
||||
|
||||
## crwdns59396:0crwdne59396:0
|
||||
|
||||
crwdns59398:0crwdne59398:0
|
||||
|
||||
1. crwdns59400:0crwdne59400:0
|
||||
2. crwdns59402:0crwdne59402:0
|
||||
3. crwdns59404:0crwdne59404:0 crwdns59406:0crwdne59406:0
|
||||
4. crwdns59408:0crwdne59408:0 crwdns59410:0crwdne59410:0
|
||||
|
||||
crwdns59412:0crwdne59412:0 crwdns59414:0crwdne59414:0 crwdns59416:0crwdne59416:0
|
||||
|
||||
## crwdns59418:0crwdne59418:0
|
||||
|
||||
crwdns59420:0crwdne59420:0 crwdns59422:0crwdne59422:0
|
||||
|
||||
- crwdns59424:0crwdne59424:0
|
||||
- crwdns59426:0crwdne59426:0
|
||||
- crwdns59428:0crwdne59428:0
|
||||
- crwdns59430:0crwdne59430:0
|
||||
|
||||
crwdns59432:0crwdne59432:0 crwdns59434:0crwdne59434:0 crwdns59436:0crwdne59436:0
|
||||
|
||||
```
|
||||
{
|
||||
"event": "person.created",
|
||||
"data": {
|
||||
"id": "abc12345",
|
||||
"firstName": "Alice",
|
||||
"lastName": "Doe",
|
||||
"email": "alice@example.com",
|
||||
"createdAt": "2025-02-10T15:30:45Z",
|
||||
"createdBy": "user_123"
|
||||
},
|
||||
"timestamp": "2025-02-10T15:30:50Z"
|
||||
}
|
||||
```
|
||||
|
||||
crwdns59438:0crwdne59438:0
|
||||
|
||||
- crwdns59440:0crwdne59440:0
|
||||
- crwdns59442:0crwdne59442:0
|
||||
- crwdns59444:0crwdne59444:0
|
||||
|
||||
crwdns59446:0crwdne59446:0 crwdns59448:0crwdne59448:0
|
||||
|
||||
crwdns59450:0crwdne59450:0 crwdns59452:0crwdne59452:0 crwdns59454:0crwdne59454:0
|
||||
|
||||
## crwdns59456:0crwdne59456:0
|
||||
|
||||
crwdns59458:0crwdne59458:0
|
||||
|
||||
crwdns59460:0crwdne59460:0
|
||||
|
||||
crwdns59462:0crwdne59462:0
|
||||
|
||||
1. crwdns59464:0crwdne59464:0
|
||||
2. crwdns59466:0crwdne59466:0
|
||||
3. crwdns59468:0crwdne59468:0
|
||||
|
||||
crwdns59470:0crwdne59470:0
|
||||
|
||||
```javascript
|
||||
const crypto = require("crypto");
|
||||
const timestamp = "1735066639761";
|
||||
const payload = JSON.stringify({...});
|
||||
const secret = "your-secret";
|
||||
const stringToSign = `${timestamp}:${JSON.stringify(payload)}`;
|
||||
const signature = crypto.createHmac("sha256", secret)
|
||||
.update(stringToSign)
|
||||
.digest("hex");
|
||||
```
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: crwdns60594:0crwdne60594:0
|
||||
image: crwdns60596:0crwdne60596:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/tips/light-bulb.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns60598:0crwdne60598:0
|
||||
|
||||
## crwdns60600:0crwdne60600:0
|
||||
|
||||
crwdns60602:0crwdne60602:0 crwdns60604:0crwdne60604:0
|
||||
crwdns60606:0crwdne60606:0 crwdns60608:0crwdne60608:0
|
||||
|
||||
## crwdns60610:0crwdne60610:0
|
||||
|
||||
crwdns60612:0crwdne60612:0 crwdns60614:0crwdne60614:0
|
||||
|
||||
crwdns60616:0crwdne60616:0 crwdns60618:0crwdne60618:0
|
||||
|
||||
## crwdns60620:0crwdne60620:0
|
||||
|
||||
crwdns60622:0crwdne60622:0 crwdns60624:0crwdne60624:0 crwdns60626:0crwdne60626:0 crwdns60628:0crwdne60628:0
|
||||
|
||||
crwdns60630:0crwdne60630:0 crwdns60632:0crwdne60632:0
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
title: crwdns60094:0crwdne60094:0
|
||||
image: crwdns60096:0crwdne60096:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/objects/objects.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns60098:0crwdne60098:0 crwdns60100:0crwdne60100:0
|
||||
|
||||
crwdns60102:0crwdne60102:0 crwdns60104:0crwdne60104:0 crwdns60106:0crwdne60106:0
|
||||
|
||||
crwdns60108:0crwdne60108:0 crwdns60110:0crwdne60110:0
|
||||
|
||||
## crwdns60112:0crwdne60112:0
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/server/custom-object-schema.png" alt="High level schema" />
|
||||
</div>
|
||||
|
||||
crwdns60114:0crwdne60114:0
|
||||
|
||||
## crwdns60116:0crwdne60116:0
|
||||
|
||||
crwdns60118:0crwdne60118:0 crwdns60120:0crwdne60120:0
|
||||
|
||||
- crwdns60122:0crwdne60122:0
|
||||
- crwdns60124:0crwdne60124:0
|
||||
- crwdns60126:0crwdne60126:0
|
||||
|
||||
crwdns60128:0crwdne60128:0 crwdns60130:0crwdne60130:0
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/server/add-custom-objects.jpeg" alt="Query the /metadata API to add custom objects" />
|
||||
</div>
|
||||
|
||||
crwdns60132:0crwdne60132:0
|
||||
|
||||
crwdns60134:0crwdne60134:0
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/server/custom-object-schema.png" alt="Query the /graphql endpoint to fetch data" />
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
title: crwdns60350:0crwdne60350:0
|
||||
image: crwdns60352:0crwdne60352:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/table-views/table.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns60354:0crwdne60354:0 crwdns60356:0crwdne60356:0
|
||||
|
||||
## crwdns60358:0crwdne60358:0
|
||||
|
||||
crwdns60360:0crwdne60360:0
|
||||
|
||||
```ts
|
||||
type FeatureFlagKey =
|
||||
| 'IS_FEATURENAME_ENABLED'
|
||||
| ...;
|
||||
```
|
||||
|
||||
crwdns60362:0crwdne60362:0
|
||||
|
||||
```ts
|
||||
enum FeatureFlagKeys {
|
||||
IsFeatureNameEnabled = 'IS_FEATURENAME_ENABLED',
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
crwdns60364:0crwdne60364:0
|
||||
|
||||
```ts
|
||||
@Gate({
|
||||
featureFlag: 'IS_FEATURENAME_ENABLED',
|
||||
})
|
||||
```
|
||||
|
||||
crwdns60366:0crwdne60366:0
|
||||
|
||||
```ts
|
||||
const isFeatureNameEnabled = useIsFeatureEnabled('IS_FEATURENAME_ENABLED');
|
||||
```
|
||||
|
||||
## crwdns60368:0crwdne60368:0
|
||||
|
||||
crwdns60370:0crwdne60370:0
|
||||
|
||||
| crwdns60372:0crwdne60372:0 | crwdns60374:0crwdne60374:0 | crwdns60376:0crwdne60376:0 | crwdns60378:0crwdne60378:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns60380:0crwdne60380:0 | crwdns60382:0crwdne60382:0 | crwdns60384:0crwdne60384:0 | crwdns60386:0crwdne60386:0 |
|
||||
+130
@@ -0,0 +1,130 @@
|
||||
---
|
||||
title: crwdns59472:0crwdne59472:0
|
||||
info: crwdns59474:0crwdne59474:0
|
||||
image: crwdns59476:0crwdne59476:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/fields/field.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns59478:0crwdne59478:0
|
||||
|
||||
```
|
||||
server
|
||||
└───ability
|
||||
└───constants
|
||||
└───core
|
||||
└───database
|
||||
└───decorators
|
||||
└───filters
|
||||
└───guards
|
||||
└───health
|
||||
└───integrations
|
||||
└───metadata
|
||||
└───workspace
|
||||
└───utils
|
||||
```
|
||||
|
||||
## crwdns59480:0crwdne59480:0
|
||||
|
||||
crwdns59482:0crwdne59482:0
|
||||
|
||||
## crwdns59484:0crwdne59484:0
|
||||
|
||||
crwdns59486:0crwdne59486:0
|
||||
|
||||
crwdns59488:0https://docs.nestjs.com/custom-decoratorscrwdne59488:0
|
||||
|
||||
## crwdns59490:0crwdne59490:0
|
||||
|
||||
crwdns59492:0crwdne59492:0
|
||||
|
||||
## crwdns59494:0crwdne59494:0
|
||||
|
||||
crwdns59496:0https://docs.nestjs.com/guardscrwdne59496:0
|
||||
|
||||
## crwdns59498:0crwdne59498:0
|
||||
|
||||
crwdns59500:0crwdne59500:0
|
||||
|
||||
## crwdns59502:0crwdne59502:0
|
||||
|
||||
crwdns59504:0crwdne59504:0
|
||||
|
||||
## crwdns59506:0crwdne59506:0
|
||||
|
||||
crwdns59508:0crwdne59508:0
|
||||
|
||||
### crwdns59510:0crwdne59510:0
|
||||
|
||||
```
|
||||
workspace
|
||||
|
||||
└───workspace-schema-builder
|
||||
└───factories
|
||||
└───graphql-types
|
||||
└───database
|
||||
└───interfaces
|
||||
└───object-definitions
|
||||
└───services
|
||||
└───storage
|
||||
└───utils
|
||||
└───workspace-resolver-builder
|
||||
└───factories
|
||||
└───interfaces
|
||||
└───workspace-query-builder
|
||||
└───factories
|
||||
└───interfaces
|
||||
└───workspace-query-runner
|
||||
└───interfaces
|
||||
└───utils
|
||||
└───workspace-datasource
|
||||
└───workspace-manager
|
||||
└───workspace-migration-runner
|
||||
└───utils
|
||||
└───workspace.module.ts
|
||||
└───workspace.factory.spec.ts
|
||||
└───workspace.factory.ts
|
||||
```
|
||||
|
||||
crwdns59512:0crwdne59512:0 crwdns59514:0crwdne59514:0 crwdns59516:0crwdne59516:0
|
||||
|
||||
crwdns59518:0crwdne59518:0
|
||||
|
||||
### crwdns59520:0crwdne59520:0
|
||||
|
||||
crwdns59522:0crwdne59522:0
|
||||
|
||||
#### crwdns59524:0crwdne59524:0
|
||||
|
||||
crwdns59526:0crwdne59526:0
|
||||
|
||||
- crwdns59528:0crwdne59528:0
|
||||
- crwdns59530:0crwdne59530:0
|
||||
|
||||
#### crwdns59532:0crwdne59532:0
|
||||
|
||||
crwdns59534:0crwdne59534:0
|
||||
|
||||
#### crwdns59536:0crwdne59536:0
|
||||
|
||||
crwdns59538:0crwdne59538:0
|
||||
|
||||
#### crwdns59540:0crwdne59540:0
|
||||
|
||||
crwdns59542:0crwdne59542:0
|
||||
|
||||
#### crwdns59544:0crwdne59544:0
|
||||
|
||||
crwdns59546:0crwdne59546:0
|
||||
|
||||
### crwdns59548:0crwdne59548:0
|
||||
|
||||
crwdns59550:0crwdne59550:0
|
||||
|
||||
crwdns59552:0crwdne59552:0
|
||||
|
||||
### crwdns59554:0crwdne59554:0
|
||||
|
||||
crwdns59556:0crwdne59556:0
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
title: crwdns60634:0crwdne60634:0
|
||||
image: crwdns60636:0crwdne60636:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/emails/emails_header.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns60638:0crwdne60638:0 crwdns60640:0crwdne60640:0
|
||||
crwdns60642:0crwdne60642:0
|
||||
|
||||
crwdns60644:0https://bullmq.io/crwdne60644:0
|
||||
|
||||
## crwdns60646:0crwdne60646:0
|
||||
|
||||
1. crwdns60648:0crwdne60648:0
|
||||
2. crwdns60650:0crwdne60650:0
|
||||
3. crwdns60652:0crwdne60652:0
|
||||
4. crwdns60654:0crwdne60654:0
|
||||
|
||||
### crwdns60656:0crwdne60656:0
|
||||
|
||||
```ts
|
||||
class Resolver {
|
||||
constructor(@Inject(MESSAGE_QUEUES.custom) private queue: MessageQueueService) {}
|
||||
|
||||
async onSomeAction() {
|
||||
//business logic
|
||||
await this.queue.add(someData);
|
||||
}
|
||||
}
|
||||
|
||||
//async worker
|
||||
class CustomWorker {
|
||||
constructor(@Inject(MESSAGE_QUEUES.custom) private queue: MessageQueueService) {
|
||||
this.initWorker();
|
||||
}
|
||||
|
||||
async initWorker() {
|
||||
await this.queue.work(async ({ id, data }) => {
|
||||
//worker logic
|
||||
});
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
---
|
||||
title: crwdns60016:0crwdne60016:0
|
||||
image: crwdns60018:0crwdne60018:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/kanban-views/kanban.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns60020:0crwdne60020:0
|
||||
|
||||
crwdns60022:0crwdne60022:0
|
||||
crwdns64014:0{command}crwdnd64014:0{command}crwdne64014:0
|
||||
|
||||
### crwdns60026:0crwdne60026:0
|
||||
|
||||
```
|
||||
npx nx database:reset twenty-server # setup the database with dev seeds
|
||||
```
|
||||
|
||||
### crwdns60028:0crwdne60028:0
|
||||
|
||||
```
|
||||
npx nx run twenty-server:start
|
||||
```
|
||||
|
||||
### crwdns60030:0crwdne60030:0
|
||||
|
||||
```
|
||||
npx nx run twenty-server:lint # pass --fix to fix lint errors
|
||||
```
|
||||
|
||||
### crwdns60032:0crwdne60032:0
|
||||
|
||||
```
|
||||
npx nx run twenty-server:test:unit # run unit tests
|
||||
npx nx run twenty-server:test:integration # run integration tests
|
||||
```
|
||||
|
||||
crwdns60034:0crwdne60034:0
|
||||
|
||||
### crwdns60036:0crwdne60036:0
|
||||
|
||||
crwdns60038:0crwdne60038:0
|
||||
|
||||
```bash
|
||||
npx nx run twenty-server:database:reset
|
||||
```
|
||||
|
||||
### crwdns60040:0crwdne60040:0
|
||||
|
||||
#### crwdns60042:0crwdne60042:0
|
||||
|
||||
```bash
|
||||
npx nx run twenty-server:typeorm migration:generate src/database/typeorm/core/migrations/nameOfYourMigration -d src/database/typeorm/core/core.datasource.ts
|
||||
```
|
||||
|
||||
#### crwdns60044:0crwdne60044:0
|
||||
|
||||
crwdns60046:0crwdne60046:0
|
||||
|
||||
```bash
|
||||
npx nx run twenty-server:command workspace:sync-metadata -f
|
||||
```
|
||||
|
||||
<Warning>
|
||||
|
||||
crwdns60048:0crwdne60048:0
|
||||
|
||||
crwdns60050:0crwdne60050:0
|
||||
|
||||
</Warning>
|
||||
|
||||
## crwdns60052:0crwdne60052:0
|
||||
|
||||
crwdns60054:0crwdne60054:0
|
||||
|
||||
crwdns60056:0crwdne60056:0 crwdns60058:0crwdne60058:0 crwdns60060:0crwdne60060:0
|
||||
|
||||
crwdns60062:0crwdne60062:0
|
||||
|
||||
crwdns60064:0crwdne60064:0
|
||||
|
||||
- crwdns60066:0https://nestjs.com/crwdne60066:0
|
||||
- crwdns60068:0https://typeorm.io/crwdne60068:0
|
||||
- crwdns60070:0https://the-guild.dev/graphql/yoga-servercrwdne60070:0
|
||||
|
||||
crwdns60072:0crwdne60072:0
|
||||
|
||||
- crwdns60074:0https://www.postgresql.org/crwdne60074:0
|
||||
|
||||
crwdns60076:0crwdne60076:0
|
||||
|
||||
- crwdns60078:0https://sentry.io/welcome/crwdne60078:0
|
||||
|
||||
crwdns60080:0crwdne60080:0
|
||||
|
||||
- crwdns60082:0https://jestjs.io/crwdne60082:0
|
||||
|
||||
crwdns60084:0crwdne60084:0
|
||||
|
||||
- crwdns60086:0https://yarnpkg.com/crwdne60086:0
|
||||
- crwdns60088:0https://eslint.org/crwdne60088:0
|
||||
|
||||
crwdns60090:0crwdne60090:0
|
||||
|
||||
- crwdns60092:0https://aws.amazon.com/eks/crwdne60092:0
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
---
|
||||
title: crwdns60302:0crwdne60302:0
|
||||
image: crwdns60304:0crwdne60304:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/integrations/plug.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns60306:0https://zapier.com/crwdne60306:0 crwdns60308:0crwdne60308:0
|
||||
|
||||
## crwdns60310:0crwdne60310:0
|
||||
|
||||
crwdns60312:0crwdne60312:0 crwdns60314:0crwdne60314:0
|
||||
|
||||
crwdns60316:0https://zapier.com/how-it-workscrwdne60316:0
|
||||
|
||||
## crwdns60318:0crwdne60318:0
|
||||
|
||||
### crwdns60320:0crwdne60320:0
|
||||
|
||||
```bash
|
||||
cd packages/twenty-zapier
|
||||
|
||||
yarn
|
||||
```
|
||||
|
||||
### crwdns60322:0crwdne60322:0
|
||||
|
||||
crwdns60324:0crwdne60324:0
|
||||
|
||||
```bash
|
||||
zapier login
|
||||
```
|
||||
|
||||
### crwdns60326:0crwdne60326:0
|
||||
|
||||
crwdns60328:0crwdne60328:0
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
crwdns60330:0http://localhost:3000/settings/api-webhookscrwdne60330:0
|
||||
|
||||
crwdns60332:0crwdne60332:0
|
||||
|
||||
## crwdns60334:0crwdne60334:0
|
||||
|
||||
<Warning>
|
||||
|
||||
crwdns60336:0crwdne60336:0
|
||||
|
||||
</Warning>
|
||||
|
||||
### crwdns60338:0crwdne60338:0
|
||||
|
||||
```bash
|
||||
yarn test
|
||||
```
|
||||
|
||||
### crwdns60340:0crwdne60340:0
|
||||
|
||||
```bash
|
||||
yarn format
|
||||
```
|
||||
|
||||
### crwdns60342:0crwdne60342:0
|
||||
|
||||
```bash
|
||||
yarn watch
|
||||
```
|
||||
|
||||
### crwdns60344:0crwdne60344:0
|
||||
|
||||
```bash
|
||||
yarn validate
|
||||
```
|
||||
|
||||
### crwdns60346:0crwdne60346:0
|
||||
|
||||
```bash
|
||||
yarn deploy
|
||||
```
|
||||
|
||||
### crwdns60348:0crwdne60348:0
|
||||
|
||||
```bash
|
||||
zapier
|
||||
```
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: crwdns59078:0crwdne59078:0
|
||||
image: crwdns59080:0crwdne59080:0
|
||||
info: crwdns59082:0crwdne59082:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/api/api.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns59084:0crwdne59084:0
|
||||
|
||||
crwdns59086:0https://github.com/twentyhq/twenty/issues/newcrwdne59086:0
|
||||
|
||||
crwdns59088:0https://discord.gg/cx5n4Jzs57crwdne59088:0
|
||||
|
||||
## crwdns59090:0crwdne59090:0
|
||||
|
||||
crwdns59092:0https://github.com/twentyhq/twenty/discussions/newcrwdne59092:0
|
||||
@@ -0,0 +1,333 @@
|
||||
---
|
||||
title: crwdns60144:0crwdne60144:0
|
||||
image: crwdns60146:0crwdne60146:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/tips/light-bulb.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns60148:0crwdne60148:0
|
||||
|
||||
## crwdns60150:0crwdne60150:0
|
||||
|
||||
crwdns60152:0crwdne60152:0
|
||||
|
||||
### crwdns60154:0crwdne60154:0
|
||||
|
||||
crwdns60156:0crwdne60156:0
|
||||
|
||||
<Warning>
|
||||
|
||||
crwdns60158:0crwdne60158:0
|
||||
|
||||
</Warning>
|
||||
|
||||
```tsx
|
||||
export const myAtomState = atom({
|
||||
key: 'myAtomState',
|
||||
default: 'default value',
|
||||
});
|
||||
|
||||
export const MyComponent = () => {
|
||||
const [myAtom, setMyAtom] = useRecoilState(myAtomState);
|
||||
|
||||
return (
|
||||
<div>
|
||||
<input
|
||||
value={myAtom}
|
||||
onChange={(e) => setMyAtom(e.target.value)}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
### crwdns60160:0crwdne60160:0
|
||||
|
||||
crwdns60162:0crwdne60162:0
|
||||
|
||||
crwdns60164:0crwdne60164:0
|
||||
|
||||
crwdns60166:0#managing-re-renderscrwdne60166:0
|
||||
|
||||
## crwdns60168:0crwdne60168:0
|
||||
|
||||
crwdns60170:0crwdne60170:0
|
||||
|
||||
crwdns60172:0crwdne60172:0
|
||||
|
||||
crwdns60174:0crwdne60174:0
|
||||
|
||||
### crwdns60176:0crwdne60176:0
|
||||
|
||||
crwdns60178:0crwdne60178:0
|
||||
|
||||
crwdns60180:0crwdne60180:0
|
||||
|
||||
crwdns60182:0crwdne60182:0
|
||||
|
||||
### crwdns60184:0crwdne60184:0
|
||||
|
||||
crwdns60186:0crwdne60186:0
|
||||
|
||||
crwdns60188:0crwdne60188:0
|
||||
|
||||
crwdns60190:0crwdne60190:0
|
||||
|
||||
crwdns60192:0crwdne60192:0
|
||||
|
||||
### crwdns60194:0crwdne60194:0
|
||||
|
||||
crwdns60196:0crwdne60196:0
|
||||
|
||||
crwdns60198:0crwdne60198:0
|
||||
|
||||
```tsx
|
||||
// ❌ Bad, will cause re-renders even if data is not changing,
|
||||
// because useEffect needs to be re-evaluated
|
||||
export const PageComponent = () => {
|
||||
const [data, setData] = useRecoilState(dataState);
|
||||
const [someDependency] = useRecoilState(someDependencyState);
|
||||
|
||||
useEffect(() => {
|
||||
if(someDependency !== data) {
|
||||
setData(someDependency);
|
||||
}
|
||||
}, [someDependency]);
|
||||
|
||||
return <div>{data}</div>;
|
||||
};
|
||||
|
||||
export const App = () => (
|
||||
<RecoilRoot>
|
||||
<PageComponent />
|
||||
</RecoilRoot>
|
||||
);
|
||||
```
|
||||
|
||||
```tsx
|
||||
// ✅ Good, will not cause re-renders if data is not changing,
|
||||
// because useEffect is re-evaluated in another sibling component
|
||||
export const PageComponent = () => {
|
||||
const [data, setData] = useRecoilState(dataState);
|
||||
|
||||
return <div>{data}</div>;
|
||||
};
|
||||
|
||||
export const PageData = () => {
|
||||
const [data, setData] = useRecoilState(dataState);
|
||||
const [someDependency] = useRecoilState(someDependencyState);
|
||||
|
||||
useEffect(() => {
|
||||
if(someDependency !== data) {
|
||||
setData(someDependency);
|
||||
}
|
||||
}, [someDependency]);
|
||||
|
||||
return <></>;
|
||||
};
|
||||
|
||||
export const App = () => (
|
||||
<RecoilRoot>
|
||||
<PageData />
|
||||
<PageComponent />
|
||||
</RecoilRoot>
|
||||
);
|
||||
```
|
||||
|
||||
### crwdns60200:0crwdne60200:0
|
||||
|
||||
crwdns60202:0crwdne60202:0
|
||||
|
||||
crwdns60204:0crwdne60204:0
|
||||
|
||||
### crwdns60206:0crwdne60206:0
|
||||
|
||||
crwdns60208:0crwdne60208:0
|
||||
|
||||
### crwdns60210:0crwdne60210:0
|
||||
|
||||
crwdns60212:0crwdne60212:0
|
||||
|
||||
## crwdns60214:0crwdne60214:0
|
||||
|
||||
crwdns60216:0crwdne60216:0 crwdns60218:0crwdne60218:0
|
||||
|
||||
1. crwdns60220:0crwdne60220:0
|
||||
|
||||
2. crwdns60222:0crwdne60222:0
|
||||
|
||||
3. crwdns60224:0crwdne60224:0
|
||||
|
||||
4. crwdns60226:0crwdne60226:0
|
||||
|
||||
crwdns60228:0crwdne60228:0
|
||||
|
||||
## crwdns60230:0crwdne60230:0
|
||||
|
||||
### crwdns60232:0crwdne60232:0
|
||||
|
||||
crwdns60234:0crwdne60234:0
|
||||
|
||||
#### crwdns60236:0crwdne60236:0
|
||||
|
||||
crwdns60238:0crwdne60238:0 crwdns60240:0crwdne60240:0 crwdns60242:0crwdne60242:0 crwdns60244:0crwdne60244:0
|
||||
|
||||
```tsx
|
||||
// ❌ Bad, uses a generic name that doesn't communicate its
|
||||
// purpose or content clearly
|
||||
const [value, setValue] = useState('');
|
||||
```
|
||||
|
||||
```tsx
|
||||
// ✅ Good, uses a descriptive name
|
||||
const [email, setEmail] = useState('');
|
||||
```
|
||||
|
||||
#### crwdns60246:0crwdne60246:0
|
||||
|
||||
- crwdns60248:0crwdne60248:0
|
||||
|
||||
### crwdns60250:0crwdne60250:0
|
||||
|
||||
crwdns60252:0crwdne60252:0
|
||||
|
||||
```tsx
|
||||
// ❌ Bad
|
||||
const onEmailChange = (val: string) => {
|
||||
// ...
|
||||
};
|
||||
```
|
||||
|
||||
```tsx
|
||||
// ✅ Good
|
||||
const handleEmailChange = (val: string) => {
|
||||
// ...
|
||||
};
|
||||
```
|
||||
|
||||
## crwdns60254:0crwdne60254:0
|
||||
|
||||
crwdns60256:0crwdne60256:0
|
||||
|
||||
crwdns60258:0crwdne60258:0
|
||||
|
||||
crwdns60260:0crwdne60260:0
|
||||
|
||||
```tsx
|
||||
type EmailFieldProps = {
|
||||
value: string;
|
||||
disabled?: boolean;
|
||||
};
|
||||
|
||||
const EmailField = ({ value, disabled = false }: EmailFieldProps) => (
|
||||
<TextInput value={value} disabled={disabled} fullWidth />
|
||||
);
|
||||
```
|
||||
|
||||
crwdns60262:0crwdne60262:0
|
||||
|
||||
```tsx
|
||||
// ❌ Bad, passing in the same value as the default value adds no value
|
||||
const Form = () => <EmailField value="username@email.com" disabled={false} />;
|
||||
```
|
||||
|
||||
```tsx
|
||||
// ✅ Good, assumes the default value
|
||||
const Form = () => <EmailField value="username@email.com" />;
|
||||
```
|
||||
|
||||
## crwdns60264:0crwdne60264:0
|
||||
|
||||
crwdns60266:0crwdne60266:0
|
||||
|
||||
crwdns60268:0crwdne60268:0
|
||||
|
||||
```tsx
|
||||
const SomeParentComponent = () => <MyComponent Icon={MyIcon} />;
|
||||
|
||||
// In MyComponent
|
||||
const MyComponent = ({ MyIcon }: { MyIcon: IconComponent }) => {
|
||||
const theme = useTheme();
|
||||
|
||||
return (
|
||||
<div>
|
||||
<MyIcon size={theme.icon.size.md}>
|
||||
</div>
|
||||
)
|
||||
};
|
||||
```
|
||||
|
||||
crwdns60270:0crwdne60270:0
|
||||
|
||||
## crwdns60272:0crwdne60272:0
|
||||
|
||||
crwdns60274:0crwdne60274:0 crwdns60276:0crwdne60276:0
|
||||
|
||||
1. crwdns60278:0crwdne60278:0
|
||||
|
||||
2. crwdns60280:0crwdne60280:0
|
||||
|
||||
3. crwdns60282:0crwdne60282:0
|
||||
|
||||
crwdns60284:0#state-managementcrwdne60284:0
|
||||
|
||||
## crwdns60286:0crwdne60286:0
|
||||
|
||||
crwdns60288:0crwdne60288:0
|
||||
|
||||
crwdns60290:0crwdne60290:0
|
||||
|
||||
```js
|
||||
{
|
||||
alias: {
|
||||
"~": path.resolve(__dirname, "src"),
|
||||
"@": path.resolve(__dirname, "src/modules"),
|
||||
"@testing": path.resolve(__dirname, "src/testing"),
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
crwdns60292:0crwdne60292:0
|
||||
|
||||
```tsx
|
||||
// ❌ Bad, specifies the entire relative path
|
||||
import {
|
||||
CatalogDecorator
|
||||
} from '../../../../../testing/decorators/CatalogDecorator';
|
||||
import {
|
||||
ComponentDecorator
|
||||
} from '../../../../../testing/decorators/ComponentDecorator';
|
||||
```
|
||||
|
||||
```tsx
|
||||
// ✅ Good, utilises the designated aliases
|
||||
import { CatalogDecorator } from '~/testing/decorators/CatalogDecorator';
|
||||
import { ComponentDecorator } from 'twenty-ui/testing';
|
||||
```
|
||||
|
||||
## crwdns60294:0crwdne60294:0
|
||||
|
||||
crwdns60296:0https://github.com/colinhacks/zodcrwdne60296:0
|
||||
|
||||
```js
|
||||
const validationSchema = z
|
||||
.object({
|
||||
exist: z.boolean(),
|
||||
email: z
|
||||
.string()
|
||||
.email('Email must be a valid email'),
|
||||
password: z
|
||||
.string()
|
||||
.regex(PASSWORD_REGEX, 'Password must contain at least 8 characters'),
|
||||
})
|
||||
.required();
|
||||
|
||||
type Form = z.infer<typeof validationSchema>;
|
||||
```
|
||||
|
||||
## crwdns60298:0crwdne60298:0
|
||||
|
||||
crwdns60300:0crwdne60300:0
|
||||
|
||||
+114
@@ -0,0 +1,114 @@
|
||||
---
|
||||
title: crwdns59812:0crwdne59812:0
|
||||
info: crwdns59814:0crwdne59814:0
|
||||
image: crwdns59816:0crwdne59816:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/fields/field.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns59818:0crwdne59818:0
|
||||
|
||||
crwdns59820:0crwdne59820:0
|
||||
|
||||
```
|
||||
front
|
||||
└───modules
|
||||
│ └───module1
|
||||
│ │ └───submodule1
|
||||
│ └───module2
|
||||
│ └───ui
|
||||
│ │ └───display
|
||||
│ │ └───inputs
|
||||
│ │ │ └───buttons
|
||||
│ │ └───...
|
||||
└───pages
|
||||
└───...
|
||||
```
|
||||
|
||||
## crwdns59822:0crwdne59822:0
|
||||
|
||||
crwdns59824:0crwdne59824:0 crwdns59826:0crwdne59826:0
|
||||
|
||||
## crwdns59828:0crwdne59828:0
|
||||
|
||||
crwdns59830:0crwdne59830:0
|
||||
crwdns59832:0crwdne59832:0 crwdns59834:0crwdne59834:0
|
||||
|
||||
```
|
||||
module1
|
||||
└───components
|
||||
│ └───component1
|
||||
│ └───component2
|
||||
└───constants
|
||||
└───contexts
|
||||
└───graphql
|
||||
│ └───fragments
|
||||
│ └───queries
|
||||
│ └───mutations
|
||||
└───hooks
|
||||
│ └───internal
|
||||
└───states
|
||||
│ └───selectors
|
||||
└───types
|
||||
└───utils
|
||||
```
|
||||
|
||||
### crwdns59836:0crwdne59836:0
|
||||
|
||||
crwdns59838:0crwdne59838:0
|
||||
|
||||
crwdns59840:0https://react.dev/reference/react#context-hookscrwdne59840:0
|
||||
|
||||
### crwdns59842:0crwdne59842:0
|
||||
|
||||
crwdns59844:0crwdne59844:0
|
||||
|
||||
crwdns59846:0https://graphql.org/learn/crwdne59846:0
|
||||
|
||||
- crwdns59848:0crwdne59848:0
|
||||
|
||||
crwdns59850:0crwdne59850:0 crwdns59852:0crwdne59852:0
|
||||
|
||||
crwdns59854:0https://graphql.org/learn/queries/#fragmentscrwdne59854:0
|
||||
|
||||
- crwdns59856:0crwdne59856:0
|
||||
|
||||
crwdns59858:0https://graphql.org/learn/queries/crwdne59858:0
|
||||
|
||||
- crwdns59860:0crwdne59860:0
|
||||
|
||||
crwdns59862:0https://graphql.org/learn/queries/#mutationscrwdne59862:0
|
||||
|
||||
### crwdns59864:0crwdne59864:0
|
||||
|
||||
crwdns59866:0https://react.dev/learn/reusing-logic-with-custom-hookscrwdne59866:0
|
||||
|
||||
### crwdns59868:0crwdne59868:0
|
||||
|
||||
crwdns59870:0crwdne59870:0 crwdns59872:0https://recoiljs.orgcrwdne59872:0
|
||||
|
||||
- crwdns59874:0https://recoiljs.org/docs/basic-tutorial/selectorscrwdne59874:0
|
||||
|
||||
crwdns59876:0crwdne59876:0
|
||||
|
||||
### crwdns59878:0crwdne59878:0
|
||||
|
||||
crwdns59880:0crwdne59880:0 crwdns59882:0crwdne59882:0
|
||||
|
||||
## crwdns59884:0crwdne59884:0
|
||||
|
||||
crwdns59886:0crwdne59886:0
|
||||
|
||||
crwdns59888:0crwdne59888:0 crwdns59890:0crwdne59890:0
|
||||
|
||||
crwdns59892:0crwdne59892:0
|
||||
|
||||
## crwdns59894:0crwdne59894:0
|
||||
|
||||
crwdns59896:0crwdne59896:0 crwdns59898:0crwdne59898:0
|
||||
|
||||
### crwdns59900:0crwdne59900:0
|
||||
|
||||
crwdns59902:0crwdne59902:0 crwdns59904:0crwdne59904:0
|
||||
@@ -0,0 +1,96 @@
|
||||
---
|
||||
title: crwdns60700:0crwdne60700:0
|
||||
image: crwdns60702:0crwdne60702:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/create-workspace/workspace-cover.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns60704:0crwdne60704:0
|
||||
|
||||
### crwdns60706:0crwdne60706:0
|
||||
|
||||
```bash
|
||||
npx nx start twenty-front
|
||||
```
|
||||
|
||||
### crwdns60708:0crwdne60708:0
|
||||
|
||||
```bash
|
||||
npx nx run twenty-front:graphql:generate --configuration=metadata
|
||||
```
|
||||
|
||||
crwdns60710:0crwdne60710:0
|
||||
|
||||
```bash
|
||||
npx nx run twenty-front:graphql:generate
|
||||
```
|
||||
|
||||
### crwdns60712:0crwdne60712:0
|
||||
|
||||
```bash
|
||||
npx nx run twenty-front:lint # pass --fix to fix lint errors
|
||||
```
|
||||
|
||||
## crwdns60714:0crwdne60714:0
|
||||
|
||||
```bash
|
||||
npx nx run twenty-front:lingui:extract
|
||||
npx nx run twenty-front:lingui:compile
|
||||
```
|
||||
|
||||
### crwdns60716:0crwdne60716:0
|
||||
|
||||
```bash
|
||||
npx nx run twenty-front:test # run jest tests
|
||||
npx nx run twenty-front:storybook:serve:dev # run storybook
|
||||
npx nx run twenty-front:storybook:test # run tests # (needs yarn storybook:serve:dev to be running)
|
||||
npx nx run twenty-front:storybook:coverage # (needs yarn storybook:serve:dev to be running)
|
||||
```
|
||||
|
||||
## crwdns60718:0crwdne60718:0
|
||||
|
||||
crwdns60720:0crwdne60720:0
|
||||
|
||||
crwdns60722:0crwdne60722:0
|
||||
|
||||
- crwdns60724:0https://react.dev/crwdne60724:0
|
||||
- crwdns60726:0https://www.apollographql.com/docs/crwdne60726:0
|
||||
- crwdns60728:0https://the-guild.dev/graphql/codegencrwdne60728:0
|
||||
- crwdns60730:0https://recoiljs.org/docs/introduction/core-conceptscrwdne60730:0
|
||||
- crwdns60732:0https://www.typescriptlang.org/crwdne60732:0
|
||||
|
||||
crwdns60734:0crwdne60734:0
|
||||
|
||||
- crwdns60736:0https://jestjs.io/crwdne60736:0
|
||||
- crwdns60738:0https://storybook.js.org/crwdne60738:0
|
||||
|
||||
crwdns60740:0crwdne60740:0
|
||||
|
||||
- crwdns60742:0https://yarnpkg.com/crwdne60742:0
|
||||
- crwdns60744:0https://craco.js.org/docs/crwdne60744:0
|
||||
- crwdns60746:0https://eslint.org/crwdne60746:0
|
||||
|
||||
## crwdns60748:0crwdne60748:0
|
||||
|
||||
### crwdns60750:0crwdne60750:0
|
||||
|
||||
crwdns60752:0https://reactrouter.com/crwdne60752:0
|
||||
|
||||
crwdns60754:0/developers/frontend-development/best-practices-front#managing-re-renderscrwdne60754:0
|
||||
|
||||
### crwdns60756:0crwdne60756:0
|
||||
|
||||
crwdns60758:0https://recoiljs.org/docs/introduction/core-conceptscrwdne60758:0
|
||||
|
||||
crwdns60760:0/developers/frontend-development/best-practices-front#state-managementcrwdne60760:0
|
||||
|
||||
## crwdns60762:0crwdne60762:0
|
||||
|
||||
crwdns60764:0https://jestjs.io/crwdnd60764:0https://storybook.js.org/crwdne60764:0
|
||||
|
||||
crwdns60766:0crwdne60766:0
|
||||
|
||||
crwdns60768:0crwdne60768:0
|
||||
|
||||
@@ -0,0 +1,183 @@
|
||||
---
|
||||
title: crwdns60516:0crwdne60516:0
|
||||
image: crwdns60518:0crwdne60518:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/table-views/table.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns60520:0crwdne60520:0
|
||||
|
||||
crwdns60522:0crwdne60522:0
|
||||
|
||||
crwdns60524:0crwdne60524:0
|
||||
|
||||
crwdns60526:0crwdne60526:0
|
||||
|
||||
## crwdns60528:0crwdne60528:0
|
||||
|
||||
crwdns60530:0crwdne60530:0
|
||||
|
||||
crwdns60532:0crwdne60532:0
|
||||
|
||||
## crwdns60534:0crwdne60534:0
|
||||
|
||||
crwdns60536:0crwdne60536:0
|
||||
|
||||
1. crwdns60538:0#what-is-a-hotkey-scope-crwdne60538:0
|
||||
2. crwdns60540:0crwdne60540:0
|
||||
|
||||
crwdns60542:0crwdne60542:0
|
||||
|
||||
## crwdns60544:0crwdne60544:0
|
||||
|
||||
crwdns60546:0crwdne60546:0
|
||||
|
||||
1. crwdns60548:0crwdne60548:0
|
||||
2. crwdns60550:0crwdne60550:0
|
||||
|
||||
crwdns60552:0crwdne60552:0
|
||||
|
||||
### crwdns60554:0crwdne60554:0
|
||||
|
||||
crwdns60556:0crwdne60556:0
|
||||
|
||||
```tsx
|
||||
const PageListeningEnter = () => {
|
||||
const {
|
||||
setHotkeyScopeAndMemorizePreviousScope,
|
||||
goBackToPreviousHotkeyScope,
|
||||
} = usePreviousHotkeyScope();
|
||||
|
||||
// 1. Set the hotkey scope in a useEffect
|
||||
useEffect(() => {
|
||||
setHotkeyScopeAndMemorizePreviousScope(
|
||||
ExampleHotkeyScopes.ExampleEnterPage,
|
||||
);
|
||||
|
||||
// Revert to the previous hotkey scope when the component is unmounted
|
||||
return () => {
|
||||
goBackToPreviousHotkeyScope();
|
||||
};
|
||||
}, [goBackToPreviousHotkeyScope, setHotkeyScopeAndMemorizePreviousScope]);
|
||||
|
||||
// 2. Use the useScopedHotkeys hook
|
||||
useScopedHotkeys(
|
||||
Key.Enter,
|
||||
() => {
|
||||
// Some logic executed on this page when the user presses Enter
|
||||
// ...
|
||||
},
|
||||
ExampleHotkeyScopes.ExampleEnterPage,
|
||||
);
|
||||
|
||||
return <div>My page that listens for Enter</div>;
|
||||
};
|
||||
```
|
||||
|
||||
### crwdns60558:0crwdne60558:0
|
||||
|
||||
crwdns60560:0crwdne60560:0
|
||||
|
||||
crwdns60562:0crwdne60562:0
|
||||
|
||||
```tsx
|
||||
const ExamplePageWithModal = () => {
|
||||
const [showModal, setShowModal] = useState(false);
|
||||
|
||||
const {
|
||||
setHotkeyScopeAndMemorizePreviousScope,
|
||||
goBackToPreviousHotkeyScope,
|
||||
} = usePreviousHotkeyScope();
|
||||
|
||||
const handleOpenModalClick = () => {
|
||||
// 1. Set the hotkey scope when user opens the modal
|
||||
setShowModal(true);
|
||||
setHotkeyScopeAndMemorizePreviousScope(
|
||||
ExampleHotkeyScopes.ExampleModal,
|
||||
);
|
||||
};
|
||||
|
||||
const handleModalClose = () => {
|
||||
// 1. Revert to the previous hotkey scope when the modal is closed
|
||||
setShowModal(false);
|
||||
goBackToPreviousHotkeyScope();
|
||||
};
|
||||
|
||||
return <div>
|
||||
<h1>My page with a modal</h1>
|
||||
<button onClick={handleOpenModalClick}>Open modal</button>
|
||||
{showModal && <MyModalComponent onClose={handleModalClose} />}
|
||||
</div>;
|
||||
};
|
||||
```
|
||||
|
||||
crwdns60564:0crwdne60564:0
|
||||
|
||||
```tsx
|
||||
const MyDropdownComponent = ({ onClose }: { onClose: () => void }) => {
|
||||
// 2. Use the useScopedHotkeys hook to listen for Escape.
|
||||
// Note that escape is a common hotkey that could be used by many other components
|
||||
// So it's important to use a hotkey scope to avoid conflicts
|
||||
useScopedHotkeys(
|
||||
Key.Escape,
|
||||
() => {
|
||||
onClose()
|
||||
},
|
||||
ExampleHotkeyScopes.ExampleModal,
|
||||
);
|
||||
|
||||
return <div>My modal component</div>;
|
||||
};
|
||||
```
|
||||
|
||||
crwdns60566:0crwdne60566:0
|
||||
|
||||
crwdns60568:0crwdne60568:0
|
||||
|
||||
## crwdns60570:0crwdne60570:0
|
||||
|
||||
crwdns60572:0crwdne60572:0 crwdns60574:0crwdne60574:0
|
||||
|
||||
crwdns60576:0crwdne60576:0
|
||||
|
||||
crwdns60578:0crwdne60578:0
|
||||
|
||||
crwdns60580:0crwdne60580:0
|
||||
|
||||
```tsx
|
||||
export enum PageHotkeyScope {
|
||||
Settings = 'settings',
|
||||
CreateWorkspace = 'create-workspace',
|
||||
SignInUp = 'sign-in-up',
|
||||
CreateProfile = 'create-profile',
|
||||
PlanRequired = 'plan-required',
|
||||
ShowPage = 'show-page',
|
||||
PersonShowPage = 'person-show-page',
|
||||
CompanyShowPage = 'company-show-page',
|
||||
CompaniesPage = 'companies-page',
|
||||
PeoplePage = 'people-page',
|
||||
OpportunitiesPage = 'opportunities-page',
|
||||
ProfilePage = 'profile-page',
|
||||
WorkspaceMemberPage = 'workspace-member-page',
|
||||
TaskPage = 'task-page',
|
||||
}
|
||||
```
|
||||
|
||||
crwdns60582:0crwdne60582:0
|
||||
|
||||
```tsx
|
||||
export const currentHotkeyScopeState = createState<HotkeyScope>({
|
||||
key: 'currentHotkeyScopeState',
|
||||
defaultValue: INITIAL_HOTKEYS_SCOPE,
|
||||
});
|
||||
```
|
||||
|
||||
crwdns60584:0crwdne60584:0 crwdns60586:0crwdne60586:0
|
||||
|
||||
## crwdns60588:0crwdne60588:0
|
||||
|
||||
crwdns60590:0https://react-hotkeys-hook.vercel.app/docs/introcrwdne60590:0
|
||||
|
||||
crwdns60592:0crwdne60592:0
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: crwdns60136:0crwdne60136:0
|
||||
description: crwdns60138:0crwdne60138:0
|
||||
---
|
||||
|
||||
crwdns60140:0crwdne60140:0
|
||||
|
||||
crwdns60142:0https://storybook.twenty.comcrwdne60142:0
|
||||
@@ -0,0 +1,295 @@
|
||||
---
|
||||
title: crwdns60388:0crwdne60388:0
|
||||
image: crwdns60390:0crwdne60390:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/notes/notes_header.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns60392:0crwdne60392:0
|
||||
|
||||
crwdns60394:0crwdne60394:0
|
||||
|
||||
crwdns60396:0crwdne60396:0
|
||||
|
||||
crwdns60398:0crwdne60398:0
|
||||
|
||||
crwdns60400:0crwdne60400:0
|
||||
|
||||
## crwdns60402:0crwdne60402:0
|
||||
|
||||
### crwdns60404:0crwdne60404:0
|
||||
|
||||
crwdns60406:0crwdne60406:0
|
||||
|
||||
crwdns60408:0crwdne60408:0
|
||||
|
||||
```tsx
|
||||
// ❌ Bad, harder to read, harder to import with code completion
|
||||
const MyComponent = () => {
|
||||
return <div>Hello World</div>;
|
||||
};
|
||||
|
||||
export default MyComponent;
|
||||
|
||||
// ✅ Good, easy to read, easy to import with code completion
|
||||
export function MyComponent() {
|
||||
return <div>Hello World</div>;
|
||||
};
|
||||
```
|
||||
|
||||
### crwdns60410:0crwdne60410:0
|
||||
|
||||
crwdns60412:0crwdne60412:0
|
||||
|
||||
crwdns60414:0crwdne60414:0
|
||||
|
||||
```tsx
|
||||
// ❌ Bad, no type
|
||||
export const MyComponent = (props) => <div>Hello {props.name}</div>;
|
||||
|
||||
// ✅ Good, type
|
||||
type MyComponentProps = {
|
||||
name: string;
|
||||
};
|
||||
|
||||
export const MyComponent = ({ name }: MyComponentProps) => <div>Hello {name}</div>;
|
||||
```
|
||||
|
||||
#### crwdns60416:0crwdne60416:0
|
||||
|
||||
```tsx
|
||||
/* ❌ - Bad, defines the component type annotations with `FC`
|
||||
* - With `React.FC`, the component implicitly accepts a `children` prop
|
||||
* even if it's not defined in the prop type. This might not always be
|
||||
* desirable, especially if the component doesn't intend to render
|
||||
* children.
|
||||
*/
|
||||
const EmailField: React.FC<{
|
||||
value: string;
|
||||
}> = ({ value }) => <TextInput value={value} disabled fullWidth />;
|
||||
```
|
||||
|
||||
```tsx
|
||||
/* ✅ - Good, a separate type (OwnProps) is explicitly defined for the
|
||||
* component's props
|
||||
* - This method doesn't automatically include the children prop. If
|
||||
* you want to include it, you have to specify it in OwnProps.
|
||||
*/
|
||||
type EmailFieldProps = {
|
||||
value: string;
|
||||
};
|
||||
|
||||
const EmailField = ({ value }: EmailFieldProps) => (
|
||||
<TextInput value={value} disabled fullWidth />
|
||||
);
|
||||
```
|
||||
|
||||
#### crwdns60418:0crwdne60418:0
|
||||
|
||||
crwdns60420:0{...props}crwdne60420:0 crwdns60422:0crwdne60422:0
|
||||
|
||||
```tsx
|
||||
/* ❌ - Bad, spreads a single variable prop into the underlying component
|
||||
*/
|
||||
const MyComponent = (props: OwnProps) => {
|
||||
return <OtherComponent {...props} />;
|
||||
}
|
||||
```
|
||||
|
||||
```tsx
|
||||
/* ✅ - Good, Explicitly lists all props
|
||||
* - Enhances readability and maintainability
|
||||
*/
|
||||
const MyComponent = ({ prop1, prop2, prop3 }: MyComponentProps) => {
|
||||
return <OtherComponent {...{ prop1, prop2, prop3 }} />;
|
||||
};
|
||||
```
|
||||
|
||||
crwdns60424:0crwdne60424:0
|
||||
|
||||
- crwdns60426:0crwdne60426:0
|
||||
- crwdns60428:0crwdne60428:0
|
||||
- crwdns60430:0crwdne60430:0
|
||||
|
||||
## crwdns60432:0crwdne60432:0
|
||||
|
||||
### crwdns60434:0crwdne60434:0
|
||||
|
||||
```tsx
|
||||
// ❌ Bad, can return 'default' even if value is 0 or ''
|
||||
const value = process.env.MY_VALUE || 'default';
|
||||
|
||||
// ✅ Good, will return 'default' only if value is null or undefined
|
||||
const value = process.env.MY_VALUE ?? 'default';
|
||||
```
|
||||
|
||||
### crwdns60436:0crwdne60436:0
|
||||
|
||||
```tsx
|
||||
// ❌ Bad
|
||||
onClick && onClick();
|
||||
|
||||
// ✅ Good
|
||||
onClick?.();
|
||||
```
|
||||
|
||||
## crwdns60438:0crwdne60438:0
|
||||
|
||||
### crwdns60440:0crwdne60440:0
|
||||
|
||||
crwdns60442:0crwdne60442:0
|
||||
|
||||
```tsx
|
||||
// ❌ Bad
|
||||
interface MyInterface {
|
||||
name: string;
|
||||
}
|
||||
|
||||
// ✅ Good
|
||||
type MyType = {
|
||||
name: string;
|
||||
};
|
||||
```
|
||||
|
||||
### crwdns60444:0crwdne60444:0
|
||||
|
||||
crwdns60446:0https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#literal-typescrwdne60446:0 crwdns60448:0crwdne60448:0
|
||||
|
||||
crwdns60450:0https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#enumscrwdne60450:0
|
||||
|
||||
```tsx
|
||||
// ❌ Bad, utilizes an enum
|
||||
enum Color {
|
||||
Red = "red",
|
||||
Green = "green",
|
||||
Blue = "blue",
|
||||
}
|
||||
|
||||
let color = Color.Red;
|
||||
```
|
||||
|
||||
```tsx
|
||||
// ✅ Good, utilizes a string literal
|
||||
|
||||
let color: "red" | "green" | "blue" = "red";
|
||||
```
|
||||
|
||||
#### crwdns60452:0crwdne60452:0
|
||||
|
||||
crwdns60454:0crwdne60454:0
|
||||
|
||||
crwdns60456:0crwdne60456:0
|
||||
|
||||
crwdns60458:0crwdne60458:0
|
||||
|
||||
```TSX
|
||||
const {
|
||||
setHotkeyScopeAndMemorizePreviousScope,
|
||||
goBackToPreviousHotkeyScope,
|
||||
} = usePreviousHotkeyScope();
|
||||
|
||||
setHotkeyScopeAndMemorizePreviousScope(
|
||||
RelationPickerHotkeyScope.RelationPicker,
|
||||
);
|
||||
```
|
||||
|
||||
## crwdns60460:0crwdne60460:0
|
||||
|
||||
### crwdns60462:0crwdne60462:0
|
||||
|
||||
crwdns60464:0https://emotion.sh/docs/styledcrwdne60464:0
|
||||
|
||||
```tsx
|
||||
// ❌ Bad
|
||||
<div className="my-class">Hello World</div>
|
||||
```
|
||||
|
||||
```tsx
|
||||
// ✅ Good
|
||||
const StyledTitle = styled.div`
|
||||
color: red;
|
||||
`;
|
||||
```
|
||||
|
||||
crwdns60466:0crwdne60466:0
|
||||
|
||||
```tsx
|
||||
// ❌ Bad
|
||||
const Title = styled.div`
|
||||
color: red;
|
||||
`;
|
||||
```
|
||||
|
||||
```tsx
|
||||
// ✅ Good
|
||||
const StyledTitle = styled.div`
|
||||
color: red;
|
||||
`;
|
||||
```
|
||||
|
||||
### crwdns60468:0crwdne60468:0
|
||||
|
||||
crwdns60470:0crwdne60470:0
|
||||
|
||||
#### crwdns60472:0crwdne60472:0
|
||||
|
||||
crwdns60474:0crwdne60474:0 crwdns60476:0crwdne60476:0
|
||||
|
||||
#### crwdns60478:0crwdne60478:0
|
||||
|
||||
crwdns60480:0crwdne60480:0 crwdns60482:0crwdne60482:0
|
||||
|
||||
```tsx
|
||||
// ❌ Bad, directly specifies style values without utilizing the theme
|
||||
const StyledButton = styled.button`
|
||||
color: #333333;
|
||||
font-size: 1rem;
|
||||
font-weight: 400;
|
||||
margin-left: 4px;
|
||||
border-radius: 50px;
|
||||
`;
|
||||
```
|
||||
|
||||
```tsx
|
||||
// ✅ Good, utilizes the theme
|
||||
const StyledButton = styled.button`
|
||||
color: ${({ theme }) => theme.font.color.primary};
|
||||
font-size: ${({ theme }) => theme.font.size.md};
|
||||
font-weight: ${({ theme }) => theme.font.weight.regular};
|
||||
margin-left: ${({ theme }) => theme.spacing(1)};
|
||||
border-radius: ${({ theme }) => theme.border.rounded};
|
||||
`;
|
||||
```
|
||||
|
||||
## crwdns60484:0crwdne60484:0
|
||||
|
||||
crwdns60486:0crwdne60486:0 crwdns60488:0crwdne60488:0 crwdns60490:0crwdne60490:0
|
||||
|
||||
```tsx
|
||||
// ❌ Bad
|
||||
import { type Meta, type StoryObj } from '@storybook/react';
|
||||
|
||||
// ❌ Bad
|
||||
import type { Meta, StoryObj } from '@storybook/react';
|
||||
|
||||
// ✅ Good
|
||||
import { Meta, StoryObj } from '@storybook/react';
|
||||
```
|
||||
|
||||
### crwdns60492:0crwdne60492:0
|
||||
|
||||
- crwdns60494:0crwdne60494:0
|
||||
|
||||
- crwdns60496:0crwdne60496:0 crwdns60498:0crwdne60498:0
|
||||
|
||||
- crwdns60500:0crwdne60500:0
|
||||
|
||||
### crwdns60502:0crwdne60502:0
|
||||
|
||||
crwdns60504:0crwdne60504:0 crwdns60506:0crwdne60506:0
|
||||
|
||||
crwdns60508:0crwdne60508:0 crwdns60510:0https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.htmlcrwdne60510:0 crwdns60512:0crwdne60512:0
|
||||
|
||||
crwdns60514:0crwdne60514:0
|
||||
@@ -0,0 +1,65 @@
|
||||
---
|
||||
title: crwdns59906:0crwdne59906:0
|
||||
info: crwdns59908:0crwdne59908:0
|
||||
image: crwdns59910:0crwdne59910:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/objects/objects.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns59912:0crwdne59912:0
|
||||
crwdns59914:0crwdne59914:0
|
||||
|
||||
## crwdns59916:0crwdne59916:0
|
||||
|
||||
1. crwdns59918:0https://www.figma.com/file/xt8O9mFeLl46C5InWwoMrN/Twentycrwdne59918:0
|
||||
2. crwdns59920:0crwdne59920:0
|
||||
crwdns59922:0crwdne59922:0
|
||||
|
||||
<Warning>
|
||||
|
||||
crwdns59924:0crwdne59924:0
|
||||
|
||||
</Warning>
|
||||
|
||||
## crwdns59926:0crwdne59926:0
|
||||
|
||||
crwdns59928:0crwdne59928:0 crwdns59930:0crwdne59930:0
|
||||
|
||||
- crwdns59932:0crwdne59932:0 crwdns59934:0crwdne59934:0 crwdns59936:0crwdne59936:0 crwdns59938:0crwdne59938:0
|
||||
- crwdns59940:0crwdne59940:0 crwdns59942:0crwdne59942:0
|
||||
- crwdns59944:0crwdne59944:0 crwdns59946:0crwdne59946:0 crwdns59948:0crwdne59948:0
|
||||
|
||||
## crwdns59950:0crwdne59950:0
|
||||
|
||||
crwdns59952:0crwdne59952:0
|
||||
|
||||
### crwdns59954:0crwdne59954:0
|
||||
|
||||
crwdns59956:0crwdne59956:0 crwdns59958:0https://www.figma.com/dev-mode/crwdne59958:0
|
||||
|
||||
crwdns59960:0crwdne59960:0
|
||||
|
||||
### crwdns59962:0crwdne59962:0
|
||||
|
||||
crwdns59964:0crwdne59964:0 crwdns59966:0crwdne59966:0 crwdns59968:0crwdne59968:0
|
||||
|
||||
1. crwdns59970:0crwdne59970:0
|
||||
2. crwdns59972:0crwdne59972:0 crwdns59974:0crwdne59974:0
|
||||
|
||||
crwdns59976:0https://help.figma.com/hc/en-uscrwdne59976:0
|
||||
|
||||
### crwdns59978:0crwdne59978:0
|
||||
|
||||
crwdns59980:0crwdne59980:0
|
||||
|
||||
### crwdns59982:0crwdne59982:0
|
||||
|
||||
crwdns59984:0https://marketplace.visualstudio.com/items?itemName=figma.figma-vscode-extensioncrwdne59984:0
|
||||
crwdns59986:0crwdne59986:0
|
||||
|
||||
## crwdns59988:0crwdne59988:0
|
||||
|
||||
1. crwdns59990:0crwdne59990:0
|
||||
2. crwdns59992:0crwdne59992:0 crwdns59994:0crwdne59994:0
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
title: crwdns59996:0crwdne59996:0
|
||||
description: crwdns59998:0crwdne59998:0
|
||||
---
|
||||
|
||||
crwdns64224:0{ CardTitle }crwdne64224:0
|
||||
|
||||
## crwdns60000:0crwdne60000:0
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card href="/developers/local-setup" img="/images/user-guide/fields/field.png">
|
||||
<CardTitle>crwdns64226:0crwdne64226:0</CardTitle>crwdns60002:0crwdne60002:0</Card>
|
||||
|
||||
<Card href="/developers/self-hosting/docker-compose" img="/images/user-guide/integrations/plug.png">
|
||||
<CardTitle>crwdns64228:0crwdne64228:0</CardTitle>crwdns60004:0crwdne60004:0</Card>
|
||||
|
||||
<Card href="/developers/api-and-webhooks/api" img="/images/user-guide/api/api.png">
|
||||
<CardTitle>crwdns64230:0crwdne64230:0</CardTitle>crwdns60006:0crwdne60006:0</Card>
|
||||
</CardGroup>
|
||||
|
||||
## crwdns60008:0crwdne60008:0
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card href="/developers/bug-and-requests" img="/images/user-guide/api/api.png">
|
||||
<CardTitle>crwdns64232:0crwdne64232:0</CardTitle>crwdns60010:0crwdne60010:0</Card>
|
||||
|
||||
<Card href="/developers/frontend-development/frontend-commands" img="/images/user-guide/create-workspace/workspace-cover.png">
|
||||
<CardTitle>crwdns64234:0crwdne64234:0</CardTitle>crwdns60012:0crwdne60012:0</Card>
|
||||
|
||||
<Card href="/developers/backend-development/server-commands" img="/images/user-guide/kanban-views/kanban.png">
|
||||
<CardTitle>crwdns64236:0crwdne64236:0</CardTitle>crwdns60014:0crwdne60014:0</Card>
|
||||
</CardGroup>
|
||||
@@ -0,0 +1,306 @@
|
||||
---
|
||||
title: crwdns60770:0crwdne60770:0
|
||||
description: "crwdns60772:0crwdne60772:0"
|
||||
image: crwdns60774:0crwdne60774:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/fields/field.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns60776:0crwdne60776:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Linux and MacOS">
|
||||
|
||||
crwdns60778:0crwdne60778:0
|
||||
|
||||
- crwdns60780:0https://git-scm.com/book/en/v2/Getting-Started-Installing-Gitcrwdne60780:0
|
||||
- crwdns60782:0https://nodejs.org/en/downloadcrwdne60782:0
|
||||
- crwdns60784:0https://yarnpkg.com/getting-started/installcrwdne60784:0
|
||||
- crwdns60786:0https://github.com/nvm-sh/nvm/blob/master/README.mdcrwdne60786:0
|
||||
|
||||
<Warning>
|
||||
crwdns60788:0crwdne60788:0 crwdns60790:0crwdne60790:0
|
||||
crwdns60792:0crwdne60792:0
|
||||
</Warning>
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Windows (WSL)">
|
||||
|
||||
1. crwdns60794:0crwdne60794:0
|
||||
|
||||
```powershell
|
||||
wsl --install
|
||||
```
|
||||
|
||||
crwdns60796:0crwdne60796:0 crwdns60798:0crwdne60798:0
|
||||
|
||||
crwdns60800:0crwdne60800:0 crwdns60802:0crwdne60802:0
|
||||
crwdns60804:0crwdne60804:0
|
||||
|
||||
2. crwdns60806:0crwdne60806:0
|
||||
|
||||
```bash
|
||||
sudo apt-get install git
|
||||
|
||||
git config --global user.name "Your Name"
|
||||
|
||||
git config --global user.email "youremail@domain.com"
|
||||
```
|
||||
|
||||
3. crwdns60808:0crwdne60808:0
|
||||
|
||||
<Warning>
|
||||
crwdns64054:0crwdne64054:0 crwdns64056:0crwdne64056:0
|
||||
</Warning>
|
||||
|
||||
```bash
|
||||
sudo apt-get install curl
|
||||
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
|
||||
```
|
||||
|
||||
crwdns64058:0crwdne64058:0 crwdns64060:0crwdne64060:0
|
||||
|
||||
```bash
|
||||
|
||||
nvm install # installs recommended node version
|
||||
|
||||
nvm use # use recommended node version
|
||||
|
||||
corepack enable
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
---
|
||||
|
||||
## crwdns64062:0crwdne64062:0
|
||||
|
||||
crwdns64064:0crwdne64064:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="SSH (Recommended)">
|
||||
crwdns64066:0https://docs.github.com/en/authentication/connecting-to-github-with-ssh/about-sshcrwdne64066:0
|
||||
crwdns64068:0crwdne64068:0
|
||||
</Tab>
|
||||
<Tab title="HTTPS">
|
||||
|
||||
```bash
|
||||
git clone https://github.com/twentyhq/twenty.git
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## crwdns64070:0crwdne64070:0
|
||||
|
||||
```bash
|
||||
cd twenty
|
||||
```
|
||||
|
||||
crwdns64072:0crwdne64072:0
|
||||
|
||||
## crwdns64074:0crwdne64074:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Linux">crwdns64076:0https://www.postgresql.org/download/linux/crwdne64076:0
|
||||
|
||||
````
|
||||
**Option 2:** If you have docker installed:
|
||||
```bash
|
||||
make postgres-on-docker
|
||||
```
|
||||
````
|
||||
|
||||
</Tab>
|
||||
<Tab title="Mac OS">crwdns64080:0crwdne64080:0
|
||||
|
||||
````
|
||||
```bash
|
||||
brew install postgresql@16
|
||||
export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH"
|
||||
brew services start postgresql@16
|
||||
psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;"
|
||||
```
|
||||
|
||||
You can verify if the PostgreSQL server is running by executing:
|
||||
```bash
|
||||
brew services list
|
||||
```
|
||||
|
||||
The installer might not create the `postgres` user by default when installing
|
||||
via Homebrew on MacOS. Instead, it creates a PostgreSQL role that matches your macOS
|
||||
username (e.g., "john").
|
||||
To check and create the `postgres` user if necessary, follow these steps:
|
||||
```bash
|
||||
# Connect to PostgreSQL
|
||||
psql postgres
|
||||
or
|
||||
psql -U $(whoami) -d postgres
|
||||
```
|
||||
|
||||
Once at the psql prompt (postgres=#), run:
|
||||
```bash
|
||||
# List existing PostgreSQL roles
|
||||
\du
|
||||
```
|
||||
You'll see output similar to:
|
||||
```bash
|
||||
Role name | Attributes | Member of
|
||||
-----------+-------------+-----------
|
||||
john | Superuser | {}
|
||||
```
|
||||
|
||||
If you do not see a `postgres` role listed, proceed to the next step.
|
||||
Create the `postgres` role manually:
|
||||
```bash
|
||||
CREATE ROLE postgres WITH SUPERUSER LOGIN;
|
||||
```
|
||||
This creates a superuser role named `postgres` with login access.
|
||||
|
||||
**Option 2:** If you have docker installed:
|
||||
```bash
|
||||
make postgres-on-docker
|
||||
```
|
||||
````
|
||||
|
||||
</Tab>
|
||||
<Tab title="Windows (WSL)">crwdns64084:0crwdne64084:0
|
||||
|
||||
````
|
||||
**Option 1:** To provision your Postgresql locally:
|
||||
Use the following link to install Postgresql on your Linux virtual machine: [Postgresql Installation](https://www.postgresql.org/download/linux/)
|
||||
```bash
|
||||
psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;"
|
||||
```
|
||||
Note: You might need to add `sudo -u postgres` to the command before `psql` to avoid permission errors.
|
||||
|
||||
**Option 2:** If you have docker installed:
|
||||
Running Docker on WSL adds an extra layer of complexity.
|
||||
Only use this option if you are comfortable with the extra steps involved, including turning on [Docker Desktop WSL2](https://docs.docker.com/desktop/wsl).
|
||||
```bash
|
||||
make postgres-on-docker
|
||||
```
|
||||
````
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
crwdns64088:0localhost:5432crwdne64088:0
|
||||
|
||||
## crwdns64090:0crwdne64090:0
|
||||
|
||||
crwdns64092:0crwdne64092:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Linux">crwdns64094:0https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/crwdne64094:0
|
||||
|
||||
````
|
||||
**Option 2:** If you have docker installed:
|
||||
```bash
|
||||
make redis-on-docker
|
||||
```
|
||||
````
|
||||
|
||||
</Tab>
|
||||
<Tab title="Mac OS">crwdns64098:0crwdne64098:0
|
||||
|
||||
````
|
||||
**Option 2:** If you have docker installed:
|
||||
```bash
|
||||
make redis-on-docker
|
||||
```
|
||||
````
|
||||
|
||||
</Tab>
|
||||
<Tab title="Windows (WSL)">crwdns64102:0https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/crwdne64102:0
|
||||
|
||||
````
|
||||
**Option 2:** If you have docker installed:
|
||||
```bash
|
||||
make redis-on-docker
|
||||
```
|
||||
````
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
crwdns64106:0https://redis.io/insight/crwdne64106:0
|
||||
|
||||
## crwdns64108:0crwdne64108:0
|
||||
|
||||
crwdns64110:0crwdne64110:0 crwdns64112:0https://docs.twenty.com/developers/self-hosting/setupcrwdne64112:0
|
||||
|
||||
crwdns64114:0crwdne64114:0
|
||||
|
||||
```bash
|
||||
cp ./packages/twenty-front/.env.example ./packages/twenty-front/.env
|
||||
cp ./packages/twenty-server/.env.example ./packages/twenty-server/.env
|
||||
```
|
||||
|
||||
## crwdns64116:0crwdne64116:0
|
||||
|
||||
crwdns64118:0crwdne64118:0
|
||||
|
||||
```bash
|
||||
yarn
|
||||
```
|
||||
|
||||
crwdns64120:0crwdne64120:0
|
||||
|
||||
## crwdns64122:0crwdne64122:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Linux">
|
||||
crwdns64124:0crwdne64124:0
|
||||
crwdns64126:0https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/crwdne64126:0
|
||||
</Tab>
|
||||
<Tab title="Mac OS">
|
||||
crwdns64128:0crwdne64128:0 crwdns64130:0crwdne64130:0
|
||||
</Tab>
|
||||
<Tab title="Windows (WSL)">
|
||||
crwdns64132:0crwdne64132:0
|
||||
crwdns64134:0https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/crwdne64134:0
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
crwdns64136:0crwdne64136:0
|
||||
|
||||
```bash
|
||||
npx nx database:reset twenty-server
|
||||
```
|
||||
|
||||
crwdns64138:0crwdne64138:0
|
||||
|
||||
```bash
|
||||
npx nx start twenty-server
|
||||
npx nx worker twenty-server
|
||||
npx nx start twenty-front
|
||||
```
|
||||
|
||||
crwdns64140:0crwdne64140:0
|
||||
|
||||
```bash
|
||||
npx nx start
|
||||
```
|
||||
|
||||
## crwdns64142:0crwdne64142:0
|
||||
|
||||
crwdns64144:0crwdne64144:0
|
||||
|
||||
crwdns64146:0http://localhost:3001crwdne64146:0
|
||||
crwdns64148:0crwdne64148:0
|
||||
|
||||
crwdns64150:0crwdne64150:0
|
||||
|
||||
- crwdns64152:0http://localhost:3000crwdne64152:0
|
||||
- crwdns64154:0http://localhost:3000/graphqlcrwdne64154:0
|
||||
- crwdns64156:0http://localhost:3000/restcrwdne64156:0
|
||||
|
||||
## crwdns64158:0crwdne64158:0
|
||||
|
||||
crwdns64160:0https://docs.twenty.com/developers/self-hosting/troubleshootingcrwdne64160:0
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
title: crwdns60658:0crwdne60658:0
|
||||
image: crwdns60660:0crwdne60660:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/notes/notes_header.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
<Warning>
|
||||
crwdns60662:0crwdne60662:0 crwdns60664:0crwdne60664:0
|
||||
</Warning>
|
||||
|
||||
## crwdns60666:0crwdne60666:0
|
||||
|
||||
crwdns60668:0https://github.com/twentyhq/twenty/tree/main/packages/twenty-docker/k8scrwdne60668:0
|
||||
|
||||
### crwdns60670:0crwdne60670:0
|
||||
|
||||
crwdns60672:0crwdne60672:0 crwdns60674:0crwdne60674:0
|
||||
|
||||
crwdns60676:0https://coolify.io/docs/get-started/introductioncrwdne60676:0
|
||||
|
||||
### crwdns60678:0crwdne60678:0
|
||||
|
||||
crwdns60680:0crwdne60680:0
|
||||
|
||||
crwdns60682:0https://easypanel.io/docs/templates/twentycrwdne60682:0
|
||||
|
||||
### crwdns60684:0crwdne60684:0
|
||||
|
||||
crwdns60686:0crwdne60686:0
|
||||
|
||||
crwdns60688:0https://elest.io/open-source/twentycrwdne60688:0
|
||||
|
||||
### crwdns60690:0crwdne60690:0
|
||||
|
||||
crwdns60692:0crwdne60692:0
|
||||
|
||||
crwdns60694:0https://railway.com/button.svgcrwdnd60694:0https://railway.com/deploy/nAL3hAcrwdne60694:0
|
||||
|
||||
## crwdns60696:0crwdne60696:0
|
||||
|
||||
crwdns60698:0crwdne60698:0
|
||||
|
||||
@@ -0,0 +1,212 @@
|
||||
---
|
||||
title: crwdns59558:0crwdne59558:0
|
||||
image: crwdns59560:0crwdne59560:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/objects/objects.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
<Warning>crwdns59562:0https://docs.twenty.com/developers/local-setupcrwdne59562:0</Warning>
|
||||
|
||||
## crwdns59564:0crwdne59564:0
|
||||
|
||||
crwdns59566:0crwdne59566:0 crwdns59568:0crwdne59568:0
|
||||
|
||||
crwdns59570:0crwdne59570:0 crwdns59572:0crwdne59572:0
|
||||
|
||||
crwdns59574:0https://docs.twenty.com/developers/self-hosting/setupcrwdne59574:0 crwdns59576:0crwdne59576:0
|
||||
|
||||
## crwdns59578:0crwdne59578:0
|
||||
|
||||
- crwdns59580:0crwdne59580:0 crwdns59582:0crwdne59582:0
|
||||
- crwdns59584:0crwdne59584:0
|
||||
|
||||
## crwdns59586:0crwdne59586:0
|
||||
|
||||
crwdns59588:0crwdne59588:0
|
||||
|
||||
```bash
|
||||
bash <(curl -sL https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/scripts/install.sh)
|
||||
```
|
||||
|
||||
crwdns59590:0crwdne59590:0
|
||||
|
||||
```bash
|
||||
VERSION=vx.y.z BRANCH=branch-name bash <(curl -sL https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/scripts/install.sh)
|
||||
```
|
||||
|
||||
- crwdns59592:0crwdne59592:0
|
||||
- crwdns59594:0crwdne59594:0
|
||||
|
||||
## crwdns59596:0crwdne59596:0
|
||||
|
||||
crwdns59598:0crwdne59598:0
|
||||
|
||||
### crwdns59600:0crwdne59600:0
|
||||
|
||||
1. crwdns59602:0crwdne59602:0
|
||||
|
||||
crwdns59604:0crwdne59604:0
|
||||
|
||||
```bash
|
||||
curl -o .env https://raw.githubusercontent.com/twentyhq/twenty/refs/heads/main/packages/twenty-docker/.env.example
|
||||
```
|
||||
|
||||
2. crwdns59606:0crwdne59606:0
|
||||
|
||||
crwdns59608:0crwdne59608:0
|
||||
|
||||
```bash
|
||||
openssl rand -base64 32
|
||||
```
|
||||
|
||||
crwdns59610:0crwdne59610:0
|
||||
|
||||
3. crwdns59612:0crwdne59612:0
|
||||
|
||||
crwdns59614:0crwdne59614:0
|
||||
|
||||
```ini
|
||||
APP_SECRET=first_random_string
|
||||
```
|
||||
|
||||
4. crwdns59616:0crwdne59616:0
|
||||
|
||||
crwdns59618:0crwdne59618:0
|
||||
|
||||
```ini
|
||||
PG_DATABASE_PASSWORD=my_strong_password
|
||||
```
|
||||
|
||||
### crwdns59620:0crwdne59620:0
|
||||
|
||||
crwdns59622:0crwdne59622:0
|
||||
|
||||
```bash
|
||||
curl -o docker-compose.yml https://raw.githubusercontent.com/twentyhq/twenty/refs/heads/main/packages/twenty-docker/docker-compose.yml
|
||||
```
|
||||
|
||||
### crwdns59624:0crwdne59624:0
|
||||
|
||||
crwdns59626:0crwdne59626:0
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### crwdns59628:0crwdne59628:0
|
||||
|
||||
crwdns59630:0http://localhost:3000crwdne59630:0
|
||||
|
||||
crwdns59632:0crwdne59632:0
|
||||
|
||||
```bash
|
||||
curl http://localhost:3000
|
||||
```
|
||||
|
||||
## crwdns59634:0crwdne59634:0
|
||||
|
||||
### crwdns59636:0crwdne59636:0
|
||||
|
||||
crwdns59638:0crwdne59638:0 crwdns59640:0crwdne59640:0
|
||||
|
||||
#### crwdns59642:0crwdne59642:0
|
||||
|
||||
- crwdns59644:0crwdne59644:0
|
||||
- crwdns59646:0crwdne59646:0
|
||||
- crwdns59648:0crwdne59648:0
|
||||
- crwdns59650:0crwdne59650:0
|
||||
- crwdns59652:0crwdne59652:0
|
||||
|
||||
### crwdns59654:0crwdne59654:0
|
||||
|
||||
crwdns59656:0crwdne59656:0 crwdns59658:0crwdne59658:0
|
||||
|
||||
crwdns59660:0crwdne59660:0
|
||||
|
||||
crwdns59662:0crwdne59662:0
|
||||
|
||||
#### crwdns59664:0crwdne59664:0
|
||||
|
||||
1. crwdns59666:0crwdne59666:0
|
||||
- crwdns59668:0crwdne59668:0
|
||||
|
||||
crwdns59670:0crwdne59670:0
|
||||
|
||||
```ini
|
||||
SERVER_URL=http://your-domain-or-ip:3000
|
||||
```
|
||||
|
||||
- crwdns59672:0crwdne59672:0
|
||||
|
||||
crwdns59674:0crwdne59674:0
|
||||
|
||||
```ini
|
||||
SERVER_URL=https://your-domain-or-ip
|
||||
```
|
||||
|
||||
- crwdns59676:0crwdne59676:0
|
||||
|
||||
crwdns59678:0crwdne59678:0
|
||||
|
||||
```ini
|
||||
SERVER_URL=https://your-domain-or-ip:custom-port
|
||||
```
|
||||
|
||||
2. crwdns59680:0crwdne59680:0
|
||||
|
||||
crwdns59682:0crwdne59682:0
|
||||
|
||||
```ini
|
||||
SERVER_URL=http(s)://your-domain-or-ip:your-port
|
||||
```
|
||||
|
||||
crwdns59684:0crwdne59684:0
|
||||
|
||||
- crwdns59686:0crwdne59686:0
|
||||
```ini
|
||||
SERVER_URL=http://123.45.67.89:3000
|
||||
```
|
||||
- crwdns59688:0crwdne59688:0
|
||||
```ini
|
||||
SERVER_URL=https://mytwentyapp.com
|
||||
```
|
||||
|
||||
3. crwdns59690:0crwdne59690:0
|
||||
|
||||
crwdns59692:0crwdne59692:0
|
||||
|
||||
```bash
|
||||
docker compose down
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
#### crwdns59694:0crwdne59694:0
|
||||
|
||||
- crwdns59696:0crwdne59696:0
|
||||
|
||||
crwdns59698:0crwdne59698:0 crwdns59700:0crwdne59700:0
|
||||
|
||||
- crwdns59702:0crwdne59702:0
|
||||
|
||||
crwdns59704:0crwdne59704:0
|
||||
|
||||
- crwdns59706:0crwdne59706:0
|
||||
|
||||
crwdns59708:0crwdne59708:0
|
||||
|
||||
#### crwdns59710:0crwdne59710:0
|
||||
|
||||
- crwdns59712:0crwdne59712:0
|
||||
|
||||
crwdns59714:0crwdne59714:0
|
||||
|
||||
- crwdns59716:0crwdne59716:0
|
||||
|
||||
crwdns59718:0crwdne59718:0
|
||||
|
||||
## crwdns59720:0crwdne59720:0
|
||||
|
||||
crwdns59722:0https://docs.twenty.com/developers/self-hosting/troubleshootingcrwdne59722:0
|
||||
|
||||
@@ -0,0 +1,242 @@
|
||||
---
|
||||
title: crwdns61106:0crwdne61106:0
|
||||
image: crwdns61108:0crwdne61108:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/table-views/table.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns61110:0crwdne61110:0
|
||||
|
||||
# crwdns61112:0crwdne61112:0
|
||||
|
||||
<Warning>crwdns61114:0https://docs.twenty.com/developers/self-hosting/docker-composecrwdne61114:0</Warning>
|
||||
|
||||
crwdns61116:0crwdne61116:0
|
||||
|
||||
crwdns61118:0crwdne61118:0
|
||||
|
||||
## crwdns61120:0crwdne61120:0 crwdns61122:0crwdne61122:0
|
||||
|
||||
```bash
|
||||
IS_CONFIG_VARIABLES_IN_DB_ENABLED=true # default
|
||||
```
|
||||
|
||||
crwdns61124:0crwdne61124:0
|
||||
|
||||
1. crwdns61126:0crwdne61126:0
|
||||
2. crwdns61128:0crwdne61128:0
|
||||
3. crwdns61130:0crwdne61130:0
|
||||
4. crwdns61132:0crwdne61132:0
|
||||
|
||||
<Warning>
|
||||
crwdns61134:0crwdne61134:0 crwdns61136:0crwdne61136:0
|
||||
</Warning>
|
||||
|
||||
crwdns61138:0crwdne61138:0
|
||||
|
||||
- crwdns61140:0crwdne61140:0
|
||||
- crwdns61142:0crwdne61142:0
|
||||
- crwdns61144:0crwdne61144:0
|
||||
- crwdns61146:0crwdne61146:0
|
||||
- crwdns61148:0crwdne61148:0
|
||||
- crwdns61150:0crwdne61150:0
|
||||
|
||||
crwdns61152:0/images/user-guide/setup/admin-panel-config-variables.pngcrwdne61152:0
|
||||
|
||||
<Warning>
|
||||
crwdns61154:0crwdne61154:0
|
||||
crwdns61156:0crwdne61156:0
|
||||
|
||||
crwdns61158:0https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/twenty-config/config-variables.tscrwdne61158:0
|
||||
|
||||
## crwdns61160:0crwdne61160:0 crwdns61162:0crwdne61162:0
|
||||
|
||||
```bash
|
||||
IS_CONFIG_VARIABLES_IN_DB_ENABLED=false
|
||||
```
|
||||
|
||||
crwdns61164:0crwdne61164:0
|
||||
|
||||
1. crwdns61166:0crwdne61166:0
|
||||
2. crwdns61168:0crwdne61168:0
|
||||
3. crwdns61170:0crwdne61170:0
|
||||
4. crwdns61172:0crwdne61172:0
|
||||
|
||||
## crwdns61174:0crwdne61174:0
|
||||
|
||||
### crwdns61176:0crwdne61176:0
|
||||
|
||||
1. crwdns61178:0https://console.cloud.google.com/crwdne61178:0
|
||||
2. crwdns61180:0crwdne61180:0
|
||||
3. crwdns61182:0crwdne61182:0
|
||||
|
||||
- crwdns61184:0https://console.cloud.google.com/apis/library/gmail.googleapis.comcrwdne61184:0
|
||||
- crwdns61186:0https://console.cloud.google.com/apis/library/calendar-json.googleapis.comcrwdne61186:0
|
||||
- crwdns61188:0https://console.cloud.google.com/apis/library/people.googleapis.comcrwdne61188:0
|
||||
|
||||
### crwdns61190:0crwdne61190:0
|
||||
|
||||
1. crwdns61192:0https://console.cloud.google.com/apis/credentialscrwdne61192:0
|
||||
2. crwdns61194:0crwdne61194:0
|
||||
3. crwdns61196:0crwdne61196:0
|
||||
- crwdns64016:0{your-domain}crwdne64016:0
|
||||
- crwdns64018:0{your-domain}crwdne64018:0
|
||||
|
||||
### crwdns61202:0crwdne61202:0
|
||||
|
||||
1. crwdns61204:0crwdne61204:0
|
||||
2. crwdns61206:0crwdne61206:0
|
||||
3. crwdns61208:0crwdne61208:0
|
||||
- crwdns61210:0crwdne61210:0
|
||||
- crwdns61212:0crwdne61212:0
|
||||
- crwdns64020:0{client-id}crwdne64020:0
|
||||
- crwdns64022:0{client-secret}crwdne64022:0
|
||||
- crwdns64024:0{your-domain}crwdne64024:0
|
||||
- crwdns64026:0{your-domain}crwdne64026:0
|
||||
|
||||
<Warning>crwdns61222:0crwdne61222:0</Warning>
|
||||
|
||||
crwdns61224:0https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/auth/utils/get-google-apis-oauth-scopes.ts#L4-L10crwdne61224:0
|
||||
|
||||
- crwdns61226:0crwdne61226:0
|
||||
- crwdns61228:0crwdne61228:0
|
||||
- crwdns61230:0crwdne61230:0
|
||||
|
||||
### crwdns61232:0crwdne61232:0
|
||||
|
||||
crwdns61234:0crwdne61234:0
|
||||
|
||||
crwdns61236:0https://console.cloud.google.com/apis/credentials/consentcrwdne61236:0
|
||||
|
||||
## crwdns61238:0crwdne61238:0
|
||||
|
||||
<Warning>
|
||||
crwdns61240:0https://admin.microsoft.com/Adminportal/Homecrwdne61240:0 crwdns61242:0crwdne61242:0
|
||||
</Warning>
|
||||
|
||||
### crwdns61244:0crwdne61244:0
|
||||
|
||||
crwdns61246:0https://portal.azure.com/#view/Microsoft_AAD_IAM/AppGalleryBladeV2crwdne61246:0
|
||||
|
||||
### crwdns61248:0crwdne61248:0
|
||||
|
||||
crwdns61250:0crwdne61250:0
|
||||
|
||||
- crwdns61252:0crwdne61252:0
|
||||
- crwdns61254:0crwdne61254:0
|
||||
- crwdns61256:0crwdne61256:0
|
||||
- crwdns61258:0crwdne61258:0
|
||||
- crwdns61260:0crwdne61260:0
|
||||
- crwdns61262:0crwdne61262:0
|
||||
- crwdns61264:0crwdne61264:0
|
||||
- crwdns61266:0crwdne61266:0
|
||||
|
||||
crwdns61268:0crwdne61268:0 crwdns61270:0crwdne61270:0
|
||||
|
||||
### crwdns61272:0crwdne61272:0
|
||||
|
||||
crwdns61274:0crwdne61274:0
|
||||
|
||||
- crwdns64028:0{your-domain}crwdne64028:0
|
||||
- crwdns64030:0{your-domain}crwdne64030:0
|
||||
|
||||
### crwdns61280:0crwdne61280:0
|
||||
|
||||
1. crwdns61282:0crwdne61282:0
|
||||
2. crwdns61284:0crwdne61284:0
|
||||
3. crwdns61286:0crwdne61286:0
|
||||
- crwdns61288:0crwdne61288:0
|
||||
- crwdns61290:0crwdne61290:0
|
||||
- crwdns61292:0crwdne61292:0
|
||||
- crwdns64032:0{client-id}crwdne64032:0
|
||||
- crwdns64034:0{client-secret}crwdne64034:0
|
||||
- crwdns64036:0{your-domain}crwdne64036:0
|
||||
- crwdns64038:0{your-domain}crwdne64038:0
|
||||
|
||||
<Warning>crwdns61302:0crwdne61302:0</Warning>
|
||||
|
||||
### crwdns61304:0crwdne61304:0
|
||||
|
||||
crwdns61306:0https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/auth/utils/get-microsoft-apis-oauth-scopes.ts#L2-L9crwdne61306:0
|
||||
|
||||
- crwdns61308:0crwdne61308:0
|
||||
- crwdns61310:0crwdne61310:0
|
||||
- crwdns61312:0crwdne61312:0
|
||||
- crwdns61314:0crwdne61314:0
|
||||
- crwdns61316:0crwdne61316:0
|
||||
- crwdns61318:0crwdne61318:0
|
||||
- crwdns61320:0crwdne61320:0
|
||||
|
||||
### crwdns61322:0crwdne61322:0
|
||||
|
||||
crwdns61324:0crwdne61324:0
|
||||
|
||||
crwdns61326:0crwdne61326:0
|
||||
|
||||
## crwdns61328:0crwdne61328:0
|
||||
|
||||
crwdns61330:0crwdne61330:0
|
||||
|
||||
crwdns61332:0crwdne61332:0
|
||||
|
||||
```bash
|
||||
# from your worker container
|
||||
yarn command:prod cron:messaging:messages-import
|
||||
yarn command:prod cron:messaging:message-list-fetch
|
||||
yarn command:prod cron:calendar:calendar-event-list-fetch
|
||||
yarn command:prod cron:calendar:calendar-events-import
|
||||
yarn command:prod cron:messaging:ongoing-stale
|
||||
yarn command:prod cron:calendar:ongoing-stale
|
||||
yarn command:prod cron:workflow:automated-cron-trigger
|
||||
```
|
||||
|
||||
## crwdns61334:0crwdne61334:0
|
||||
|
||||
1. crwdns61336:0crwdne61336:0
|
||||
2. crwdns61338:0crwdne61338:0
|
||||
3. crwdns61340:0crwdne61340:0
|
||||
|
||||
<ArticleTabs label1="Gmail" label2="Office365" label3="Smtp4dev">
|
||||
|
||||
<ArticleTab>
|
||||
|
||||
crwdns61342:0https://support.google.com/accounts/answer/185833crwdne61342:0
|
||||
|
||||
- crwdns61344:0crwdne61344:0
|
||||
- crwdns61346:0crwdne61346:0
|
||||
- crwdns61348:0crwdne61348:0
|
||||
- crwdns61350:0crwdne61350:0
|
||||
- crwdns61352:0crwdne61352:0
|
||||
|
||||
</ArticleTab>
|
||||
|
||||
<ArticleTab>
|
||||
|
||||
crwdns61354:0https://support.microsoft.com/en-us/account-billing/manage-app-passwords-for-two-step-verification-d6dc8c6d-4bf7-4851-ad95-6d07799387e9crwdne61354:0
|
||||
|
||||
- crwdns61356:0crwdne61356:0
|
||||
- crwdns61358:0crwdne61358:0
|
||||
- crwdns61360:0crwdne61360:0
|
||||
- crwdns61362:0crwdne61362:0
|
||||
- crwdns61364:0crwdne61364:0
|
||||
|
||||
</ArticleTab>
|
||||
|
||||
<ArticleTab>
|
||||
|
||||
crwdns61366:0crwdne61366:0
|
||||
|
||||
- crwdns61368:0crwdne61368:0
|
||||
- crwdns61370:0http://localhost:8090crwdne61370:0
|
||||
- crwdns61372:0crwdne61372:0
|
||||
- crwdns61374:0crwdne61374:0
|
||||
- crwdns61376:0crwdne61376:0
|
||||
- crwdns61378:0crwdne61378:0
|
||||
|
||||
</ArticleTab>
|
||||
|
||||
</ArticleTabs>
|
||||
|
||||
<Warning>crwdns61380:0crwdne61380:0</Warning>
|
||||
@@ -0,0 +1,220 @@
|
||||
---
|
||||
title: crwdns60918:0crwdne60918:0
|
||||
image: crwdns60920:0crwdne60920:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/what-is-twenty/20.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns60922:0crwdne60922:0
|
||||
|
||||
crwdns60924:0crwdne60924:0
|
||||
|
||||
### crwdns60926:0crwdne60926:0
|
||||
|
||||
#### crwdns60928:0crwdne60928:0
|
||||
|
||||
crwdns60930:0crwdne60930:0
|
||||
|
||||
crwdns60932:0crwdne60932:0
|
||||
crwdns60934:0crwdne60934:0 crwdns60936:0crwdne60936:0
|
||||
|
||||
crwdns60938:0crwdne60938:0 crwdns60940:0crwdne60940:0
|
||||
|
||||
crwdns60942:0crwdne60942:0
|
||||
|
||||
```sh
|
||||
# Update the PG_DATABASE_PASSWORD in .env
|
||||
docker compose down --volumes
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
#### crwdns60944:0crwdne60944:0
|
||||
|
||||
crwdns60946:0crwdne60946:0 crwdns60948:0crwdne60948:0
|
||||
|
||||
```
|
||||
git config --global core.autocrlf false
|
||||
```
|
||||
|
||||
crwdns60950:0crwdne60950:0
|
||||
|
||||
#### crwdns60952:0crwdne60952:0
|
||||
|
||||
crwdns60954:0crwdne60954:0
|
||||
crwdns60956:0crwdne60956:0
|
||||
crwdns60958:0crwdne60958:0
|
||||
|
||||
#### crwdns60960:0crwdne60960:0
|
||||
|
||||
crwdns60962:0crwdne60962:0
|
||||
|
||||
#### crwdns60964:0crwdne60964:0
|
||||
|
||||
crwdns60966:0crwdne60966:0 crwdns60968:0crwdne60968:0
|
||||
|
||||
#### crwdns60970:0crwdne60970:0
|
||||
|
||||
crwdns60972:0crwdne60972:0 crwdns60974:0crwdne60974:0
|
||||
|
||||
```
|
||||
"editor.codeActionsOnSave": {
|
||||
|
||||
"source.fixAll.eslint": "explicit"
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
#### crwdns60976:0crwdne60976:0
|
||||
|
||||
crwdns60978:0crwdne60978:0
|
||||
|
||||
crwdns60980:0crwdne60980:0 crwdns60982:0crwdne60982:0
|
||||
|
||||
crwdns60984:0crwdne60984:0
|
||||
|
||||
crwdns60986:0crwdne60986:0
|
||||
|
||||
crwdns60988:0crwdne60988:0
|
||||
|
||||
crwdns60990:0crwdne60990:0
|
||||
|
||||
crwdns60992:0crwdne60992:0
|
||||
crwdns60994:0crwdne60994:0
|
||||
|
||||
crwdns60996:0crwdne60996:0 crwdns60998:0crwdne60998:0
|
||||
|
||||
crwdns61000:0crwdne61000:0
|
||||
|
||||
#### crwdns61002:0crwdne61002:0
|
||||
|
||||
crwdns61004:0crwdne61004:0
|
||||
|
||||
#### crwdns61006:0crwdne61006:0
|
||||
|
||||
crwdns61008:0crwdne61008:0 crwdns61010:0crwdne61010:0
|
||||
|
||||
```
|
||||
npx nx worker twenty-server
|
||||
```
|
||||
|
||||
#### crwdns61012:0crwdne61012:0
|
||||
|
||||
crwdns61014:0crwdne61014:0 crwdns61016:0https://admin.microsoft.com/Adminportal/Homecrwdne61016:0
|
||||
|
||||
crwdns61018:0crwdne61018:0 crwdns61020:0crwdne61020:0 crwdns61022:0https://learn.microsoft.com/fr-fr/troubleshoot/entra/entra-id/app-integration/error-code-aadsts50020-user-account-identity-provider-does-not-existcrwdne61022:0
|
||||
|
||||
#### crwdns61024:0crwdne61024:0
|
||||
|
||||
crwdns61026:0crwdne61026:0
|
||||
|
||||
#### crwdns61028:0crwdne61028:0
|
||||
|
||||
crwdns61030:0crwdne61030:0
|
||||
|
||||
#### crwdns61032:0crwdne61032:0
|
||||
|
||||
- crwdns61034:0https://webhook-test.com/crwdne61034:0
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/self-hosting/webhook-test.jpg" alt="Webhook test" />
|
||||
</div>
|
||||
crwdns61036:0crwdne61036:0
|
||||
crwdns61038:0crwdne61038:0
|
||||
crwdns61040:0crwdne61040:0 crwdns61042:0crwdne61042:0
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/self-hosting/webhook-settings.jpg" alt="Webhook settings" />
|
||||
</div>
|
||||
crwdns61044:0crwdne61044:0
|
||||
crwdns61046:0https://webhook-test.com/crwdne61046:0
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/self-hosting/webhook-test-result.jpg" alt="Webhook test result" />
|
||||
</div>
|
||||
crwdns61048:0crwdne61048:0 crwdns61050:0crwdne61050:0
|
||||
|
||||
#### crwdns61052:0crwdne61052:0
|
||||
|
||||
crwdns61054:0crwdne61054:0
|
||||
|
||||
```
|
||||
plugins: [
|
||||
react({ jsxImportSource: '@emotion/react' }),
|
||||
tsconfigPaths(),
|
||||
svgr(),
|
||||
dts(dtsConfig),
|
||||
// checker(checkersConfig),
|
||||
wyw({
|
||||
include: [
|
||||
'**/OverflowingTextWithTooltip.tsx',
|
||||
'**/Chip.tsx',
|
||||
'**/Tag.tsx',
|
||||
'**/Avatar.tsx',
|
||||
'**/AvatarChip.tsx',
|
||||
],
|
||||
babelOptions: {
|
||||
presets: ['@babel/preset-typescript', '@babel/preset-react'],
|
||||
},
|
||||
}),
|
||||
],
|
||||
```
|
||||
|
||||
#### crwdns61056:0crwdne61056:0
|
||||
|
||||
crwdns61058:0crwdne61058:0
|
||||
|
||||
### crwdns61060:0crwdne61060:0
|
||||
|
||||
#### crwdns61062:0crwdne61062:0
|
||||
|
||||
crwdns61064:0crwdne61064:0
|
||||
|
||||
1. crwdns61066:0crwdne61066:0
|
||||
```bash
|
||||
docker exec -it twenty-server-1 yarn
|
||||
docker exec -it twenty-server-1 npx nx database:reset --configuration=no-seed
|
||||
```
|
||||
2. crwdns61068:0crwdne61068:0
|
||||
```bash
|
||||
docker compose down
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
crwdns61070:0crwdne61070:0
|
||||
|
||||
#### crwdns61072:0crwdne61072:0
|
||||
|
||||
crwdns61074:0crwdne61074:0
|
||||
|
||||
1. crwdns61076:0crwdne61076:0
|
||||
|
||||
crwdns61078:0crwdne61078:0
|
||||
|
||||
2. crwdns61080:0crwdne61080:0
|
||||
|
||||
- crwdns61082:0crwdne61082:0
|
||||
- crwdns61084:0crwdne61084:0
|
||||
|
||||
3. crwdns61086:0crwdne61086:0
|
||||
|
||||
crwdns61088:0crwdne61088:0
|
||||
|
||||
#### crwdns61090:0crwdne61090:0
|
||||
|
||||
crwdns61092:0crwdne61092:0
|
||||
|
||||
## crwdns61094:0crwdne61094:0
|
||||
|
||||
crwdns61096:0crwdne61096:0
|
||||
|
||||
- crwdns61098:0crwdne61098:0
|
||||
|
||||
crwdns61100:0crwdne61100:0
|
||||
|
||||
```bash
|
||||
docker compose logs
|
||||
```
|
||||
|
||||
- crwdns61102:0crwdne61102:0
|
||||
|
||||
crwdns61104:0https://github.com/twentyhq/twenty/issuescrwdnd61104:0https://discord.gg/cx5n4Jzs57crwdne61104:0
|
||||
@@ -0,0 +1,382 @@
|
||||
---
|
||||
title: crwdns59094:0crwdne59094:0
|
||||
image: crwdns59096:0crwdne59096:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/notes/notes_header.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns59098:0crwdne59098:0
|
||||
|
||||
crwdns64006:0{db_container_name_or_id}crwdnd64006:0{postgres_user}crwdne64006:0
|
||||
|
||||
crwdns64008:0{db_container_name_or_id}crwdnd64008:0{postgres_user}crwdne64008:0
|
||||
|
||||
crwdns59104:0crwdne59104:0
|
||||
|
||||
1. crwdns59106:0crwdne59106:0
|
||||
|
||||
2. crwdns59108:0crwdne59108:0 crwdns59110:0crwdne59110:0
|
||||
|
||||
3. crwdns59112:0crwdne59112:0
|
||||
|
||||
crwdns59114:0crwdne59114:0
|
||||
|
||||
crwdns59116:0crwdne59116:0
|
||||
|
||||
## crwdns59118:0crwdne59118:0
|
||||
|
||||
## crwdns59120:0crwdne59120:0
|
||||
|
||||
crwdns59122:0crwdne59122:0 crwdns59124:0crwdne59124:0
|
||||
|
||||
## crwdns59126:0crwdne59126:0
|
||||
|
||||
### crwdns59128:0crwdne59128:0
|
||||
|
||||
crwdns59130:0crwdne59130:0
|
||||
|
||||
crwdns59132:0crwdne59132:0
|
||||
|
||||
crwdns59134:0crwdne59134:0 crwdns59136:0crwdne59136:0
|
||||
|
||||
```bash
|
||||
yarn command:prod cache:flush
|
||||
```
|
||||
|
||||
### crwdns59138:0crwdne59138:0
|
||||
|
||||
crwdns59140:0crwdne59140:0
|
||||
|
||||
crwdns59142:0crwdne59142:0
|
||||
|
||||
### crwdns59144:0crwdne59144:0
|
||||
|
||||
crwdns59146:0crwdne59146:0
|
||||
|
||||
crwdns59148:0crwdne59148:0
|
||||
|
||||
```bash
|
||||
yarn command:prod cache:flush
|
||||
```
|
||||
|
||||
crwdns59150:0crwdne59150:0
|
||||
|
||||
### crwdns59152:0crwdne59152:0
|
||||
|
||||
crwdns59154:0crwdne59154:0
|
||||
|
||||
#### crwdns59156:0crwdne59156:0
|
||||
|
||||
crwdns59158:0crwdne59158:0
|
||||
crwdns59160:0crwdne59160:0 crwdns59162:0crwdne59162:0
|
||||
|
||||
### crwdns59164:0crwdne59164:0
|
||||
|
||||
crwdns59166:0crwdne59166:0
|
||||
|
||||
crwdns59168:0crwdne59168:0
|
||||
|
||||
crwdns59170:0crwdne59170:0
|
||||
|
||||
crwdns59172:0$APP_VERSIONcrwdne59172:0
|
||||
|
||||
crwdns59174:0crwdne59174:0
|
||||
|
||||
#### crwdns59176:0crwdne59176:0
|
||||
|
||||
crwdns59178:0crwdne59178:0
|
||||
|
||||
### crwdns59180:0crwdne59180:0
|
||||
|
||||
crwdns59182:0crwdne59182:0
|
||||
|
||||
```
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod upgrade
|
||||
```
|
||||
|
||||
#### crwdns59184:0crwdne59184:0
|
||||
|
||||
crwdns59186:0crwdne59186:0
|
||||
crwdns59188:0crwdne59188:0
|
||||
|
||||
### crwdns59190:0crwdne59190:0
|
||||
|
||||
crwdns59192:0crwdne59192:0
|
||||
|
||||
```
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod upgrade
|
||||
```
|
||||
|
||||
### crwdns59194:0crwdne59194:0
|
||||
|
||||
crwdns59196:0crwdne59196:0
|
||||
|
||||
```
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod upgrade
|
||||
```
|
||||
|
||||
#### crwdns59198:0crwdne59198:0
|
||||
|
||||
crwdns59200:0crwdne59200:0
|
||||
crwdns59202:0https://github.com/twentyhq/twenty/blob/v0.50.0/packages/twenty-docker/docker-compose.ymlcrwdne59202:0
|
||||
|
||||
### crwdns59204:0crwdne59204:0
|
||||
|
||||
crwdns59206:0crwdne59206:0
|
||||
|
||||
```
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod upgrade
|
||||
```
|
||||
|
||||
### crwdns59208:0crwdne59208:0
|
||||
|
||||
crwdns59210:0crwdne59210:0
|
||||
|
||||
```
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod upgrade
|
||||
```
|
||||
|
||||
crwdns59212:0crwdne59212:0
|
||||
|
||||
#### crwdns59214:0crwdne59214:0
|
||||
|
||||
crwdns59216:0crwdne59216:0
|
||||
|
||||
#### crwdns59218:0crwdne59218:0
|
||||
|
||||
crwdns59220:0crwdne59220:0
|
||||
|
||||
1. crwdns59222:0crwdne59222:0
|
||||
|
||||
```
|
||||
docker exec -it twenty-db-1 sh
|
||||
pg_dump -U {YOUR_POSTGRES_USER} -d {YOUR_POSTGRES_DB} > databases_backup.sql
|
||||
exit
|
||||
docker cp twenty-db-1:/home/postgres/databases_backup.sql .
|
||||
```
|
||||
|
||||
crwdns59224:0crwdne59224:0
|
||||
|
||||
2. crwdns59226:0https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/docker-compose.ymlcrwdne59226:0
|
||||
|
||||
3. crwdns59228:0crwdne59228:0
|
||||
|
||||
```
|
||||
docker cp databases_backup.sql twenty-db-1:/databases_backup.sql
|
||||
docker exec -it twenty-db-1 sh
|
||||
psql -U {YOUR_POSTGRES_USER} -d {YOUR_POSTGRES_DB} -f databases_backup.sql
|
||||
exit
|
||||
```
|
||||
|
||||
### crwdns59230:0crwdne59230:0
|
||||
|
||||
crwdns59232:0crwdne59232:0
|
||||
|
||||
```
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod upgrade-0.42
|
||||
```
|
||||
|
||||
crwdns59234:0crwdne59234:0
|
||||
|
||||
- crwdns59236:0crwdne59236:0
|
||||
- crwdns59238:0crwdne59238:0
|
||||
|
||||
### crwdns59240:0crwdne59240:0
|
||||
|
||||
crwdns59242:0crwdne59242:0
|
||||
|
||||
```
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod upgrade-0.41
|
||||
```
|
||||
|
||||
crwdns59244:0crwdne59244:0
|
||||
|
||||
- crwdns59246:0crwdne59246:0
|
||||
|
||||
### crwdns59248:0crwdne59248:0
|
||||
|
||||
crwdns59250:0crwdne59250:0
|
||||
|
||||
```
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod upgrade-0.40
|
||||
```
|
||||
|
||||
crwdns59252:0crwdne59252:0
|
||||
|
||||
- crwdns59254:0crwdne59254:0
|
||||
|
||||
### crwdns59256:0crwdne59256:0
|
||||
|
||||
crwdns59258:0crwdne59258:0
|
||||
|
||||
```
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod upgrade-0.35
|
||||
```
|
||||
|
||||
crwdns59260:0crwdne59260:0
|
||||
|
||||
crwdns59262:0crwdne59262:0
|
||||
|
||||
- crwdns59264:0crwdne59264:0
|
||||
|
||||
### crwdns59266:0crwdne59266:0
|
||||
|
||||
crwdns59268:0crwdne59268:0
|
||||
|
||||
```
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod upgrade-0.34
|
||||
```
|
||||
|
||||
crwdns59270:0crwdne59270:0
|
||||
|
||||
crwdns59272:0crwdne59272:0
|
||||
|
||||
- crwdns59274:0crwdne59274:0
|
||||
- crwdns59276:0crwdne59276:0
|
||||
|
||||
crwdns59278:0crwdne59278:0
|
||||
crwdns59280:0crwdne59280:0
|
||||
crwdns59282:0crwdne59282:0
|
||||
|
||||
### crwdns59284:0crwdne59284:0
|
||||
|
||||
crwdns59286:0crwdne59286:0
|
||||
|
||||
```
|
||||
yarn command:prod cache:flush
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod upgrade-0.33
|
||||
```
|
||||
|
||||
crwdns59288:0crwdne59288:0
|
||||
crwdns59290:0crwdne59290:0
|
||||
|
||||
crwdns59292:0crwdne59292:0
|
||||
crwdns59294:0${TAG}crwdne59294:0
|
||||
|
||||
### crwdns59296:0crwdne59296:0
|
||||
|
||||
crwdns59298:0crwdne59298:0
|
||||
|
||||
crwdns59300:0crwdne59300:0
|
||||
|
||||
```
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod upgrade-0.32
|
||||
```
|
||||
|
||||
crwdns59302:0crwdne59302:0
|
||||
|
||||
crwdns59304:0crwdne59304:0
|
||||
|
||||
crwdns59306:0crwdne59306:0
|
||||
|
||||
- crwdns59308:0crwdne59308:0
|
||||
- crwdns59310:0crwdne59310:0
|
||||
|
||||
crwdns59312:0crwdne59312:0
|
||||
|
||||
crwdns59314:0crwdne59314:0
|
||||
|
||||
- crwdns59316:0crwdne59316:0
|
||||
- crwdns59318:0crwdne59318:0
|
||||
|
||||
crwdns59320:0crwdne59320:0
|
||||
|
||||
crwdns59322:0crwdne59322:0
|
||||
|
||||
crwdns59324:0https://developers.google.com/peoplecrwdne59324:0
|
||||
|
||||
### crwdns59326:0crwdne59326:0
|
||||
|
||||
crwdns59328:0crwdne59328:0
|
||||
|
||||
crwdns59330:0crwdne59330:0
|
||||
|
||||
```
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod upgrade-0.31
|
||||
```
|
||||
|
||||
crwdns59332:0crwdne59332:0
|
||||
|
||||
### crwdns59334:0crwdne59334:0
|
||||
|
||||
crwdns59336:0crwdne59336:0
|
||||
|
||||
crwdns64010:0crwdne64010:0 crwdns59340:0https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/docker-compose.ymlcrwdne59340:0
|
||||
crwdns59342:0crwdne59342:0
|
||||
|
||||
```
|
||||
REDIS_HOST={your-redis-host}
|
||||
REDIS_PORT={your-redis-port}
|
||||
CACHE_STORAGE_TYPE=redis
|
||||
```
|
||||
|
||||
crwdns59344:0crwdne59344:0
|
||||
|
||||
```
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod upgrade-0.30
|
||||
```
|
||||
|
||||
crwdns59346:0crwdne59346:0
|
||||
|
||||
### crwdns59348:0crwdne59348:0
|
||||
|
||||
crwdns59350:0crwdne59350:0
|
||||
|
||||
crwdns59352:0crwdne59352:0
|
||||
|
||||
```
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod upgrade-0.24
|
||||
```
|
||||
|
||||
crwdns59354:0crwdne59354:0
|
||||
|
||||
### crwdns59356:0crwdne59356:0
|
||||
|
||||
crwdns59358:0crwdne59358:0
|
||||
|
||||
crwdns59360:0crwdne59360:0
|
||||
|
||||
```
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod upgrade-0.23
|
||||
```
|
||||
|
||||
crwdns59362:0crwdne59362:0
|
||||
crwdns59364:0crwdne59364:0
|
||||
|
||||
### crwdns59366:0crwdne59366:0
|
||||
|
||||
crwdns59368:0crwdne59368:0
|
||||
|
||||
crwdns59370:0crwdne59370:0
|
||||
|
||||
```
|
||||
yarn database:migrate:prod
|
||||
yarn command:prod workspace:sync-metadata -f
|
||||
yarn command:prod upgrade-0.22
|
||||
```
|
||||
|
||||
crwdns59372:0crwdne59372:0
|
||||
crwdns59374:0crwdne59374:0
|
||||
crwdns59376:0crwdne59376:0
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
---
|
||||
title: crwdns61986:0crwdne61986:0
|
||||
image: crwdns61988:0crwdne61988:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/tips/light-bulb.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns61990:0crwdne61990:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { AppTooltip } from "@/ui/display/tooltip/AppTooltip";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<>
|
||||
<p id="hoverText" style={{ display: "inline-block" }}>
|
||||
Customer Insights
|
||||
</p>
|
||||
<AppTooltip
|
||||
className
|
||||
anchorSelect="#hoverText"
|
||||
content="Explore customer behavior and preferences"
|
||||
delayHide={0}
|
||||
offset={6}
|
||||
noArrow={false}
|
||||
isOpen={true}
|
||||
place="bottom"
|
||||
positionStrategy="absolute"
|
||||
/>
|
||||
</>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns61992:0crwdne61992:0 | crwdns61994:0crwdne61994:0 | crwdns61996:0crwdne61996:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns61998:0crwdne61998:0 | crwdns62000:0crwdne62000:0 | crwdns62002:0crwdne62002:0 |
|
||||
| crwdns62004:0crwdne62004:0 | crwdns62006:0crwdne62006:0 | crwdns62008:0crwdne62008:0 |
|
||||
| crwdns62010:0crwdne62010:0 | crwdns62012:0crwdne62012:0 | crwdns62014:0crwdne62014:0 |
|
||||
| crwdns62016:0crwdne62016:0 | crwdns62018:0crwdne62018:0 | crwdns62020:0crwdne62020:0 |
|
||||
| crwdns62022:0crwdne62022:0 | crwdns62024:0crwdne62024:0 | crwdns62026:0crwdne62026:0 |
|
||||
| crwdns62028:0crwdne62028:0 | crwdns62030:0crwdne62030:0 | crwdns62032:0crwdne62032:0 |
|
||||
| crwdns62034:0crwdne62034:0 | crwdns62036:0crwdne62036:0 | crwdns62038:0crwdne62038:0 |
|
||||
| crwdns62040:0crwdne62040:0 | crwdns62042:0crwdne62042:0 | crwdns62044:0crwdne62044:0 crwdns62046:0crwdne62046:0 |
|
||||
| crwdns62048:0crwdne62048:0 | crwdns62050:0crwdne62050:0 | crwdns62052:0crwdne62052:0 crwdns62054:0crwdne62054:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
|
||||
## crwdns62056:0crwdne62056:0
|
||||
|
||||
crwdns62058:0crwdne62058:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { OverflowingTextWithTooltip } from 'twenty-ui/display';
|
||||
|
||||
export const MyComponent = () => {
|
||||
const crmTaskDescription =
|
||||
'Follow up with client regarding their recent product inquiry. Discuss pricing options, address any concerns, and provide additional product information. Record the details of the conversation in the CRM for future reference.';
|
||||
|
||||
return <OverflowingTextWithTooltip text={crmTaskDescription} />;
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62060:0crwdne62060:0 | crwdns62062:0crwdne62062:0 | crwdns62064:0crwdne62064:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns62066:0crwdne62066:0 | crwdns62068:0crwdne62068:0 | crwdns62070:0crwdne62070:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
@@ -0,0 +1,69 @@
|
||||
---
|
||||
title: crwdns63532:0crwdne63532:0
|
||||
image: crwdns63534:0crwdne63534:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/tasks/tasks_header.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns63536:0crwdne63536:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { Checkmark } from 'twenty-ui/display';
|
||||
|
||||
export const MyComponent = () => {
|
||||
return <Checkmark />;
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
crwdns63538:0crwdne63538:0
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
|
||||
## crwdns63540:0crwdne63540:0
|
||||
|
||||
crwdns63542:0crwdne63542:0
|
||||
|
||||
<Tabs>
|
||||
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { AnimatedCheckmark } from 'twenty-ui/display';
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<AnimatedCheckmark
|
||||
isAnimating={true}
|
||||
color="green"
|
||||
duration={0.5}
|
||||
size={30}
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns63544:0crwdne63544:0 | crwdns63546:0crwdne63546:0 | crwdns63548:0crwdne63548:0 | crwdns63550:0crwdne63550:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns63552:0crwdne63552:0 | crwdns63554:0crwdne63554:0 | crwdns63556:0crwdne63556:0 | crwdns63558:0crwdne63558:0 |
|
||||
| crwdns63560:0crwdne63560:0 | crwdns63562:0crwdne63562:0 | crwdns63564:0crwdne63564:0 | |
|
||||
| crwdns63566:0crwdne63566:0 | crwdns63568:0crwdne63568:0 | crwdns63570:0crwdne63570:0 | crwdns63572:0crwdne63572:0 |
|
||||
| crwdns63574:0crwdne63574:0 | crwdns63576:0crwdne63576:0 | crwdns63578:0crwdne63578:0 | crwdns63580:0crwdne63580:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
@@ -0,0 +1,148 @@
|
||||
---
|
||||
title: crwdns61724:0crwdne61724:0
|
||||
image: crwdns61732:0crwdne61732:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/github/github-header.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns61736:0crwdne61736:0
|
||||
|
||||
<Tabs>
|
||||
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { Chip } from 'twenty-ui/components';
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<Chip
|
||||
size="large"
|
||||
label="Clickable Chip"
|
||||
clickable={true}
|
||||
variant="highlighted"
|
||||
accent="text-primary"
|
||||
leftComponent
|
||||
rightComponent
|
||||
maxWidth="200px"
|
||||
className
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns61740:0crwdne61740:0 | crwdns61744:0crwdne61744:0 | crwdns61748:0crwdne61748:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns61752:0crwdne61752:0 | crwdns61754:0crwdne61754:0 | crwdns61756:0crwdne61756:0 |
|
||||
| crwdns61758:0crwdne61758:0 | crwdns61760:0crwdne61760:0 | crwdns61762:0crwdne61762:0 |
|
||||
| crwdns61764:0crwdne61764:0 | crwdns61766:0crwdne61766:0 | crwdns61768:0crwdne61768:0 |
|
||||
| crwdns61770:0crwdne61770:0 | crwdns61772:0crwdne61772:0 | crwdns61774:0crwdne61774:0 |
|
||||
| crwdns61776:0crwdne61776:0 | crwdns61778:0crwdne61778:0 | crwdns61780:0crwdne61780:0 crwdns61782:0crwdne61782:0 |
|
||||
| crwdns61784:0crwdne61784:0 | crwdns61786:0crwdne61786:0 | crwdns61788:0crwdne61788:0 crwdns61790:0crwdne61790:0 |
|
||||
| crwdns61792:0crwdne61792:0 | crwdns61794:0crwdne61794:0 | crwdns61796:0crwdne61796:0 crwdns61798:0crwdne61798:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## crwdns61800:0crwdne61800:0
|
||||
|
||||
### crwdns61802:0crwdne61802:0
|
||||
|
||||
```jsx
|
||||
import { Chip } from 'twenty-ui/components';
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<Chip
|
||||
size="large"
|
||||
label="Transparent Disabled Chip"
|
||||
clickable={false}
|
||||
variant="rounded"
|
||||
accent="text-secondary"
|
||||
leftComponent
|
||||
rightComponent
|
||||
maxWidth="200px"
|
||||
className
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
```
|
||||
|
||||
crwdns61804:0crwdne61804:0
|
||||
|
||||
### crwdns61806:0crwdne61806:0
|
||||
|
||||
```jsx
|
||||
import { Chip } from "twenty-ui/components";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<Chip
|
||||
size="large"
|
||||
label="Disabled chip that triggers a tooltip when overflowing."
|
||||
clickable={false}
|
||||
variant="regular"
|
||||
accent="text-primary"
|
||||
leftComponent
|
||||
rightComponent
|
||||
maxWidth="200px"
|
||||
className
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
## crwdns61808:0crwdne61808:0
|
||||
|
||||
crwdns61810:0crwdne61810:0
|
||||
|
||||
<Tabs>
|
||||
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { BrowserRouter as Router } from 'react-router-dom';
|
||||
import { IconTwentyStar } from 'twenty-ui/display';
|
||||
import { Chip } from 'twenty-ui/components';
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<Router>
|
||||
<Chip
|
||||
linkToEntity="/entity-link"
|
||||
entityId="entityTest"
|
||||
name="Entity name"
|
||||
pictureUrl=""
|
||||
avatarType="rounded"
|
||||
variant="regular"
|
||||
LeftIcon={IconTwentyStar}
|
||||
/>
|
||||
</Router>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns61812:0crwdne61812:0 | crwdns61814:0crwdne61814:0 | crwdns61816:0crwdne61816:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns61818:0crwdne61818:0 | crwdns61820:0crwdne61820:0 | crwdns61822:0crwdne61822:0 |
|
||||
| crwdns61824:0crwdne61824:0 | crwdns61826:0crwdne61826:0 | crwdns61828:0crwdne61828:0 |
|
||||
| crwdns61830:0crwdne61830:0 | crwdns61832:0crwdne61832:0 | crwdns61834:0crwdne61834:0 |
|
||||
| crwdns61836:0crwdne61836:0 | crwdns61838:0crwdne61838:0 | crwdns61840:0crwdne61840:0 |
|
||||
| crwdns61842:0crwdne61842:0 | crwdns61844:0crwdne61844:0 | crwdns61846:0crwdne61846:0 crwdns61848:0crwdne61848:0 |
|
||||
| crwdns61850:0crwdne61850:0 | crwdns61852:0crwdne61852:0 | crwdns61854:0crwdne61854:0 crwdns61856:0crwdne61856:0 |
|
||||
| crwdns61858:0crwdne61858:0 | crwdns61860:0crwdne61860:0 | crwdns61862:0crwdne61862:0 crwdns61864:0crwdne61864:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
@@ -0,0 +1,83 @@
|
||||
---
|
||||
title: crwdns63624:0crwdne63624:0
|
||||
image: crwdns63626:0crwdne63626:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/objects/objects.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns63628:0crwdne63628:0
|
||||
|
||||
## crwdns63630:0crwdne63630:0
|
||||
|
||||
crwdns63632:0crwdne63632:0
|
||||
|
||||
<Tabs>
|
||||
|
||||
<Tab title="Installation">crwdns63634:0crwdne63634:0
|
||||
|
||||
```
|
||||
yarn add @tabler/icons-react
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
crwdns63636:0crwdne63636:0 crwdns63638:0crwdne63638:0
|
||||
|
||||
```jsx
|
||||
import { IconArrowLeft } from "@tabler/icons-react";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return <IconArrowLeft color="red" size={48} />;
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns63640:0crwdne63640:0 | crwdns63642:0crwdne63642:0 | crwdns63644:0crwdne63644:0 | crwdns63646:0crwdne63646:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns63648:0crwdne63648:0 | crwdns63650:0crwdne63650:0 | crwdns63652:0crwdne63652:0 | crwdns63654:0crwdne63654:0 |
|
||||
| crwdns63656:0crwdne63656:0 | crwdns63658:0crwdne63658:0 | crwdns63660:0crwdne63660:0 | crwdns63662:0crwdne63662:0 |
|
||||
| crwdns63664:0crwdne63664:0 | crwdns63666:0crwdne63666:0 | crwdns63668:0crwdne63668:0 | crwdns63670:0crwdne63670:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
|
||||
## crwdns63672:0crwdne63672:0
|
||||
|
||||
crwdns63674:0crwdne63674:0
|
||||
|
||||
### crwdns63676:0crwdne63676:0
|
||||
|
||||
crwdns63678:0crwdne63678:0
|
||||
|
||||
<Tabs>
|
||||
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { IconAddressBook } from 'twenty-ui/display';
|
||||
|
||||
export const MyComponent = () => {
|
||||
return <IconAddressBook size={24} stroke={2} />;
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns63680:0crwdne63680:0 | crwdns63682:0crwdne63682:0 | crwdns63684:0crwdne63684:0 | crwdns63686:0crwdne63686:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns63688:0crwdne63688:0 | crwdns63690:0crwdne63690:0 | crwdns63692:0crwdne63692:0 | crwdns63694:0crwdne63694:0 |
|
||||
| crwdns63696:0crwdne63696:0 | crwdns63698:0crwdne63698:0 | crwdns63700:0crwdne63700:0 | crwdns63702:0crwdne63702:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: crwdns62972:0crwdne62972:0
|
||||
image: crwdns62974:0crwdne62974:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/kanban-views/kanban.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns62976:0crwdne62976:0
|
||||
|
||||
```jsx
|
||||
import { SoonPill } from "@/ui/display/pill/components/SoonPill";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return <SoonPill />;
|
||||
};
|
||||
```
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
title: crwdns63586:0crwdne63586:0
|
||||
image: crwdns63588:0crwdne63588:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/table-views/table.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns63590:0crwdne63590:0
|
||||
|
||||
<Tabs>
|
||||
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { Tag } from "@/ui/display/tag/components/Tag";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<Tag
|
||||
className
|
||||
color="red"
|
||||
text="Urgent"
|
||||
onClick={() => console.log("click")}
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns63592:0crwdne63592:0 | crwdns63594:0crwdne63594:0 | crwdns63596:0crwdne63596:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns63598:0crwdne63598:0 | crwdns63600:0crwdne63600:0 | crwdns63602:0crwdne63602:0 |
|
||||
| crwdns63604:0crwdne63604:0 | crwdns63606:0crwdne63606:0 | crwdns63608:0crwdne63608:0 crwdns63610:0crwdne63610:0 |
|
||||
| crwdns63612:0crwdne63612:0 | crwdns63614:0crwdne63614:0 | crwdns63616:0crwdne63616:0 |
|
||||
| crwdns63618:0crwdne63618:0 | crwdns63620:0crwdne63620:0 | crwdns63622:0crwdne63622:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: crwdns63582:0crwdne63582:0
|
||||
image: crwdns63584:0crwdne63584:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/tips/light-bulb.png" alt="Header" />
|
||||
</Frame>
|
||||
@@ -0,0 +1,34 @@
|
||||
---
|
||||
title: crwdns62852:0crwdne62852:0
|
||||
image: crwdns62854:0crwdne62854:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/api/api.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns62856:0https://www.blocknotejs.org/crwdne62856:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { useBlockNote } from "@blocknote/react";
|
||||
import { BlockEditor } from "@/ui/input/editor/components/BlockEditor";
|
||||
|
||||
export const MyComponent = () => {
|
||||
const BlockNoteEditor = useBlockNote();
|
||||
|
||||
return <BlockEditor editor={BlockNoteEditor} />;
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62858:0crwdne62858:0 | crwdns62860:0crwdne62860:0 | crwdns62862:0crwdne62862:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns62864:0crwdne62864:0 | crwdns62866:0crwdne62866:0 | crwdns62868:0crwdne62868:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
@@ -0,0 +1,440 @@
|
||||
---
|
||||
title: crwdns62996:0crwdne62996:0
|
||||
image: crwdns62998:0crwdne62998:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/views/filter.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns63000:0crwdne63000:0
|
||||
|
||||
## crwdns63002:0crwdne63002:0
|
||||
|
||||
<Tabs>
|
||||
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { Button } from "@/ui/input/button/components/Button";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<Button
|
||||
className
|
||||
Icon={null}
|
||||
title="Title"
|
||||
fullWidth={false}
|
||||
variant="primary"
|
||||
size="medium"
|
||||
position="standalone"
|
||||
accent="default"
|
||||
soon={false}
|
||||
disabled={false}
|
||||
focus={true}
|
||||
onClick={() => console.log("click")}
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns63004:0crwdne63004:0 | crwdns63006:0crwdne63006:0 | crwdns63008:0crwdne63008:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns63010:0crwdne63010:0 | crwdns63012:0crwdne63012:0 | crwdns63014:0crwdne63014:0 |
|
||||
| crwdns63016:0crwdne63016:0 | crwdns63018:0crwdne63018:0 | crwdns63020:0crwdne63020:0 |
|
||||
| crwdns63022:0crwdne63022:0 | crwdns63024:0crwdne63024:0 | crwdns63026:0crwdne63026:0 |
|
||||
| crwdns63028:0crwdne63028:0 | crwdns63030:0crwdne63030:0 | crwdns63032:0crwdne63032:0 |
|
||||
| crwdns63034:0crwdne63034:0 | crwdns63036:0crwdne63036:0 | crwdns63038:0crwdne63038:0 crwdns63040:0crwdne63040:0 |
|
||||
| crwdns63042:0crwdne63042:0 | crwdns63044:0crwdne63044:0 | crwdns63046:0crwdne63046:0 crwdns63048:0crwdne63048:0 |
|
||||
| crwdns63050:0crwdne63050:0 | crwdns63052:0crwdne63052:0 | crwdns63054:0crwdne63054:0 crwdns63056:0crwdne63056:0 |
|
||||
| crwdns63058:0crwdne63058:0 | crwdns63060:0crwdne63060:0 | crwdns63062:0crwdne63062:0 crwdns63064:0crwdne63064:0 |
|
||||
| crwdns63066:0crwdne63066:0 | crwdns63068:0crwdne63068:0 | crwdns63070:0crwdne63070:0 |
|
||||
| crwdns63072:0crwdne63072:0 | crwdns63074:0crwdne63074:0 | crwdns63076:0crwdne63076:0 |
|
||||
| crwdns63078:0crwdne63078:0 | crwdns63080:0crwdne63080:0 | crwdns63082:0crwdne63082:0 |
|
||||
| crwdns63084:0crwdne63084:0 | crwdns63086:0crwdne63086:0 | crwdns63088:0crwdne63088:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
|
||||
## crwdns63090:0crwdne63090:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">crwdns63092:0{ Button }crwdnd63092:0{ ButtonGroup }crwdne63092:0
|
||||
|
||||
crwdns63094:0{null}crwdnd63094:0{false}crwdnd63094:0{false}crwdnd63094:0{false}crwdnd63094:0{false}crwdnd63094:0{null}crwdnd63094:0{false}crwdnd63094:0{false}crwdnd63094:0{false}crwdnd63094:0{false}crwdnd63094:0{null}crwdnd63094:0{false}crwdnd63094:0{false}crwdnd63094:0{false}crwdnd63094:0{false}crwdne63094:0
|
||||
|
||||
````
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
|
||||
| Props | Type | Description |
|
||||
|-------|------|-------------|
|
||||
| variant | string | The visual style variant of the buttons within the group. Options include `primary`, `secondary`, and `tertiary` |
|
||||
| size | string | The size of the buttons within the group. Has two options: `medium` and `small` |
|
||||
| accent | string | The accent color of the buttons within the group. Options include `default`, `blue` and `danger` |
|
||||
| className | string | Optional class name for additional styling |
|
||||
| children | ReactNode | An array of React elements representing the individual buttons within the group |
|
||||
|
||||
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
|
||||
## Floating Button
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { FloatingButton } from "@/ui/input/button/components/FloatingButton";
|
||||
import { IconSearch } from "@tabler/icons-react";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<FloatingButton
|
||||
className
|
||||
Icon={IconSearch}
|
||||
title="Title"
|
||||
size="medium"
|
||||
position="standalone"
|
||||
applyShadow={true}
|
||||
applyBlur={true}
|
||||
disabled={false}
|
||||
focus={true}
|
||||
/>
|
||||
);
|
||||
};
|
||||
````
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns63096:0crwdne63096:0 | crwdns63098:0crwdne63098:0 | crwdns63100:0crwdne63100:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns63102:0crwdne63102:0 | crwdns63104:0crwdne63104:0 | crwdns63106:0crwdne63106:0 |
|
||||
| crwdns63108:0crwdne63108:0 | crwdns63110:0crwdne63110:0 | crwdns63112:0crwdne63112:0 |
|
||||
| crwdns63114:0crwdne63114:0 | crwdns63116:0crwdne63116:0 | crwdns63118:0crwdne63118:0 |
|
||||
| crwdns63120:0crwdne63120:0 | crwdns63122:0crwdne63122:0 | crwdns63124:0crwdne63124:0 crwdns63126:0crwdne63126:0 |
|
||||
| crwdns63128:0crwdne63128:0 | crwdns63130:0crwdne63130:0 | crwdns63132:0crwdne63132:0 crwdns63134:0crwdne63134:0 |
|
||||
| crwdns63136:0crwdne63136:0 | crwdns63138:0crwdne63138:0 | crwdns63140:0crwdne63140:0 |
|
||||
| crwdns63142:0crwdne63142:0 | crwdns63144:0crwdne63144:0 | crwdns63146:0crwdne63146:0 |
|
||||
| crwdns63148:0crwdne63148:0 | crwdns63150:0crwdne63150:0 | crwdns63152:0crwdne63152:0 |
|
||||
| crwdns63154:0crwdne63154:0 | crwdns63156:0crwdne63156:0 | crwdns63158:0crwdne63158:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## crwdns63160:0crwdne63160:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { FloatingButton } from "@/ui/input/button/components/FloatingButton";
|
||||
import { FloatingButtonGroup } from "@/ui/input/button/components/FloatingButtonGroup";
|
||||
import { IconClipboardText, IconCheckbox } from "@tabler/icons-react";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<FloatingButtonGroup size="small">
|
||||
<FloatingButton
|
||||
className
|
||||
Icon={IconClipboardText}
|
||||
title
|
||||
size="small"
|
||||
position="standalone"
|
||||
applyShadow={true}
|
||||
applyBlur={true}
|
||||
disabled={false}
|
||||
focus={true}
|
||||
/>
|
||||
<FloatingButton
|
||||
className
|
||||
Icon={IconCheckbox}
|
||||
title
|
||||
size="small"
|
||||
position="standalone"
|
||||
applyShadow={true}
|
||||
applyBlur={true}
|
||||
disabled={false}
|
||||
/>
|
||||
</FloatingButtonGroup>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns63162:0crwdne63162:0 | crwdns63164:0crwdne63164:0 | crwdns63166:0crwdne63166:0 | crwdns63168:0crwdne63168:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns63170:0crwdne63170:0 | crwdns63172:0crwdne63172:0 | crwdns63174:0crwdne63174:0 crwdns63176:0crwdne63176:0 | crwdns63178:0crwdne63178:0 |
|
||||
| crwdns63180:0crwdne63180:0 | crwdns63182:0crwdne63182:0 | crwdns63184:0crwdne63184:0 | |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
|
||||
## crwdns63186:0crwdne63186:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { FloatingIconButton } from "@/ui/input/button/components/FloatingIconButton";
|
||||
import { IconSearch } from "@tabler/icons-react";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<FloatingIconButton
|
||||
className
|
||||
Icon={IconSearch}
|
||||
size="small"
|
||||
position="standalone"
|
||||
applyShadow={true}
|
||||
applyBlur={true}
|
||||
disabled={false}
|
||||
focus={false}
|
||||
onClick={() => console.log("click")}
|
||||
isActive={true}
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns63188:0crwdne63188:0 | crwdns63190:0crwdne63190:0 | crwdns63192:0crwdne63192:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns63194:0crwdne63194:0 | crwdns63196:0crwdne63196:0 | crwdns63198:0crwdne63198:0 |
|
||||
| crwdns63200:0crwdne63200:0 | crwdns63202:0crwdne63202:0 | crwdns63204:0crwdne63204:0 |
|
||||
| crwdns63206:0crwdne63206:0 | crwdns63208:0crwdne63208:0 | crwdns63210:0crwdne63210:0 crwdns63212:0crwdne63212:0 |
|
||||
| crwdns63214:0crwdne63214:0 | crwdns63216:0crwdne63216:0 | crwdns63218:0crwdne63218:0 crwdns63220:0crwdne63220:0 |
|
||||
| crwdns63222:0crwdne63222:0 | crwdns63224:0crwdne63224:0 | crwdns63226:0crwdne63226:0 |
|
||||
| crwdns63228:0crwdne63228:0 | crwdns63230:0crwdne63230:0 | crwdns63232:0crwdne63232:0 |
|
||||
| crwdns63234:0crwdne63234:0 | crwdns63236:0crwdne63236:0 | crwdns63238:0crwdne63238:0 |
|
||||
| crwdns63240:0crwdne63240:0 | crwdns63242:0crwdne63242:0 | crwdns63244:0crwdne63244:0 |
|
||||
| crwdns63246:0crwdne63246:0 | crwdns63248:0crwdne63248:0 | crwdns63250:0crwdne63250:0 |
|
||||
| crwdns63252:0crwdne63252:0 | crwdns63254:0crwdne63254:0 | crwdns63256:0crwdne63256:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
|
||||
## crwdns63258:0crwdne63258:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { FloatingIconButtonGroup } from "@/ui/input/button/components/FloatingIconButtonGroup";
|
||||
import { IconClipboardText, IconCheckbox } from "@tabler/icons-react";
|
||||
|
||||
export const MyComponent = () => {
|
||||
const iconButtons = [
|
||||
{
|
||||
Icon: IconClipboardText,
|
||||
onClick: () => console.log("Button 1 clicked"),
|
||||
isActive: true,
|
||||
},
|
||||
{
|
||||
Icon: IconCheckbox,
|
||||
onClick: () => console.log("Button 2 clicked"),
|
||||
isActive: true,
|
||||
},
|
||||
];
|
||||
|
||||
return (
|
||||
<FloatingIconButtonGroup
|
||||
className
|
||||
size="small"
|
||||
iconButtons={iconButtons} />
|
||||
);
|
||||
};
|
||||
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns63262:0crwdne63262:0 | crwdns63264:0crwdne63264:0 | crwdns63266:0crwdne63266:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns63268:0crwdne63268:0 | crwdns63270:0crwdne63270:0 | crwdns63272:0crwdne63272:0 |
|
||||
| crwdns63274:0crwdne63274:0 | crwdns63276:0crwdne63276:0 | crwdns63278:0crwdne63278:0 crwdns63280:0crwdne63280:0 |
|
||||
| crwdns63284:0crwdne63284:0 | crwdns63286:0crwdne63286:0 | crwdns63288:0crwdne63288:0 crwdns63292:0crwdne63292:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
|
||||
## crwdns63294:0crwdne63294:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { LightButton } from "@/ui/input/button/components/LightButton";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return <LightButton
|
||||
className
|
||||
icon={null}
|
||||
title="Title"
|
||||
accent="secondary"
|
||||
active={false}
|
||||
disabled={false}
|
||||
focus={true}
|
||||
onClick={()=>console.log('click')}
|
||||
/>;
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns63298:0crwdne63298:0 | crwdns63300:0crwdne63300:0 | crwdns63304:0crwdne63304:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns63306:0crwdne63306:0 | crwdns63310:0crwdne63310:0 | crwdns63312:0crwdne63312:0 |
|
||||
| crwdns63316:0crwdne63316:0 | crwdns63318:0crwdne63318:0 | crwdns63322:0crwdne63322:0 |
|
||||
| crwdns63326:0crwdne63326:0 | crwdns63328:0crwdne63328:0 | crwdns63332:0crwdne63332:0 |
|
||||
| crwdns63334:0crwdne63334:0 | crwdns63336:0crwdne63336:0 | crwdns63340:0crwdne63340:0 crwdns63342:0crwdne63342:0 |
|
||||
| crwdns63346:0crwdne63346:0 | crwdns63348:0crwdne63348:0 | crwdns63350:0crwdne63350:0 |
|
||||
| crwdns63354:0crwdne63354:0 | crwdns63356:0crwdne63356:0 | crwdns63358:0crwdne63358:0 |
|
||||
| crwdns63360:0crwdne63360:0 | crwdns63362:0crwdne63362:0 | crwdns63364:0crwdne63364:0 |
|
||||
| crwdns63366:0crwdne63366:0 | crwdns63368:0crwdne63368:0 | crwdns63370:0crwdne63370:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
|
||||
## crwdns63372:0crwdne63372:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { LightIconButton } from "@/ui/input/button/components/LightIconButton";
|
||||
import { IconSearch } from "@tabler/icons-react";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<LightIconButton
|
||||
className
|
||||
testId="test1"
|
||||
Icon={IconSearch}
|
||||
title="Title"
|
||||
size="small"
|
||||
accent="secondary"
|
||||
active={true}
|
||||
disabled={false}
|
||||
focus={true}
|
||||
onClick={() => console.log("click")}
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns63374:0crwdne63374:0 | crwdns63376:0crwdne63376:0 | crwdns63378:0crwdne63378:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns63380:0crwdne63380:0 | crwdns63382:0crwdne63382:0 | crwdns63384:0crwdne63384:0 |
|
||||
| crwdns63386:0crwdne63386:0 | crwdns63388:0crwdne63388:0 | crwdns63390:0crwdne63390:0 |
|
||||
| crwdns63392:0crwdne63392:0 | crwdns63394:0crwdne63394:0 | crwdns63396:0crwdne63396:0 |
|
||||
| crwdns63398:0crwdne63398:0 | crwdns63400:0crwdne63400:0 | crwdns63402:0crwdne63402:0 |
|
||||
| crwdns63404:0crwdne63404:0 | crwdns63406:0crwdne63406:0 | crwdns63408:0crwdne63408:0 crwdns63410:0crwdne63410:0 |
|
||||
| crwdns63412:0crwdne63412:0 | crwdns63414:0crwdne63414:0 | crwdns63416:0crwdne63416:0 crwdns63418:0crwdne63418:0 |
|
||||
| crwdns63420:0crwdne63420:0 | crwdns63422:0crwdne63422:0 | crwdns63424:0crwdne63424:0 |
|
||||
| crwdns63426:0crwdne63426:0 | crwdns63428:0crwdne63428:0 | crwdns63430:0crwdne63430:0 |
|
||||
| crwdns63432:0crwdne63432:0 | crwdns63434:0crwdne63434:0 | crwdns63436:0crwdne63436:0 |
|
||||
| crwdns63438:0crwdne63438:0 | crwdns63440:0crwdne63440:0 | crwdns63442:0crwdne63442:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
|
||||
## crwdns63444:0crwdne63444:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { MainButton } from "@/ui/input/button/components/MainButton";
|
||||
import { IconCheckbox } from "@tabler/icons-react";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<MainButton
|
||||
title="Checkbox"
|
||||
fullWidth={false}
|
||||
variant="primary"
|
||||
soon={false}
|
||||
Icon={IconCheckbox}
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns63446:0crwdne63446:0 | crwdns63448:0crwdne63448:0 | crwdns63450:0crwdne63450:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns63452:0crwdne63452:0 | crwdns63454:0crwdne63454:0 | crwdns63456:0crwdne63456:0 |
|
||||
| crwdns63458:0crwdne63458:0 | crwdns63460:0crwdne63460:0 | crwdns63462:0crwdne63462:0 |
|
||||
| crwdns63464:0crwdne63464:0 | crwdns63466:0crwdne63466:0 | crwdns63468:0crwdne63468:0 crwdns63470:0crwdne63470:0 |
|
||||
| crwdns63472:0crwdne63472:0 | crwdns63474:0crwdne63474:0 | crwdns63476:0crwdne63476:0 |
|
||||
| crwdns63478:0crwdne63478:0 | crwdns63480:0crwdne63480:0 | crwdns63482:0crwdne63482:0 |
|
||||
| crwdns63484:0crwdne63484:0 | crwdns63486:0crwdne63486:0 | crwdns63488:0crwdne63488:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
|
||||
## crwdns63490:0crwdne63490:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { RoundedIconButton } from "@/ui/input/button/components/RoundedIconButton";
|
||||
import { IconSearch } from "@tabler/icons-react";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<RoundedIconButton
|
||||
Icon={IconSearch}
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns63492:0crwdne63492:0 | crwdns63494:0crwdne63494:0 | crwdns63496:0crwdne63496:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns63498:0crwdne63498:0 | crwdns63500:0crwdne63500:0 | |
|
||||
| crwdns63502:0crwdne63502:0 | crwdns63504:0crwdne63504:0 | |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
title: crwdns61680:0crwdne61680:0
|
||||
image: crwdns61682:0crwdne61682:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/tasks/tasks_header.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns61684:0crwdne61684:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { Checkbox } from "twenty-ui/display";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<Checkbox
|
||||
checked={true}
|
||||
indeterminate={false}
|
||||
onChange={() => console.log("onChange function fired")}
|
||||
onCheckedChange={() => console.log("onCheckedChange function fired")}
|
||||
variant="primary"
|
||||
size="small"
|
||||
shape="squared"
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns61686:0crwdne61686:0 | crwdns61688:0crwdne61688:0 | crwdns61690:0crwdne61690:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns61692:0crwdne61692:0 | crwdns61694:0crwdne61694:0 | crwdns61696:0crwdne61696:0 |
|
||||
| crwdns61698:0crwdne61698:0 | crwdns61700:0crwdne61700:0 | crwdns61702:0crwdne61702:0 |
|
||||
| crwdns61704:0crwdne61704:0 | crwdns61706:0crwdne61706:0 | crwdns61708:0crwdne61708:0 |
|
||||
| crwdns61710:0crwdne61710:0 | crwdns61712:0crwdne61712:0 | crwdns61714:0crwdne61714:0 |
|
||||
| crwdns61716:0crwdne61716:0 | crwdns61718:0crwdne61718:0 | crwdns61720:0crwdne61720:0 crwdns61722:0crwdne61722:0 |
|
||||
| crwdns61726:0crwdne61726:0 | crwdns61728:0crwdne61728:0 | crwdns61730:0crwdne61730:0 crwdns61734:0crwdne61734:0 |
|
||||
| crwdns61738:0crwdne61738:0 | crwdns61742:0crwdne61742:0 | crwdns61746:0crwdne61746:0 crwdns61750:0crwdne61750:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
@@ -0,0 +1,73 @@
|
||||
---
|
||||
title: crwdns62072:0crwdne62072:0
|
||||
image: crwdns62074:0crwdne62074:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/fields/field.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns62076:0crwdne62076:0
|
||||
|
||||
crwdns62078:0crwdne62078:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { ColorSchemeCard } from "twenty-ui/display";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<ColorSchemeCard
|
||||
variant="Dark"
|
||||
selected={true}
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62080:0crwdne62080:0 | crwdns62082:0crwdne62082:0 | crwdns62084:0crwdne62084:0 | crwdns62086:0crwdne62086:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns62088:0crwdne62088:0 | crwdns62090:0crwdne62090:0 | crwdns62092:0crwdne62092:0 crwdns62094:0crwdne62094:0 | crwdns62096:0crwdne62096:0 |
|
||||
| crwdns62098:0crwdne62098:0 | crwdns62100:0crwdne62100:0 | crwdns62102:0crwdne62102:0 | |
|
||||
| crwdns62104:0crwdne62104:0 | crwdns62106:0crwdne62106:0 | crwdns62108:0crwdne62108:0 | |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
|
||||
## crwdns62110:0crwdne62110:0
|
||||
|
||||
crwdns62112:0crwdne62112:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { ColorSchemePicker } from "twenty-ui/display";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return <ColorSchemePicker
|
||||
value="Dark"
|
||||
onChange
|
||||
/>;
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62114:0crwdne62114:0 | crwdns62116:0crwdne62116:0 | crwdns62118:0crwdne62118:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns62120:0crwdne62120:0 | crwdns62122:0crwdne62122:0 | crwdns62124:0crwdne62124:0 |
|
||||
| crwdns62126:0crwdne62126:0 | crwdns62128:0crwdne62128:0 | crwdns62130:0crwdne62130:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
@@ -0,0 +1,56 @@
|
||||
---
|
||||
title: crwdns62150:0crwdne62150:0
|
||||
image: crwdns62162:0crwdne62162:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/github/github-header.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns62166:0crwdne62166:0
|
||||
|
||||
<Tabs>
|
||||
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { RecoilRoot } from "recoil";
|
||||
import React, { useState } from "react";
|
||||
import { IconPicker } from "@/ui/input/components/IconPicker";
|
||||
|
||||
export const MyComponent = () => {
|
||||
|
||||
const [selectedIcon, setSelectedIcon] = useState("");
|
||||
const handleIconChange = ({ iconKey, Icon }) => {
|
||||
console.log("Selected Icon:", iconKey);
|
||||
setSelectedIcon(iconKey);
|
||||
};
|
||||
|
||||
return (
|
||||
<RecoilRoot>
|
||||
<IconPicker
|
||||
disabled={false}
|
||||
onChange={handleIconChange}
|
||||
selectedIconKey={selectedIcon}
|
||||
variant="primary"
|
||||
/>
|
||||
</RecoilRoot>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62170:0crwdne62170:0 | crwdns62174:0crwdne62174:0 | crwdns62180:0crwdne62180:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns62184:0crwdne62184:0 | crwdns62188:0crwdne62188:0 | crwdns62192:0crwdne62192:0 |
|
||||
| crwdns62196:0crwdne62196:0 | crwdns62200:0crwdne62200:0 | crwdns62204:0crwdne62204:0 crwdns62208:0crwdne62208:0 |
|
||||
| crwdns62212:0crwdne62212:0 | crwdns62216:0crwdne62216:0 | crwdns62220:0crwdne62220:0 |
|
||||
| crwdns62224:0crwdne62224:0 | crwdns62228:0crwdne62228:0 | crwdns62232:0crwdne62232:0 |
|
||||
| crwdns62238:0crwdne62238:0 | crwdns62242:0crwdne62242:0 | crwdns62246:0crwdne62246:0 |
|
||||
| crwdns62250:0crwdne62250:0 | crwdns62254:0crwdne62254:0 | crwdns62258:0crwdne62258:0 |
|
||||
| crwdns62262:0crwdne62262:0 | crwdns62266:0crwdne62266:0 | crwdns62270:0crwdne62270:0 crwdns62274:0crwdne62274:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
title: crwdns62914:0crwdne62914:0
|
||||
image: crwdns62916:0crwdne62916:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/objects/objects.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns62918:0{ SandpackEditor}crwdne62918:0
|
||||
|
||||
crwdns62920:0crwdne62920:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { ImageInput } from "@/ui/input/components/ImageInput";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return <ImageInput/>;
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62922:0crwdne62922:0 | crwdns62924:0crwdne62924:0 | crwdns62926:0crwdne62926:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns62928:0crwdne62928:0 | crwdns62930:0crwdne62930:0 | crwdns62932:0crwdne62932:0 |
|
||||
| crwdns62934:0crwdne62934:0 | crwdns62936:0crwdne62936:0 | crwdns62938:0crwdne62938:0 crwdns62940:0crwdne62940:0 |
|
||||
| crwdns62942:0crwdne62942:0 | crwdns62944:0crwdne62944:0 | crwdns62946:0crwdne62946:0 |
|
||||
| crwdns62948:0crwdne62948:0 | crwdns62950:0crwdne62950:0 | crwdns62952:0crwdne62952:0 |
|
||||
| crwdns62954:0crwdne62954:0 | crwdns62956:0crwdne62956:0 | crwdns62958:0crwdne62958:0 |
|
||||
| crwdns62960:0crwdne62960:0 | crwdns62962:0crwdne62962:0 | crwdns62964:0crwdne62964:0 |
|
||||
| crwdns62966:0crwdne62966:0 | crwdns62968:0crwdne62968:0 | crwdns62970:0crwdne62970:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
@@ -0,0 +1,104 @@
|
||||
---
|
||||
title: crwdns62132:0crwdne62132:0
|
||||
image: crwdns62134:0crwdne62134:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/create-workspace/workspace-cover.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns62136:0crwdne62136:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { Radio } from "twenty-ui/display";
|
||||
|
||||
export const MyComponent = () => {
|
||||
|
||||
const handleRadioChange = (event) => {
|
||||
console.log("Radio button changed:", event.target.checked);
|
||||
};
|
||||
|
||||
const handleCheckedChange = (checked) => {
|
||||
console.log("Checked state changed:", checked);
|
||||
};
|
||||
|
||||
|
||||
return (
|
||||
<Radio
|
||||
checked={true}
|
||||
value="Option 1"
|
||||
onChange={handleRadioChange}
|
||||
onCheckedChange={handleCheckedChange}
|
||||
size="large"
|
||||
disabled={false}
|
||||
labelPosition="right"
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62138:0crwdne62138:0 | crwdns62140:0crwdne62140:0 | crwdns62142:0crwdne62142:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns62144:0crwdne62144:0 | crwdns62146:0crwdne62146:0 | crwdns62148:0crwdne62148:0 |
|
||||
| crwdns62152:0crwdne62152:0 | crwdns62154:0crwdne62154:0 | crwdns62156:0crwdne62156:0 |
|
||||
| crwdns62158:0crwdne62158:0 | crwdns62160:0crwdne62160:0 | crwdns62164:0crwdne62164:0 |
|
||||
| crwdns62168:0crwdne62168:0 | crwdns62172:0crwdne62172:0 | crwdns62176:0crwdne62176:0 |
|
||||
| crwdns62178:0crwdne62178:0 | crwdns62182:0crwdne62182:0 | crwdns62186:0crwdne62186:0 |
|
||||
| crwdns62190:0crwdne62190:0 | crwdns62194:0crwdne62194:0 | crwdns62198:0crwdne62198:0 |
|
||||
| crwdns62202:0crwdne62202:0 | crwdns62206:0crwdne62206:0 | crwdns62210:0crwdne62210:0 crwdns62214:0crwdne62214:0 |
|
||||
| crwdns62218:0crwdne62218:0 | crwdns62222:0crwdne62222:0 | crwdns62226:0crwdne62226:0 |
|
||||
| crwdns62230:0crwdne62230:0 | crwdns62234:0crwdne62234:0 | crwdns62236:0crwdne62236:0 crwdns62240:0crwdne62240:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## crwdns62244:0crwdne62244:0
|
||||
|
||||
crwdns62248:0crwdne62248:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import React, { useState } from "react";
|
||||
import { Radio, RadioGroup } from "twenty-ui/display";
|
||||
|
||||
export const MyComponent = () => {
|
||||
|
||||
const [selectedValue, setSelectedValue] = useState("Option 1");
|
||||
|
||||
const handleChange = (event) => {
|
||||
setSelectedValue(event.target.value);
|
||||
};
|
||||
|
||||
return (
|
||||
<RadioGroup value={selectedValue} onChange={handleChange}>
|
||||
<Radio value="Option 1" />
|
||||
<Radio value="Option 2" />
|
||||
<Radio value="Option 3" />
|
||||
</RadioGroup>
|
||||
);
|
||||
};
|
||||
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62252:0crwdne62252:0 | crwdns62256:0crwdne62256:0 | crwdns62260:0crwdne62260:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns62264:0crwdne62264:0 | crwdns62268:0crwdne62268:0 | crwdns62272:0crwdne62272:0 |
|
||||
| crwdns62276:0crwdne62276:0 | crwdns62278:0crwdne62278:0 | crwdns62280:0crwdne62280:0 |
|
||||
| crwdns62282:0crwdne62282:0 | crwdns62284:0crwdne62284:0 | crwdns62286:0crwdne62286:0 |
|
||||
| crwdns62288:0crwdne62288:0 | crwdns62290:0crwdne62290:0 | crwdns62292:0crwdne62292:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
@@ -0,0 +1,54 @@
|
||||
---
|
||||
title: crwdns62294:0crwdne62294:0
|
||||
image: crwdns62296:0crwdne62296:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/what-is-twenty/20.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns62298:0crwdne62298:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { RecoilRoot } from 'recoil';
|
||||
import { IconTwentyStar } from 'twenty-ui/display';
|
||||
|
||||
import { Select } from '@/ui/input/components/Select';
|
||||
|
||||
export const MyComponent = () => {
|
||||
|
||||
return (
|
||||
<RecoilRoot>
|
||||
<Select
|
||||
className
|
||||
disabled={false}
|
||||
label="Select an option"
|
||||
options={[
|
||||
{ value: 'option1', label: 'Option A', Icon: IconTwentyStar },
|
||||
{ value: 'option2', label: 'Option B', Icon: IconTwentyStar },
|
||||
]}
|
||||
value="option1"
|
||||
/>
|
||||
</RecoilRoot>
|
||||
);
|
||||
};
|
||||
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62300:0crwdne62300:0 | crwdns62302:0crwdne62302:0 | crwdns62304:0crwdne62304:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns62306:0crwdne62306:0 | crwdns62308:0crwdne62308:0 | crwdns62310:0crwdne62310:0 |
|
||||
| crwdns62312:0crwdne62312:0 | crwdns62314:0crwdne62314:0 | crwdns62316:0crwdne62316:0 |
|
||||
| crwdns62318:0crwdne62318:0 | crwdns62320:0crwdne62320:0 | crwdns62322:0crwdne62322:0 |
|
||||
| crwdns62324:0crwdne62324:0 | crwdns62326:0crwdne62326:0 | crwdns62328:0crwdne62328:0 |
|
||||
| crwdns62330:0crwdne62330:0 | crwdns62332:0crwdne62332:0 | crwdns62334:0crwdne62334:0 crwdns62336:0crwdne62336:0 |
|
||||
| crwdns62338:0crwdne62338:0 | crwdns62340:0crwdne62340:0 | crwdns62342:0crwdne62342:0 crwdns62344:0crwdne62344:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
@@ -0,0 +1,153 @@
|
||||
---
|
||||
title: crwdns61402:0crwdne61402:0
|
||||
image: crwdns61412:0crwdne61412:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/notes/notes_header.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns61416:0crwdne61416:0
|
||||
|
||||
crwdns61420:0crwdne61420:0
|
||||
|
||||
<Tabs>
|
||||
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { RecoilRoot } from "recoil";
|
||||
import { TextInput } from "@/ui/input/components/TextInput";
|
||||
|
||||
export const MyComponent = () => {
|
||||
const handleChange = (text) => {
|
||||
console.log("Input changed:", text);
|
||||
};
|
||||
|
||||
const handleKeyDown = (event) => {
|
||||
console.log("Key pressed:", event.key);
|
||||
};
|
||||
|
||||
return (
|
||||
<RecoilRoot>
|
||||
<TextInput
|
||||
className
|
||||
label="Username"
|
||||
onChange={handleChange}
|
||||
fullWidth={false}
|
||||
disableHotkeys={false}
|
||||
error="Invalid username"
|
||||
onKeyDown={handleKeyDown}
|
||||
RightIcon={null}
|
||||
/>
|
||||
</RecoilRoot>
|
||||
);
|
||||
};
|
||||
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns61424:0crwdne61424:0 | crwdns61428:0crwdne61428:0 | crwdns61432:0crwdne61432:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns61434:0crwdne61434:0 | crwdns61438:0crwdne61438:0 | crwdns61442:0crwdne61442:0 |
|
||||
| crwdns61446:0crwdne61446:0 | crwdns61450:0crwdne61450:0 | crwdns61454:0crwdne61454:0 |
|
||||
| crwdns61458:0crwdne61458:0 | crwdns61460:0crwdne61460:0 | crwdns61464:0crwdne61464:0 |
|
||||
| crwdns61468:0crwdne61468:0 | crwdns61472:0crwdne61472:0 | crwdns61476:0crwdne61476:0 |
|
||||
| crwdns61480:0crwdne61480:0 | crwdns61484:0crwdne61484:0 | crwdns61486:0crwdne61486:0 |
|
||||
| crwdns61490:0crwdne61490:0 | crwdns61494:0crwdne61494:0 | crwdns61498:0crwdne61498:0 crwdns61502:0crwdne61502:0 |
|
||||
| crwdns61506:0crwdne61506:0 | crwdns61508:0crwdne61508:0 | crwdns61512:0crwdne61512:0 crwdns61516:0crwdne61516:0 |
|
||||
| crwdns61520:0crwdne61520:0 | crwdns61524:0crwdne61524:0 | crwdns61528:0crwdne61528:0 |
|
||||
|
||||
crwdns61530:0crwdne61530:0
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
|
||||
## crwdns61534:0crwdne61534:0
|
||||
|
||||
crwdns61538:0crwdne61538:0
|
||||
|
||||
<Tabs>
|
||||
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { RecoilRoot } from "recoil";
|
||||
import { AutosizeTextInput } from "@/ui/input/components/AutosizeTextInput";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<RecoilRoot>
|
||||
<AutosizeTextInput
|
||||
onValidate={() => console.log("onValidate function fired")}
|
||||
minRows={1}
|
||||
placeholder="Write a comment"
|
||||
onFocus={() => console.log("onFocus function fired")}
|
||||
variant="icon"
|
||||
buttonTitle
|
||||
value="Task: "
|
||||
/>
|
||||
</RecoilRoot>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns61542:0crwdne61542:0 | crwdns61546:0crwdne61546:0 | crwdns61550:0crwdne61550:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns61554:0crwdne61554:0 | crwdns61558:0crwdne61558:0 | crwdns61560:0crwdne61560:0 |
|
||||
| crwdns61564:0crwdne61564:0 | crwdns61568:0crwdne61568:0 | crwdns61572:0crwdne61572:0 |
|
||||
| crwdns61576:0crwdne61576:0 | crwdns61578:0crwdne61578:0 | crwdns61582:0crwdne61582:0 |
|
||||
| crwdns61586:0crwdne61586:0 | crwdns61590:0crwdne61590:0 | crwdns61592:0crwdne61592:0 |
|
||||
| crwdns61596:0crwdne61596:0 | crwdns61600:0crwdne61600:0 | crwdns61604:0crwdne61604:0 crwdns61608:0crwdne61608:0 |
|
||||
| crwdns61612:0crwdne61612:0 | crwdns61616:0crwdne61616:0 | crwdns61618:0crwdne61618:0 |
|
||||
| crwdns61622:0crwdne61622:0 | crwdns61626:0crwdne61626:0 | crwdns61630:0crwdne61630:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
|
||||
## crwdns61634:0crwdne61634:0
|
||||
|
||||
crwdns61638:0crwdne61638:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { TextArea } from "@/ui/input/components/TextArea";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<TextArea
|
||||
disabled={false}
|
||||
minRows={4}
|
||||
onChange={()=>console.log('On change function fired')}
|
||||
placeholder="Enter text here"
|
||||
value=""
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns61642:0crwdne61642:0 | crwdns61646:0crwdne61646:0 | crwdns61648:0crwdne61648:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns61650:0crwdne61650:0 | crwdns61652:0crwdne61652:0 | crwdns61654:0crwdne61654:0 |
|
||||
| crwdns61656:0crwdne61656:0 | crwdns61658:0crwdne61658:0 | crwdns61660:0crwdne61660:0 |
|
||||
| crwdns61662:0crwdne61662:0 | crwdns61664:0crwdne61664:0 | crwdns61666:0crwdne61666:0 |
|
||||
| crwdns61668:0crwdne61668:0 | crwdns61670:0crwdne61670:0 | crwdns61672:0crwdne61672:0 |
|
||||
| crwdns61674:0crwdne61674:0 | crwdns61676:0crwdne61676:0 | crwdns61678:0crwdne61678:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
title: crwdns62870:0crwdne62870:0
|
||||
image: crwdns62872:0crwdne62872:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/table-views/table.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { Toggle } from "twenty-ui/input";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<Toggle
|
||||
value = {true}
|
||||
onChange = {()=>console.log('On Change event')}
|
||||
color="green"
|
||||
toggleSize = "medium"
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62874:0crwdne62874:0 | crwdns62876:0crwdne62876:0 | crwdns62878:0crwdne62878:0 | crwdns62880:0crwdne62880:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns62882:0crwdne62882:0 | crwdns62884:0crwdne62884:0 | crwdns62886:0crwdne62886:0 | crwdns62888:0crwdne62888:0 |
|
||||
| crwdns62890:0crwdne62890:0 | crwdns62892:0crwdne62892:0 | crwdns62894:0crwdne62894:0 | |
|
||||
| crwdns62896:0crwdne62896:0 | crwdns62898:0crwdne62898:0 | crwdns62900:0crwdne62900:0 | crwdns62902:0crwdne62902:0 |
|
||||
| crwdns62904:0crwdne62904:0 | crwdns62906:0crwdne62906:0 | crwdns62908:0crwdne62908:0 crwdns62910:0crwdne62910:0 | crwdns62912:0crwdne62912:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
title: crwdns62978:0crwdne62978:0
|
||||
description: crwdns62980:0crwdne62980:0
|
||||
---
|
||||
|
||||
crwdns64238:0{ CardTitle }crwdne64238:0
|
||||
|
||||
## crwdns62982:0crwdne62982:0
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card href="/twenty-ui/display" img="/images/user-guide/views/filter.png">
|
||||
<CardTitle>crwdns64240:0crwdne64240:0</CardTitle>crwdns62984:0crwdne62984:0</Card>
|
||||
|
||||
<Card href="/twenty-ui/progress-bar" img="/images/user-guide/fields/field.png">
|
||||
<CardTitle>crwdns64242:0crwdne64242:0</CardTitle>crwdns62986:0crwdne62986:0</Card>
|
||||
|
||||
<Card href="/twenty-ui/input" img="/images/user-guide/tips/light-bulb.png">
|
||||
<CardTitle>crwdns64244:0crwdne64244:0</CardTitle>crwdns62988:0crwdne62988:0</Card>
|
||||
|
||||
<Card href="/twenty-ui/navigation" img="/images/user-guide/tasks/tasks_header.png">
|
||||
<CardTitle>crwdns64246:0crwdne64246:0</CardTitle>crwdns62990:0crwdne62990:0</Card>
|
||||
</CardGroup>
|
||||
@@ -0,0 +1,8 @@
|
||||
---
|
||||
title: crwdns62992:0crwdne62992:0
|
||||
image: crwdns62994:0crwdne62994:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/tasks/tasks_header.png" alt="Header" />
|
||||
</Frame>
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
title: crwdns63260:0crwdne63260:0
|
||||
image: crwdns63282:0crwdne63282:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/fields/field.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns63290:0crwdne63290:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { BrowserRouter } from "react-router-dom";
|
||||
import { Breadcrumb } from "@/ui/navigation/bread-crumb/components/Breadcrumb";
|
||||
|
||||
export const MyComponent = () => {
|
||||
const breadcrumbLinks = [
|
||||
{ children: "Home", href: "/" },
|
||||
{ children: "Category", href: "/category" },
|
||||
{ children: "Subcategory", href: "/category/subcategory" },
|
||||
{ children: "Current Page" },
|
||||
];
|
||||
|
||||
return (
|
||||
<BrowserRouter>
|
||||
<Breadcrumb className links={breadcrumbLinks} />
|
||||
</BrowserRouter>
|
||||
)
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns63296:0crwdne63296:0 | crwdns63302:0crwdne63302:0 | crwdns63308:0crwdne63308:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns63314:0crwdne63314:0 | crwdns63320:0crwdne63320:0 | crwdns63324:0crwdne63324:0 |
|
||||
| crwdns63330:0crwdne63330:0 | crwdns63338:0crwdne63338:0 | crwdns63344:0crwdne63344:0 crwdns63352:0crwdne63352:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
@@ -0,0 +1,168 @@
|
||||
---
|
||||
title: crwdns61382:0crwdne61382:0
|
||||
image: crwdns61384:0crwdne61384:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/what-is-twenty/20.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns61386:0crwdne61386:0
|
||||
|
||||
crwdns61388:0crwdne61388:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { BrowserRouter as Router } from 'react-router-dom';
|
||||
|
||||
import { ContactLink } from 'twenty-ui/navigation';
|
||||
|
||||
export const MyComponent = () => {
|
||||
const handleLinkClick = (event) => {
|
||||
console.log('Contact link clicked!', event);
|
||||
};
|
||||
|
||||
return (
|
||||
<Router>
|
||||
<ContactLink
|
||||
className
|
||||
href="mailto:example@example.com"
|
||||
onClick={handleLinkClick}
|
||||
>
|
||||
example@example.com
|
||||
</ContactLink>
|
||||
</Router>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns61390:0crwdne61390:0 | crwdns61392:0crwdne61392:0 | crwdns61394:0crwdne61394:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns61396:0crwdne61396:0 | crwdns61398:0crwdne61398:0 | crwdns61400:0crwdne61400:0 |
|
||||
| crwdns61404:0crwdne61404:0 | crwdns61406:0crwdne61406:0 | crwdns61408:0crwdne61408:0 |
|
||||
| crwdns61410:0crwdne61410:0 | crwdns61414:0crwdne61414:0 | crwdns61418:0crwdne61418:0 |
|
||||
| crwdns61422:0crwdne61422:0 | crwdns61426:0crwdne61426:0 | crwdns61430:0crwdne61430:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
|
||||
## crwdns61436:0crwdne61436:0
|
||||
|
||||
crwdns61440:0crwdne61440:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { RawLink } from "/navigation";
|
||||
import { BrowserRouter as Router } from "react-router-dom";
|
||||
|
||||
export const MyComponent = () => {
|
||||
const handleLinkClick = (event) => {
|
||||
console.log("Contact link clicked!", event);
|
||||
};
|
||||
|
||||
return (
|
||||
<Router>
|
||||
<RawLink className href="/contact" onClick={handleLinkClick}>
|
||||
Contact Us
|
||||
</RawLink>
|
||||
</Router>
|
||||
);
|
||||
};
|
||||
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns61444:0crwdne61444:0 | crwdns61448:0crwdne61448:0 | crwdns61452:0crwdne61452:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns61456:0crwdne61456:0 | crwdns61462:0crwdne61462:0 | crwdns61466:0crwdne61466:0 |
|
||||
| crwdns61470:0crwdne61470:0 | crwdns61474:0crwdne61474:0 | crwdns61478:0crwdne61478:0 |
|
||||
| crwdns61482:0crwdne61482:0 | crwdns61488:0crwdne61488:0 | crwdns61492:0crwdne61492:0 |
|
||||
| crwdns61496:0crwdne61496:0 | crwdns61500:0crwdne61500:0 | crwdns61504:0crwdne61504:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## crwdns61510:0crwdne61510:0
|
||||
|
||||
crwdns61514:0crwdne61514:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { RoundedLink } from "/navigation";
|
||||
import { BrowserRouter as Router } from "react-router-dom";
|
||||
|
||||
export const MyComponent = () => {
|
||||
const handleLinkClick = (event) => {
|
||||
console.log("Contact link clicked!", event);
|
||||
};
|
||||
|
||||
return (
|
||||
<Router>
|
||||
<RoundedLink href="/contact" onClick={handleLinkClick}>
|
||||
Contact Us
|
||||
</RoundedLink>
|
||||
</Router>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns61518:0crwdne61518:0 | crwdns61522:0crwdne61522:0 | crwdns61526:0crwdne61526:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns61532:0crwdne61532:0 | crwdns61536:0crwdne61536:0 | crwdns61540:0crwdne61540:0 |
|
||||
| crwdns61544:0crwdne61544:0 | crwdns61548:0crwdne61548:0 | crwdns61552:0crwdne61552:0 |
|
||||
| crwdns61556:0crwdne61556:0 | crwdns61562:0crwdne61562:0 | crwdns61566:0crwdne61566:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## crwdns61570:0crwdne61570:0
|
||||
|
||||
crwdns61574:0crwdne61574:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { SocialLink } from "twenty-ui/navigation";
|
||||
import { BrowserRouter as Router } from "react-router-dom";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<Router>
|
||||
<SocialLink
|
||||
type="twitter"
|
||||
href="https://twitter.com/twentycrm"
|
||||
></SocialLink>
|
||||
</Router>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns61580:0crwdne61580:0 | crwdns61584:0crwdne61584:0 | crwdns61588:0crwdne61588:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns61594:0crwdne61594:0 | crwdns61598:0crwdne61598:0 | crwdns61602:0crwdne61602:0 |
|
||||
| crwdns61606:0crwdne61606:0 | crwdns61610:0crwdne61610:0 | crwdns61614:0crwdne61614:0 |
|
||||
| crwdns61620:0crwdne61620:0 | crwdns61624:0crwdne61624:0 | crwdns61628:0crwdne61628:0 crwdns61632:0crwdne61632:0 |
|
||||
| crwdns61636:0crwdne61636:0 | crwdns61640:0crwdne61640:0 | crwdns61644:0crwdne61644:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
@@ -0,0 +1,458 @@
|
||||
---
|
||||
title: crwdns62346:0crwdne62346:0
|
||||
image: crwdns62348:0crwdne62348:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/kanban-views/kanban.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns62350:0crwdne62350:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { IconBell } from "@tabler/icons-react";
|
||||
import { IconAlertCircle } from "@tabler/icons-react";
|
||||
import { MenuItem } from "twenty-ui/display";
|
||||
|
||||
export const MyComponent = () => {
|
||||
const handleMenuItemClick = (event) => {
|
||||
console.log("Menu item clicked!", event);
|
||||
};
|
||||
|
||||
const handleButtonClick = (event) => {
|
||||
console.log("Icon button clicked!", event);
|
||||
};
|
||||
|
||||
return (
|
||||
<MenuItem
|
||||
LeftIcon={IconBell}
|
||||
accent="default"
|
||||
text="Menu item text"
|
||||
iconButtons={[{ Icon: IconAlertCircle, onClick: handleButtonClick }]}
|
||||
isTooltipOpen={true}
|
||||
testId="menu-item-1"
|
||||
onClick={handleMenuItemClick}
|
||||
className
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62352:0crwdne62352:0 | crwdns62354:0crwdne62354:0 | crwdns62356:0crwdne62356:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns62358:0crwdne62358:0 | crwdns62360:0crwdne62360:0 | crwdns62362:0crwdne62362:0 |
|
||||
| crwdns62364:0crwdne62364:0 | crwdns62366:0crwdne62366:0 | crwdns62368:0crwdne62368:0 crwdns62370:0crwdne62370:0 |
|
||||
| crwdns62372:0crwdne62372:0 | crwdns62374:0crwdne62374:0 | crwdns62376:0crwdne62376:0 |
|
||||
| crwdns62378:0crwdne62378:0 | crwdns62380:0crwdne62380:0 | crwdns62382:0crwdne62382:0 |
|
||||
| crwdns62384:0crwdne62384:0 | crwdns62386:0crwdne62386:0 | crwdns62388:0crwdne62388:0 |
|
||||
| crwdns62390:0crwdne62390:0 | crwdns62392:0crwdne62392:0 | crwdns62394:0crwdne62394:0 |
|
||||
| crwdns62396:0crwdne62396:0 | crwdns62398:0crwdne62398:0 | crwdns62400:0crwdne62400:0 |
|
||||
| crwdns62402:0crwdne62402:0 | crwdns62404:0crwdne62404:0 | crwdns62406:0crwdne62406:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## crwdns62408:0crwdne62408:0
|
||||
|
||||
crwdns62410:0crwdne62410:0
|
||||
|
||||
### crwdns62412:0crwdne62412:0
|
||||
|
||||
crwdns62414:0crwdne62414:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { IconBell } from "@tabler/icons-react";
|
||||
import { MenuItemCommand } from "twenty-ui/display";
|
||||
|
||||
export const MyComponent = () => {
|
||||
const handleCommandClick = () => {
|
||||
console.log("Command clicked!");
|
||||
};
|
||||
|
||||
return (
|
||||
<MenuItemCommand
|
||||
LeftIcon={IconBell}
|
||||
text="First Option"
|
||||
firstHotKey="⌘"
|
||||
secondHotKey="1"
|
||||
isSelected={true}
|
||||
onClick={handleCommandClick}
|
||||
className
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62416:0crwdne62416:0 | crwdns62418:0crwdne62418:0 | crwdns62420:0crwdne62420:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns62422:0crwdne62422:0 | crwdns62424:0crwdne62424:0 | crwdns62426:0crwdne62426:0 |
|
||||
| crwdns62428:0crwdne62428:0 | crwdns62430:0crwdne62430:0 | crwdns62432:0crwdne62432:0 |
|
||||
| crwdns62434:0crwdne62434:0 | crwdns62436:0crwdne62436:0 | crwdns62438:0crwdne62438:0 |
|
||||
| crwdns62440:0crwdne62440:0 | crwdns62442:0crwdne62442:0 | crwdns62444:0crwdne62444:0 |
|
||||
| crwdns62446:0crwdne62446:0 | crwdns62448:0crwdne62448:0 | crwdns62450:0crwdne62450:0 |
|
||||
| crwdns62452:0crwdne62452:0 | crwdns62454:0crwdne62454:0 | crwdns62456:0crwdne62456:0 |
|
||||
| crwdns62458:0crwdne62458:0 | crwdns62460:0crwdne62460:0 | crwdns62462:0crwdne62462:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### crwdns62464:0crwdne62464:0
|
||||
|
||||
crwdns62466:0crwdne62466:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { IconBell } from "@tabler/icons-react";
|
||||
import { IconAlertCircle } from "@tabler/icons-react";
|
||||
import { MenuItemDraggable } from "twenty-ui/display";
|
||||
|
||||
export const MyComponent = () => {
|
||||
const handleMenuItemClick = (event) => {
|
||||
console.log("Menu item clicked!", event);
|
||||
};
|
||||
|
||||
return (
|
||||
<MenuItemDraggable
|
||||
LeftIcon={IconBell}
|
||||
accent="default"
|
||||
iconButtons={[{ Icon: IconAlertCircle, onClick: handleButtonClick }]}
|
||||
isTooltipOpen={false}
|
||||
onClick={handleMenuItemClick}
|
||||
text="Menu item draggable"
|
||||
isDragDisabled={false}
|
||||
className
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62468:0crwdne62468:0 | crwdns62470:0crwdne62470:0 | crwdns62472:0crwdne62472:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns62474:0crwdne62474:0 | crwdns62476:0crwdne62476:0 | crwdns62478:0crwdne62478:0 |
|
||||
| crwdns62480:0crwdne62480:0 | crwdns62482:0crwdne62482:0 | crwdns62484:0crwdne62484:0 crwdns62486:0crwdne62486:0 |
|
||||
| crwdns62488:0crwdne62488:0 | crwdns62490:0crwdne62490:0 | crwdns62492:0crwdne62492:0 |
|
||||
| crwdns62494:0crwdne62494:0 | crwdns62496:0crwdne62496:0 | crwdns62498:0crwdne62498:0 |
|
||||
| crwdns62500:0crwdne62500:0 | crwdns62502:0crwdne62502:0 | crwdns62504:0crwdne62504:0 |
|
||||
| crwdns62506:0crwdne62506:0 | crwdns62508:0crwdne62508:0 | crwdns62510:0crwdne62510:0 |
|
||||
| crwdns62512:0crwdne62512:0 | crwdns62514:0crwdne62514:0 | crwdns62516:0crwdne62516:0 |
|
||||
| crwdns62518:0crwdne62518:0 | crwdns62520:0crwdne62520:0 | crwdns62522:0crwdne62522:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### crwdns62524:0crwdne62524:0
|
||||
|
||||
crwdns62526:0crwdne62526:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { IconBell } from "@tabler/icons-react";
|
||||
import { MenuItemMultiSelect } from "twenty-ui/display";
|
||||
|
||||
export const MyComponent = () => {
|
||||
|
||||
return (
|
||||
<MenuItemMultiSelect
|
||||
LeftIcon={IconBell}
|
||||
text="First Option"
|
||||
selected={false}
|
||||
className
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62528:0crwdne62528:0 | crwdns62530:0crwdne62530:0 | crwdns62532:0crwdne62532:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns62534:0crwdne62534:0 | crwdns62536:0crwdne62536:0 | crwdns62538:0crwdne62538:0 |
|
||||
| crwdns62540:0crwdne62540:0 | crwdns62542:0crwdne62542:0 | crwdns62544:0crwdne62544:0 |
|
||||
| crwdns62546:0crwdne62546:0 | crwdns62548:0crwdne62548:0 | crwdns62550:0crwdne62550:0 |
|
||||
| crwdns62552:0crwdne62552:0 | crwdns62554:0crwdne62554:0 | crwdns62556:0crwdne62556:0 |
|
||||
| crwdns62558:0crwdne62558:0 | crwdns62560:0crwdne62560:0 | crwdns62562:0crwdne62562:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### crwdns62564:0crwdne62564:0
|
||||
|
||||
crwdns62566:0crwdne62566:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { MenuItemMultiSelectAvatar } from "twenty-ui/display";
|
||||
|
||||
export const MyComponent = () => {
|
||||
const imageUrl =
|
||||
"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAYABgAAD/4QCMRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABgAAAAAQAAAGAAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAABSgAwAEAAAAAQAAABQAAAAA/8AAEQgAFAAUAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMACwgICggHCwoJCg0MCw0RHBIRDw8RIhkaFBwpJCsqKCQnJy0yQDctMD0wJyc4TDk9Q0VISUgrNk9VTkZUQEdIRf/bAEMBDA0NEQ8RIRISIUUuJy5FRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRf/dAAQAAv/aAAwDAQACEQMRAD8Ava1q728otYY98joSCTgZrnbXWdTtrhrfVZXWLafmcAEkdgR/hVltQku9Q8+OIEBcGOT+ID0PY1ka1KH2u8ToqnPLbmIqG7u6LtbQ7RXBRec4Uck9eKXcPWsKDWVnhWSL5kYcFelSf2m3901POh8jP//QoyIAnTuKpXsY82NsksUyWPU5q/L9z8RVK++/F/uCsVsaEURwgA4HtT9x9TUcf3KfUGh//9k=";
|
||||
|
||||
return (
|
||||
<MenuItemMultiSelectAvatar
|
||||
avatar={<img src={imageUrl} alt="Avatar" />}
|
||||
text="First Option"
|
||||
selected={false}
|
||||
className
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62568:0crwdne62568:0 | crwdns62570:0crwdne62570:0 | crwdns62572:0crwdne62572:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns62574:0crwdne62574:0 | crwdns62576:0crwdne62576:0 | crwdns62578:0crwdne62578:0 |
|
||||
| crwdns62580:0crwdne62580:0 | crwdns62582:0crwdne62582:0 | crwdns62584:0crwdne62584:0 |
|
||||
| crwdns62586:0crwdne62586:0 | crwdns62588:0crwdne62588:0 | crwdns62590:0crwdne62590:0 |
|
||||
| crwdns62592:0crwdne62592:0 | crwdns62594:0crwdne62594:0 | crwdns62596:0crwdne62596:0 |
|
||||
| crwdns62598:0crwdne62598:0 | crwdns62600:0crwdne62600:0 | crwdns62602:0crwdne62602:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### crwdns62604:0crwdne62604:0
|
||||
|
||||
crwdns62606:0crwdne62606:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { IconBell } from "@tabler/icons-react";
|
||||
import { MenuItemNavigate } from "twenty-ui/display";
|
||||
|
||||
export const MyComponent = () => {
|
||||
const handleNavigation = () => {
|
||||
console.log("Navigate to another page");
|
||||
};
|
||||
|
||||
return (
|
||||
<MenuItemNavigate
|
||||
LeftIcon={IconBell}
|
||||
text="First Option"
|
||||
onClick={handleNavigation}
|
||||
className
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62608:0crwdne62608:0 | crwdns62610:0crwdne62610:0 | crwdns62612:0crwdne62612:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns62614:0crwdne62614:0 | crwdns62616:0crwdne62616:0 | crwdns62618:0crwdne62618:0 |
|
||||
| crwdns62620:0crwdne62620:0 | crwdns62622:0crwdne62622:0 | crwdns62624:0crwdne62624:0 |
|
||||
| crwdns62626:0crwdne62626:0 | crwdns62628:0crwdne62628:0 | crwdns62630:0crwdne62630:0 |
|
||||
| crwdns62632:0crwdne62632:0 | crwdns62634:0crwdne62634:0 | crwdns62636:0crwdne62636:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### crwdns62638:0crwdne62638:0
|
||||
|
||||
crwdns62640:0crwdne62640:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { IconBell } from "@tabler/icons-react";
|
||||
import { MenuItemSelect } from "twenty-ui/display";
|
||||
|
||||
export const MyComponent = () => {
|
||||
const handleSelection = () => {
|
||||
console.log("Menu item selected");
|
||||
};
|
||||
|
||||
return (
|
||||
<MenuItemSelect
|
||||
LeftIcon={IconBell}
|
||||
text="First Option"
|
||||
selected={true}
|
||||
disabled={false}
|
||||
hovered={false}
|
||||
onClick={handleSelection}
|
||||
className
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62642:0crwdne62642:0 | crwdns62644:0crwdne62644:0 | crwdns62646:0crwdne62646:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns62648:0crwdne62648:0 | crwdns62650:0crwdne62650:0 | crwdns62652:0crwdne62652:0 |
|
||||
| crwdns62654:0crwdne62654:0 | crwdns62656:0crwdne62656:0 | crwdns62658:0crwdne62658:0 |
|
||||
| crwdns62660:0crwdne62660:0 | crwdns62662:0crwdne62662:0 | crwdns62664:0crwdne62664:0 |
|
||||
| crwdns62666:0crwdne62666:0 | crwdns62668:0crwdne62668:0 | crwdns62670:0crwdne62670:0 |
|
||||
| crwdns62672:0crwdne62672:0 | crwdns62674:0crwdne62674:0 | crwdns62676:0crwdne62676:0 |
|
||||
| crwdns62678:0crwdne62678:0 | crwdns62680:0crwdne62680:0 | crwdns62682:0crwdne62682:0 |
|
||||
| crwdns62684:0crwdne62684:0 | crwdns62686:0crwdne62686:0 | crwdns62688:0crwdne62688:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### crwdns62690:0crwdne62690:0
|
||||
|
||||
crwdns62692:0crwdne62692:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { MenuItemSelectAvatar } from "twenty-ui/display";
|
||||
|
||||
export const MyComponent = () => {
|
||||
const imageUrl =
|
||||
"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAYABgAAD/4QCMRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABgAAAAAQAAAGAAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAABSgAwAEAAAAAQAAABQAAAAA/8AAEQgAFAAUAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/bAEMACwgICggHCwoJCg0MCw0RHBIRDw8RIhkaFBwpJCsqKCQnJy0yQDctMD0wJyc4TDk9Q0VISUgrNk9VTkZUQEdIRf/bAEMBDA0NEQ8RIRISIUUuJy5FRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRf/dAAQAAv/aAAwDAQACEQMRAD8Ava1q728otYY98joSCTgZrnbXWdTtrhrfVZXWLafmcAEkdgR/hVltQku9Q8+OIEBcGOT+ID0PY1ka1KH2u8ToqnPLbmIqG7u6LtbQ7RXBRec4Uck9eKXcPWsKDWVnhWSL5kYcFelSf2m3901POh8jP//QoyIAnTuKpXsY82NsksUyWPU5q/L9z8RVK++/F/uCsVsaEURwgA4HtT9x9TUcf3KfUGh//9k=";
|
||||
|
||||
const handleSelection = () => {
|
||||
console.log("Menu item selected");
|
||||
};
|
||||
|
||||
return (
|
||||
<MenuItemSelectAvatar
|
||||
avatar={<img src={imageUrl} alt="Avatar" />}
|
||||
text="First Option"
|
||||
selected={true}
|
||||
disabled={false}
|
||||
hovered={false}
|
||||
testId="menu-item-test"
|
||||
onClick={handleSelection}
|
||||
className
|
||||
/>
|
||||
);
|
||||
};
|
||||
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62694:0crwdne62694:0 | crwdns62696:0crwdne62696:0 | crwdns62698:0crwdne62698:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns62700:0crwdne62700:0 | crwdns62702:0crwdne62702:0 | crwdns62704:0crwdne62704:0 |
|
||||
| crwdns62706:0crwdne62706:0 | crwdns62708:0crwdne62708:0 | crwdns62710:0crwdne62710:0 |
|
||||
| crwdns62712:0crwdne62712:0 | crwdns62714:0crwdne62714:0 | crwdns62716:0crwdne62716:0 |
|
||||
| crwdns62718:0crwdne62718:0 | crwdns62720:0crwdne62720:0 | crwdns62722:0crwdne62722:0 |
|
||||
| crwdns62724:0crwdne62724:0 | crwdns62726:0crwdne62726:0 | crwdns62728:0crwdne62728:0 |
|
||||
| crwdns62730:0crwdne62730:0 | crwdns62732:0crwdne62732:0 | crwdns62734:0crwdne62734:0 |
|
||||
| crwdns62736:0crwdne62736:0 | crwdns62738:0crwdne62738:0 | crwdns62740:0crwdne62740:0 |
|
||||
| crwdns62742:0crwdne62742:0 | crwdns62744:0crwdne62744:0 | crwdns62746:0crwdne62746:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### crwdns62748:0crwdne62748:0
|
||||
|
||||
crwdns62750:0crwdne62750:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { MenuItemSelectColor } from "twenty-ui/display";
|
||||
|
||||
export const MyComponent = () => {
|
||||
const handleSelection = () => {
|
||||
console.log("Menu item selected");
|
||||
};
|
||||
|
||||
return (
|
||||
<MenuItemSelectColor
|
||||
color="green"
|
||||
selected={true}
|
||||
disabled={false}
|
||||
hovered={true}
|
||||
variant="default"
|
||||
onClick={handleSelection}
|
||||
className
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62752:0crwdne62752:0 | crwdns62754:0crwdne62754:0 | crwdns62756:0crwdne62756:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns62758:0crwdne62758:0 | crwdns62760:0crwdne62760:0 | crwdns62762:0crwdne62762:0 crwdns62764:0crwdne62764:0 |
|
||||
| crwdns62766:0crwdne62766:0 | crwdns62768:0crwdne62768:0 | crwdns62770:0crwdne62770:0 |
|
||||
| crwdns62772:0crwdne62772:0 | crwdns62774:0crwdne62774:0 | crwdns62776:0crwdne62776:0 |
|
||||
| crwdns62778:0crwdne62778:0 | crwdns62780:0crwdne62780:0 | crwdns62782:0crwdne62782:0 |
|
||||
| crwdns62784:0crwdne62784:0 | crwdns62786:0crwdne62786:0 | crwdns62788:0crwdne62788:0 crwdns62790:0crwdne62790:0 |
|
||||
| crwdns62792:0crwdne62792:0 | crwdns62794:0crwdne62794:0 | crwdns62796:0crwdne62796:0 |
|
||||
| crwdns62798:0crwdne62798:0 | crwdns62800:0crwdne62800:0 | crwdns62802:0crwdne62802:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### crwdns62804:0crwdne62804:0
|
||||
|
||||
crwdns62806:0crwdne62806:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { IconBell } from '@tabler/icons-react';
|
||||
|
||||
import { MenuItemToggle } from 'twenty-ui/display';
|
||||
|
||||
export const MyComponent = () => {
|
||||
|
||||
return (
|
||||
<MenuItemToggle
|
||||
LeftIcon={IconBell}
|
||||
text="First Option"
|
||||
toggled={true}
|
||||
toggleSize="small"
|
||||
className
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns62808:0crwdne62808:0 | crwdns62810:0crwdne62810:0 | crwdns62812:0crwdne62812:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns62814:0crwdne62814:0 | crwdns62816:0crwdne62816:0 | crwdns62818:0crwdne62818:0 |
|
||||
| crwdns62820:0crwdne62820:0 | crwdns62822:0crwdne62822:0 | crwdns62824:0crwdne62824:0 |
|
||||
| crwdns62826:0crwdne62826:0 | crwdns62828:0crwdne62828:0 | crwdns62830:0crwdne62830:0 |
|
||||
| crwdns62832:0crwdne62832:0 | crwdns62834:0crwdne62834:0 | crwdns62836:0crwdne62836:0 |
|
||||
| crwdns62838:0crwdne62838:0 | crwdns62840:0crwdne62840:0 | crwdns62842:0crwdne62842:0 crwdns62844:0crwdne62844:0 |
|
||||
| crwdns62846:0crwdne62846:0 | crwdns62848:0crwdne62848:0 | crwdns62850:0crwdne62850:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
title: crwdns63506:0crwdne63506:0
|
||||
image: crwdns63508:0crwdne63508:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/table-views/table.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns63510:0crwdne63510:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { IconHome, IconUser, IconSettings } from '@tabler/icons-react';
|
||||
import { NavigationBar } from "@/ui/navigation/navigation-bar/components/NavigationBar";
|
||||
|
||||
export const MyComponent = () => {
|
||||
|
||||
const navigationItems = [
|
||||
{
|
||||
name: "Home",
|
||||
Icon: IconHome,
|
||||
onClick: () => console.log("Home clicked"),
|
||||
},
|
||||
{
|
||||
name: "Profile",
|
||||
Icon: IconUser,
|
||||
onClick: () => console.log("Profile clicked"),
|
||||
},
|
||||
{
|
||||
name: "Settings",
|
||||
Icon: IconSettings,
|
||||
onClick: () => console.log("Settings clicked"),
|
||||
},
|
||||
];
|
||||
|
||||
return <NavigationBar activeItemName="Home" items={navigationItems}/>;
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns63512:0crwdne63512:0 | crwdns63514:0crwdne63514:0 | crwdns63516:0crwdne63516:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns63518:0crwdne63518:0 | crwdns63520:0crwdne63520:0 | crwdns63522:0crwdne63522:0 |
|
||||
| crwdns63524:0crwdne63524:0 | crwdns63526:0crwdne63526:0 | crwdns63528:0crwdne63528:0 crwdns63530:0crwdne63530:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
title: crwdns61964:0crwdne61964:0
|
||||
image: crwdns61966:0crwdne61966:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/api/api.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns61968:0crwdne61968:0 crwdns61970:0crwdne61970:0
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { StepBar } from "@/ui/navigation/step-bar/components/StepBar";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<StepBar activeStep={2}>
|
||||
<StepBar.Step>Step 1</StepBar.Step>
|
||||
<StepBar.Step>Step 2</StepBar.Step>
|
||||
<StepBar.Step>Step 3</StepBar.Step>
|
||||
</StepBar>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns61972:0crwdne61972:0 | crwdns61974:0crwdne61974:0 | crwdns61976:0crwdne61976:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| crwdns61978:0crwdne61978:0 | crwdns61980:0crwdne61980:0 | crwdns61982:0crwdne61982:0 crwdns61984:0crwdne61984:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
@@ -0,0 +1,77 @@
|
||||
---
|
||||
title: crwdns61866:0crwdne61866:0
|
||||
image: crwdns61868:0crwdne61868:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/emails/emails_header.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns61870:0crwdne61870:0
|
||||
|
||||
<Tabs>
|
||||
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { ProgressBar } from "twenty-ui/feedback";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return (
|
||||
<ProgressBar
|
||||
duration={6000}
|
||||
delay={0}
|
||||
easing="easeInOut"
|
||||
barHeight={10}
|
||||
barColor="#4bb543"
|
||||
autoStart={true}
|
||||
/>
|
||||
);
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns61872:0crwdne61872:0 | crwdns61874:0crwdne61874:0 | crwdns61876:0crwdne61876:0 | crwdns61878:0crwdne61878:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns61880:0crwdne61880:0 | crwdns61882:0crwdne61882:0 | crwdns61884:0crwdne61884:0 | crwdns61886:0crwdne61886:0 |
|
||||
| crwdns61888:0crwdne61888:0 | crwdns61890:0crwdne61890:0 | crwdns61892:0crwdne61892:0 | crwdns61894:0crwdne61894:0 |
|
||||
| crwdns61896:0crwdne61896:0 | crwdns61898:0crwdne61898:0 | crwdns61900:0crwdne61900:0 | crwdns61902:0crwdne61902:0 |
|
||||
| crwdns61904:0crwdne61904:0 | crwdns61906:0crwdne61906:0 | crwdns61908:0crwdne61908:0 | crwdns61910:0crwdne61910:0 |
|
||||
| crwdns61912:0crwdne61912:0 | crwdns61914:0crwdne61914:0 | crwdns61916:0crwdne61916:0 | crwdns61918:0crwdne61918:0 |
|
||||
| crwdns61920:0crwdne61920:0 | crwdns61922:0crwdne61922:0 | crwdns61924:0crwdne61924:0 | crwdns61926:0crwdne61926:0 |
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## crwdns61928:0crwdne61928:0
|
||||
|
||||
crwdns61930:0crwdne61930:0
|
||||
|
||||
<Tabs>
|
||||
|
||||
<Tab title="Usage">
|
||||
|
||||
```jsx
|
||||
import { CircularProgressBar } from "@/ui/feedback/progress-bar/components/CircularProgressBar";
|
||||
|
||||
export const MyComponent = () => {
|
||||
return <CircularProgressBar size={80} barWidth={6} barColor="green" />;
|
||||
};
|
||||
```
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Props">
|
||||
|
||||
| crwdns61932:0crwdne61932:0 | crwdns61934:0crwdne61934:0 | crwdns61936:0crwdne61936:0 | crwdns61938:0crwdne61938:0 |
|
||||
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| crwdns61940:0crwdne61940:0 | crwdns61942:0crwdne61942:0 | crwdns61944:0crwdne61944:0 | crwdns61946:0crwdne61946:0 |
|
||||
| crwdns61948:0crwdne61948:0 | crwdns61950:0crwdne61950:0 | crwdns61952:0crwdne61952:0 | crwdns61954:0crwdne61954:0 |
|
||||
| crwdns61956:0crwdne61956:0 | crwdns61958:0crwdne61958:0 | crwdns61960:0crwdne61960:0 | crwdns61962:0crwdne61962:0 |
|
||||
|
||||
</Tab>
|
||||
|
||||
</Tabs>
|
||||
@@ -0,0 +1,114 @@
|
||||
---
|
||||
title: crwdns55596:0crwdne55596:0
|
||||
info: "crwdns55598:0crwdne55598:0"
|
||||
image: crwdns55600:0crwdne55600:0
|
||||
sectionInfo: crwdns55602:0crwdne55602:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/emails/emails_header.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns55604:0/user-guide/settings/email-calendar-setupcrwdne55604:0
|
||||
|
||||
## crwdns55606:0crwdne55606:0
|
||||
|
||||
crwdns55608:0crwdne55608:0
|
||||
|
||||
### crwdns55610:0crwdne55610:0
|
||||
|
||||
crwdns55612:0crwdne55612:0
|
||||
|
||||
- crwdns55614:0crwdne55614:0
|
||||
- crwdns55616:0crwdne55616:0
|
||||
- crwdns55618:0crwdne55618:0 crwdns55620:0crwdne55620:0
|
||||
|
||||
### crwdns55622:0crwdne55622:0
|
||||
|
||||
1. crwdns55624:0crwdne55624:0
|
||||
2. crwdns55626:0crwdne55626:0
|
||||
3. crwdns55628:0crwdne55628:0
|
||||
4. crwdns55630:0crwdne55630:0
|
||||
|
||||
crwdns55632:0crwdne55632:0
|
||||
|
||||
## crwdns55634:0crwdne55634:0
|
||||
|
||||
### crwdns55636:0crwdne55636:0
|
||||
|
||||
crwdns55638:0crwdne55638:0
|
||||
|
||||
- crwdns55640:0crwdne55640:0
|
||||
- crwdns55642:0crwdne55642:0
|
||||
- crwdns55644:0crwdne55644:0
|
||||
- crwdns55646:0crwdne55646:0
|
||||
|
||||
### crwdns55648:0crwdne55648:0
|
||||
|
||||
crwdns55650:0crwdne55650:0
|
||||
|
||||
- crwdns55652:0crwdne55652:0
|
||||
- crwdns55654:0crwdne55654:0
|
||||
- crwdns55656:0crwdne55656:0
|
||||
|
||||
## crwdns55658:0crwdne55658:0
|
||||
|
||||
### crwdns55660:0crwdne55660:0
|
||||
|
||||
- crwdns55662:0crwdne55662:0
|
||||
- crwdns55664:0crwdne55664:0
|
||||
- crwdns55666:0crwdne55666:0
|
||||
- crwdns55668:0crwdne55668:0
|
||||
|
||||
### crwdns55670:0crwdne55670:0
|
||||
|
||||
- crwdns55672:0crwdne55672:0
|
||||
- crwdns55674:0crwdne55674:0
|
||||
- crwdns55676:0crwdne55676:0
|
||||
|
||||
### crwdns55678:0crwdne55678:0
|
||||
|
||||
crwdns55680:0crwdne55680:0
|
||||
|
||||
1. crwdns55682:0crwdne55682:0
|
||||
2. crwdns55684:0crwdne55684:0
|
||||
3. crwdns55686:0crwdne55686:0
|
||||
|
||||
## crwdns55688:0crwdne55688:0
|
||||
|
||||
### crwdns55690:0crwdne55690:0
|
||||
|
||||
- crwdns55692:0crwdne55692:0
|
||||
- crwdns55694:0crwdne55694:0
|
||||
- crwdns55696:0crwdne55696:0
|
||||
- crwdns55698:0crwdne55698:0
|
||||
- crwdns55700:0crwdne55700:0
|
||||
- crwdns55702:0crwdne55702:0
|
||||
|
||||
### crwdns55704:0crwdne55704:0
|
||||
|
||||
- crwdns55706:0crwdne55706:0
|
||||
- crwdns55708:0crwdne55708:0
|
||||
|
||||
## crwdns55710:0crwdne55710:0
|
||||
|
||||
### crwdns55712:0crwdne55712:0
|
||||
|
||||
crwdns55714:0crwdne55714:0
|
||||
|
||||
crwdns55716:0crwdne55716:0
|
||||
|
||||
- crwdns55718:0crwdne55718:0
|
||||
- crwdns55720:0crwdne55720:0
|
||||
- crwdns55722:0crwdne55722:0
|
||||
|
||||
crwdns55724:0crwdne55724:0
|
||||
|
||||
### crwdns55726:0crwdne55726:0
|
||||
|
||||
1. crwdns55728:0crwdne55728:0
|
||||
2. crwdns55730:0crwdne55730:0
|
||||
3. crwdns55732:0crwdne55732:0
|
||||
4. crwdns55734:0crwdne55734:0
|
||||
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
---
|
||||
title: crwdns58806:0crwdne58806:0
|
||||
info: crwdns58808:0crwdne58808:0
|
||||
image: crwdns58810:0crwdne58810:0
|
||||
sectionInfo: crwdns58812:0crwdne58812:0
|
||||
---
|
||||
|
||||
crwdns63944:0{ VimeoEmbed }crwdne63944:0
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/notes/notes_header.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns58814:0crwdne58814:0 crwdns58816:0crwdne58816:0
|
||||
|
||||
## crwdns58818:0crwdne58818:0
|
||||
|
||||
### crwdns58820:0crwdne58820:0
|
||||
|
||||
- crwdns58822:0crwdne58822:0
|
||||
- crwdns58824:0crwdne58824:0
|
||||
- crwdns58826:0crwdne58826:0
|
||||
|
||||
### crwdns58828:0crwdne58828:0
|
||||
|
||||
- crwdns58830:0crwdne58830:0
|
||||
- crwdns58832:0crwdne58832:0
|
||||
- crwdns58834:0crwdne58834:0
|
||||
|
||||
### crwdns58836:0crwdne58836:0
|
||||
|
||||
- crwdns58838:0crwdne58838:0
|
||||
- crwdns58840:0crwdne58840:0
|
||||
- crwdns58842:0crwdne58842:0
|
||||
|
||||
### crwdns58844:0crwdne58844:0
|
||||
|
||||
crwdns58846:0/user-guide/workflows/getting-started-workflowscrwdne58846:0
|
||||
|
||||
- crwdns58848:0crwdne58848:0
|
||||
- crwdns58850:0crwdne58850:0
|
||||
|
||||
## crwdns58852:0crwdne58852:0
|
||||
|
||||
### crwdns58854:0crwdne58854:0
|
||||
|
||||
crwdns58856:0crwdne58856:0 crwdns58858:0crwdne58858:0
|
||||
|
||||
- crwdns58860:0crwdne58860:0
|
||||
- crwdns58862:0crwdne58862:0
|
||||
- crwdns58864:0crwdne58864:0
|
||||
- crwdns58866:0crwdne58866:0
|
||||
|
||||
crwdns58868:0crwdne58868:0
|
||||
|
||||
### crwdns58870:0crwdne58870:0
|
||||
|
||||
crwdns58872:0crwdne58872:0 crwdns58874:0crwdne58874:0
|
||||
|
||||
## crwdns58876:0crwdne58876:0
|
||||
|
||||
crwdns58878:0crwdne58878:0 crwdns58880:0crwdne58880:0
|
||||
|
||||
- crwdns58882:0crwdne58882:0
|
||||
- crwdns58884:0crwdne58884:0
|
||||
|
||||
crwdns58886:0crwdne58886:0
|
||||
|
||||
### crwdns58888:0crwdne58888:0
|
||||
|
||||
crwdns58890:0crwdne58890:0
|
||||
|
||||
### crwdns58892:0crwdne58892:0
|
||||
|
||||
crwdns58894:0crwdne58894:0 crwdns58896:0crwdne58896:0 crwdns58898:0crwdne58898:0
|
||||
|
||||
crwdns58900:0crwdne58900:0
|
||||
|
||||
crwdns58902:0crwdne58902:0 crwdns58904:0crwdne58904:0 crwdns58906:0crwdne58906:0
|
||||
|
||||
<VimeoEmbed videoId="927896302" title="Format note content" />
|
||||
|
||||
## crwdns58908:0crwdne58908:0
|
||||
|
||||
crwdns58910:0crwdne58910:0
|
||||
|
||||
## crwdns58912:0crwdne58912:0
|
||||
|
||||
crwdns58914:0crwdne58914:0
|
||||
|
||||
crwdns58916:0crwdne58916:0
|
||||
|
||||
1. crwdns58918:0crwdne58918:0
|
||||
2. crwdns58920:0crwdne58920:0
|
||||
3. crwdns58922:0crwdne58922:0
|
||||
4. crwdns58924:0crwdne58924:0
|
||||
|
||||
crwdns58926:0crwdne58926:0 crwdns58928:0crwdne58928:0
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
---
|
||||
title: crwdns57150:0crwdne57150:0
|
||||
info: crwdns57152:0crwdne57152:0
|
||||
image: crwdns57154:0crwdne57154:0
|
||||
sectionInfo: crwdns57156:0crwdne57156:0
|
||||
---
|
||||
|
||||
crwdns63930:0{ VimeoEmbed }crwdne63930:0
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/tasks/tasks_header.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns57158:0crwdne57158:0 crwdns57160:0crwdne57160:0
|
||||
|
||||
## crwdns57162:0crwdne57162:0
|
||||
|
||||
### crwdns57164:0crwdne57164:0
|
||||
|
||||
- crwdns57166:0crwdne57166:0
|
||||
- crwdns57168:0crwdne57168:0
|
||||
- crwdns57170:0crwdne57170:0
|
||||
|
||||
### crwdns57172:0crwdne57172:0
|
||||
|
||||
- crwdns57174:0crwdne57174:0
|
||||
- crwdns57176:0crwdne57176:0
|
||||
- crwdns57178:0crwdne57178:0
|
||||
|
||||
### crwdns57180:0crwdne57180:0
|
||||
|
||||
crwdns57182:0crwdne57182:0
|
||||
|
||||
- crwdns57184:0crwdne57184:0
|
||||
- crwdns57186:0crwdne57186:0
|
||||
- crwdns57188:0crwdne57188:0
|
||||
- crwdns57190:0crwdne57190:0
|
||||
- crwdns57192:0crwdne57192:0
|
||||
|
||||
### crwdns57194:0crwdne57194:0
|
||||
|
||||
crwdns57196:0/user-guide/workflows/getting-started-workflowscrwdne57196:0
|
||||
|
||||
- crwdns57198:0crwdne57198:0
|
||||
- crwdns57200:0crwdne57200:0
|
||||
- crwdns57202:0crwdne57202:0
|
||||
- crwdns57204:0crwdne57204:0
|
||||
|
||||
## crwdns57206:0crwdne57206:0
|
||||
|
||||
### crwdns57208:0crwdne57208:0
|
||||
|
||||
crwdns57210:0crwdne57210:0 crwdns57212:0crwdne57212:0
|
||||
|
||||
- crwdns57214:0crwdne57214:0
|
||||
- crwdns57216:0crwdne57216:0
|
||||
- crwdns57218:0crwdne57218:0
|
||||
- crwdns57220:0crwdne57220:0
|
||||
|
||||
crwdns57222:0crwdne57222:0
|
||||
|
||||
### crwdns57224:0crwdne57224:0
|
||||
|
||||
crwdns57226:0crwdne57226:0 crwdns57228:0crwdne57228:0
|
||||
|
||||
## crwdns57230:0crwdne57230:0
|
||||
|
||||
crwdns57232:0crwdne57232:0 crwdns57234:0crwdne57234:0
|
||||
|
||||
- crwdns57236:0crwdne57236:0
|
||||
- crwdns57238:0crwdne57238:0
|
||||
- crwdns57240:0crwdne57240:0
|
||||
|
||||
<VimeoEmbed videoId="928786754" title="Creating tasks" />
|
||||
|
||||
### crwdns57242:0crwdne57242:0
|
||||
|
||||
crwdns57244:0crwdne57244:0 crwdns57246:0crwdne57246:0
|
||||
|
||||
## crwdns57248:0crwdne57248:0
|
||||
|
||||
crwdns57250:0crwdne57250:0 crwdns57252:0crwdne57252:0
|
||||
|
||||
- crwdns57254:0crwdne57254:0
|
||||
- crwdns57256:0crwdne57256:0
|
||||
|
||||
crwdns57258:0crwdne57258:0
|
||||
|
||||
<VimeoEmbed videoId="927908280" title="Viewing tasks" />
|
||||
|
||||
## crwdns57260:0crwdne57260:0
|
||||
|
||||
crwdns57262:0crwdne57262:0 crwdns57264:0crwdne57264:0
|
||||
|
||||
- crwdns57266:0crwdne57266:0
|
||||
- crwdns57268:0crwdne57268:0
|
||||
- crwdns57270:0crwdne57270:0
|
||||
|
||||
## crwdns57272:0crwdne57272:0
|
||||
|
||||
crwdns57274:0crwdne57274:0
|
||||
|
||||
1. crwdns57276:0crwdne57276:0
|
||||
2. crwdns57278:0crwdne57278:0
|
||||
3. crwdns57280:0crwdne57280:0
|
||||
|
||||
crwdns57282:0crwdne57282:0
|
||||
|
||||
<VimeoEmbed videoId="927910083" title="Marking tasks as complete" />
|
||||
|
||||
## crwdns57284:0crwdne57284:0
|
||||
|
||||
crwdns57286:0crwdne57286:0
|
||||
|
||||
1. crwdns57288:0crwdne57288:0
|
||||
2. crwdns57290:0crwdne57290:0
|
||||
|
||||
crwdns57292:0crwdne57292:0 crwdns57294:0crwdne57294:0
|
||||
+95
@@ -0,0 +1,95 @@
|
||||
---
|
||||
title: crwdns58528:0crwdne58528:0
|
||||
info: "crwdns58530:0crwdne58530:0"
|
||||
image: crwdns58532:0crwdne58532:0
|
||||
sectionInfo: "crwdns58534:0crwdne58534:0"
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/home/contact-and-account-management.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns58536:0crwdne58536:0
|
||||
|
||||
crwdns58538:0crwdne58538:0 crwdns58540:0crwdne58540:0
|
||||
|
||||
### crwdns58542:0crwdne58542:0
|
||||
|
||||
crwdns58544:0crwdne58544:0 crwdns58546:0crwdne58546:0 crwdns58548:0crwdne58548:0 crwdns58550:0crwdne58550:0
|
||||
|
||||
crwdns58552:0crwdne58552:0
|
||||
|
||||
### crwdns58554:0crwdne58554:0
|
||||
|
||||
crwdns58556:0crwdne58556:0 crwdns58558:0crwdne58558:0 crwdns58560:0crwdne58560:0 crwdns58562:0/user-guide/getting-started/import-export-datacrwdne58562:0
|
||||
|
||||
### crwdns58564:0crwdne58564:0
|
||||
|
||||
crwdns58566:0crwdne58566:0
|
||||
|
||||
crwdns58568:0crwdne58568:0 crwdns58570:0crwdne58570:0
|
||||
|
||||
crwdns58572:0crwdne58572:0 crwdns58574:0crwdne58574:0
|
||||
|
||||
crwdns58576:0/user-guide/workflows/getting-started-workflowscrwdne58576:0
|
||||
|
||||
### crwdns58578:0crwdne58578:0
|
||||
|
||||
crwdns58580:0crwdne58580:0 crwdns58582:0crwdne58582:0 crwdns58584:0crwdne58584:0
|
||||
|
||||
crwdns58586:0crwdne58586:0 crwdns58588:0crwdne58588:0 crwdns58590:0/user-guide/collaboration/emails-and-calendarscrwdne58590:0
|
||||
|
||||
### crwdns58592:0crwdne58592:0
|
||||
|
||||
crwdns58594:0crwdne58594:0 crwdns58596:0crwdne58596:0
|
||||
|
||||
## crwdns58598:0crwdne58598:0
|
||||
|
||||
### crwdns58600:0crwdne58600:0
|
||||
|
||||
crwdns58602:0crwdne58602:0 crwdns58604:0crwdne58604:0 crwdns58606:0crwdne58606:0
|
||||
|
||||
crwdns58608:0crwdne58608:0 crwdns58610:0/user-guide/data-model/customize-your-data-modelcrwdne58610:0
|
||||
|
||||
### crwdns58612:0crwdne58612:0
|
||||
|
||||
crwdns58614:0crwdne58614:0 crwdns58616:0crwdne58616:0
|
||||
|
||||
crwdns58618:0crwdne58618:0
|
||||
|
||||
### crwdns58620:0crwdne58620:0
|
||||
|
||||
crwdns58622:0crwdne58622:0 crwdns58624:0crwdne58624:0 crwdns58626:0crwdne58626:0
|
||||
|
||||
### crwdns58628:0crwdne58628:0
|
||||
|
||||
crwdns58630:0crwdne58630:0 crwdns58632:0crwdne58632:0 crwdns58634:0/user-guide/crm-essentials/view-managementcrwdne58634:0
|
||||
|
||||
## crwdns58636:0crwdne58636:0
|
||||
|
||||
### crwdns58638:0crwdne58638:0
|
||||
|
||||
crwdns58640:0crwdne58640:0
|
||||
|
||||
- crwdns58642:0crwdne58642:0
|
||||
- crwdns58644:0crwdne58644:0
|
||||
- crwdns58646:0crwdne58646:0
|
||||
- crwdns58648:0crwdne58648:0
|
||||
- crwdns58650:0crwdne58650:0
|
||||
- crwdns58652:0crwdne58652:0
|
||||
- crwdns58654:0crwdne58654:0
|
||||
- crwdns58656:0crwdne58656:0
|
||||
|
||||
crwdns58658:0crwdne58658:0 crwdns58660:0/user-guide/collaboration/emails-and-calendarscrwdne58660:0
|
||||
|
||||
### crwdns58662:0crwdne58662:0
|
||||
|
||||
crwdns58664:0crwdne58664:0 crwdns58666:0crwdne58666:0 crwdns58668:0/user-guide/data-model/customize-your-data-modelcrwdne58668:0
|
||||
|
||||
## crwdns58670:0crwdne58670:0
|
||||
|
||||
crwdns58672:0crwdne58672:0 crwdns58674:0crwdne58674:0
|
||||
|
||||
crwdns58676:0crwdne58676:0 crwdns58678:0crwdne58678:0
|
||||
|
||||
crwdns58680:0crwdne58680:0
|
||||
@@ -0,0 +1,73 @@
|
||||
---
|
||||
title: crwdns57884:0crwdne57884:0
|
||||
info: "crwdns57886:0crwdne57886:0"
|
||||
image: crwdns57888:0crwdne57888:0
|
||||
sectionInfo: "crwdns57890:0crwdne57890:0"
|
||||
---
|
||||
|
||||
crwdns63940:0{ VimeoEmbed }crwdne63940:0
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/kanban-views/kanban.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns57892:0crwdne57892:0
|
||||
|
||||
crwdns57894:0crwdne57894:0 crwdns57896:0crwdne57896:0
|
||||
|
||||
crwdns57898:0crwdne57898:0 crwdns57900:0crwdne57900:0
|
||||
|
||||
## crwdns57902:0crwdne57902:0
|
||||
|
||||
crwdns57904:0crwdne57904:0 crwdns57906:0crwdne57906:0 crwdns57908:0crwdne57908:0
|
||||
|
||||
### crwdns57910:0crwdne57910:0
|
||||
|
||||
crwdns57912:0crwdne57912:0 crwdns57914:0crwdne57914:0
|
||||
|
||||
<VimeoEmbed videoId="927888627" title="Video demonstration" />
|
||||
|
||||
### crwdns57916:0crwdne57916:0
|
||||
|
||||
crwdns57918:0crwdne57918:0 crwdns57920:0crwdne57920:0
|
||||
|
||||
#### crwdns57922:0crwdne57922:0
|
||||
|
||||
crwdns57924:0crwdne57924:0
|
||||
|
||||
<VimeoEmbed videoId="927890428" title="Video demonstration" />
|
||||
|
||||
#### crwdns57926:0crwdne57926:0
|
||||
|
||||
crwdns57928:0crwdne57928:0
|
||||
|
||||
crwdns57930:0crwdne57930:0
|
||||
|
||||
### crwdns57932:0crwdne57932:0
|
||||
|
||||
crwdns57934:0crwdne57934:0 crwdns57936:0crwdne57936:0 crwdns57938:0crwdne57938:0 crwdns57940:0crwdne57940:0
|
||||
|
||||
crwdns57942:0crwdne57942:0
|
||||
|
||||
crwdns57944:0crwdne57944:0
|
||||
|
||||
### crwdns57946:0crwdne57946:0
|
||||
|
||||
crwdns57948:0crwdne57948:0 crwdns57950:0crwdne57950:0
|
||||
|
||||
crwdns57952:0crwdne57952:0
|
||||
|
||||
## crwdns57954:0crwdne57954:0
|
||||
|
||||
### crwdns57956:0crwdne57956:0
|
||||
|
||||
crwdns57958:0/user-guide/workflows/getting-started-workflowscrwdne57958:0
|
||||
|
||||
- crwdns57960:0crwdne57960:0
|
||||
- crwdns57962:0crwdne57962:0
|
||||
- crwdns57964:0crwdne57964:0
|
||||
|
||||
### crwdns57966:0crwdne57966:0
|
||||
|
||||
crwdns57968:0crwdne57968:0 crwdns57970:0crwdne57970:0 crwdns57972:0/user-guide/crm-essentials/view-managementcrwdne57972:0
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
title: crwdns54764:0crwdne54764:0
|
||||
info: "crwdns54766:0crwdne54766:0"
|
||||
image: crwdns54768:0crwdne54768:0
|
||||
sectionInfo: "crwdns54770:0crwdne54770:0"
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/workflows/sales-use-cases.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns54772:0crwdne54772:0
|
||||
|
||||
crwdns54774:0crwdne54774:0 crwdns54776:0crwdne54776:0
|
||||
|
||||
crwdns54778:0/user-guide/workflows/getting-started-workflowscrwdne54778:0 crwdns54780:0/user-guide/workflows/internal-automationscrwdnd54780:0/user-guide/workflows/external-tool-integrationcrwdne54780:0
|
||||
@@ -0,0 +1,120 @@
|
||||
---
|
||||
title: crwdns56542:0crwdne56542:0
|
||||
info: "crwdns56544:0crwdne56544:0"
|
||||
image: crwdns56546:0crwdne56546:0
|
||||
sectionInfo: "crwdns56548:0crwdne56548:0"
|
||||
---
|
||||
|
||||
crwdns63926:0{ VimeoEmbed }crwdne63926:0
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/table-views/table.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns56550:0crwdne56550:0
|
||||
|
||||
crwdns56552:0crwdne56552:0 crwdns56554:0crwdne56554:0
|
||||
|
||||
### crwdns56556:0crwdne56556:0
|
||||
|
||||
crwdns56558:0crwdne56558:0 crwdns56560:0crwdne56560:0
|
||||
crwdns56562:0crwdne56562:0
|
||||
|
||||
### crwdns56564:0crwdne56564:0
|
||||
|
||||
crwdns56566:0crwdne56566:0 crwdns56568:0crwdne56568:0
|
||||
|
||||
### crwdns56570:0crwdne56570:0
|
||||
|
||||
crwdns56572:0crwdne56572:0 crwdns56574:0crwdne56574:0 crwdns56576:0crwdne56576:0
|
||||
|
||||
### crwdns56578:0crwdne56578:0
|
||||
|
||||
crwdns56580:0crwdne56580:0 crwdns56582:0crwdne56582:0 crwdns56584:0/user-guide/crm-essentials/pipelinecrwdne56584:0
|
||||
|
||||
<VimeoEmbed videoId="927888627" title="Video demonstration" />
|
||||
|
||||
## crwdns56586:0crwdne56586:0
|
||||
|
||||
crwdns56588:0crwdne56588:0
|
||||
|
||||
### crwdns56590:0crwdne56590:0
|
||||
|
||||
crwdns56592:0crwdne56592:0
|
||||
|
||||
### crwdns56594:0crwdne56594:0
|
||||
|
||||
crwdns56596:0crwdne56596:0 crwdns56598:0crwdne56598:0
|
||||
|
||||
- crwdns56600:0crwdne56600:0
|
||||
- crwdns56602:0crwdne56602:0
|
||||
|
||||
<Warning>
|
||||
crwdns56604:0crwdne56604:0 crwdns56606:0crwdne56606:0
|
||||
</Warning>crwdns56608:0crwdne56608:0
|
||||
|
||||
<VimeoEmbed videoId="927639721" title="Video demonstration" />
|
||||
|
||||
### crwdns56610:0crwdne56610:0
|
||||
|
||||
crwdns56612:0crwdne56612:0 crwdns56614:0crwdne56614:0
|
||||
|
||||
<VimeoEmbed videoId="927643495" title="Video demonstration" />
|
||||
|
||||
## crwdns56616:0crwdne56616:0
|
||||
|
||||
crwdns56618:0crwdne56618:0 crwdns56620:0crwdne56620:0
|
||||
|
||||
## crwdns56622:0crwdne56622:0
|
||||
|
||||
crwdns56624:0crwdne56624:0 crwdns56626:0crwdne56626:0
|
||||
|
||||
### crwdns56628:0crwdne56628:0
|
||||
|
||||
crwdns56630:0crwdne56630:0
|
||||
|
||||
crwdns56632:0crwdne56632:0 crwdns56634:0crwdne56634:0
|
||||
|
||||
- crwdns56636:0crwdne56636:0
|
||||
- crwdns56638:0crwdne56638:0
|
||||
- crwdns56640:0crwdne56640:0
|
||||
|
||||
### crwdns56642:0crwdne56642:0
|
||||
|
||||
crwdns56644:0crwdne56644:0 crwdns56646:0crwdne56646:0 crwdns56648:0crwdne56648:0
|
||||
|
||||
<VimeoEmbed videoId="926282262" title="Video demonstration" />
|
||||
|
||||
### crwdns56650:0crwdne56650:0
|
||||
|
||||
crwdns56652:0crwdne56652:0 crwdns56654:0crwdne56654:0 crwdns56656:0crwdne56656:0
|
||||
|
||||
<VimeoEmbed videoId="927885588" title="Video demonstration" />
|
||||
|
||||
### crwdns56658:0crwdne56658:0
|
||||
|
||||
crwdns56660:0crwdne56660:0 crwdns56662:0crwdne56662:0 crwdns56664:0crwdne56664:0
|
||||
|
||||
- crwdns56666:0crwdne56666:0
|
||||
- crwdns56668:0crwdne56668:0
|
||||
- crwdns56670:0crwdne56670:0
|
||||
|
||||
## crwdns56672:0crwdne56672:0
|
||||
|
||||
### crwdns56674:0crwdne56674:0
|
||||
|
||||
crwdns56676:0crwdne56676:0 crwdns56678:0crwdne56678:0
|
||||
|
||||
- crwdns56680:0crwdne56680:0
|
||||
- crwdns56682:0crwdne56682:0
|
||||
- crwdns56684:0crwdne56684:0
|
||||
|
||||
### crwdns56686:0crwdne56686:0
|
||||
|
||||
crwdns56688:0crwdne56688:0 crwdns56690:0crwdne56690:0
|
||||
|
||||
### crwdns56692:0crwdne56692:0
|
||||
|
||||
crwdns56694:0crwdne56694:0 crwdns56696:0crwdne56696:0
|
||||
|
||||
crwdns56698:0/user-guide/data-model/customize-your-data-modelcrwdne56698:0
|
||||
@@ -0,0 +1,40 @@
|
||||
---
|
||||
title: crwdns58078:0crwdne58078:0
|
||||
info: "crwdns58080:0crwdne58080:0"
|
||||
image: crwdns58082:0crwdne58082:0
|
||||
sectionInfo: crwdns58084:0crwdne58084:0
|
||||
---
|
||||
|
||||
crwdns63942:0{ VimeoEmbed }crwdne63942:0
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/table-views/table.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns58086:0crwdne58086:0
|
||||
|
||||
crwdns58088:0crwdne58088:0
|
||||
|
||||
## crwdns58090:0crwdne58090:0
|
||||
|
||||
crwdns58092:0crwdne58092:0 crwdns58094:0crwdne58094:0
|
||||
|
||||
crwdns58096:0crwdne58096:0 crwdns58098:0crwdne58098:0
|
||||
|
||||
<VimeoEmbed videoId="927071691" title="Video demonstration" />
|
||||
|
||||
## crwdns58100:0crwdne58100:0
|
||||
|
||||
crwdns58102:0crwdne58102:0
|
||||
|
||||
crwdns58104:0crwdne58104:0
|
||||
|
||||
<VimeoEmbed videoId="927073570" title="Video demonstration" />
|
||||
|
||||
## crwdns58106:0crwdne58106:0
|
||||
|
||||
crwdns58108:0crwdne58108:0
|
||||
|
||||
crwdns58110:0crwdne58110:0
|
||||
|
||||
crwdns58112:0crwdne58112:0 crwdns58114:0crwdne58114:0 crwdns58116:0crwdne58116:0 crwdns58118:0crwdne58118:0
|
||||
@@ -0,0 +1,64 @@
|
||||
---
|
||||
title: crwdns55916:0crwdne55916:0
|
||||
info: "crwdns55918:0crwdne55918:0"
|
||||
image: crwdns55920:0crwdne55920:0
|
||||
sectionInfo: crwdns55922:0crwdne55922:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/fields/custom_data_model.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns55924:0crwdne55924:0
|
||||
|
||||
crwdns55926:0crwdne55926:0 crwdns55928:0crwdne55928:0 crwdns55930:0crwdne55930:0
|
||||
|
||||
## crwdns55932:0crwdne55932:0
|
||||
|
||||
crwdns55934:0crwdne55934:0 crwdns55936:0crwdne55936:0
|
||||
crwdns55938:0crwdne55938:0 crwdns55940:0crwdne55940:0
|
||||
|
||||
## crwdns55942:0crwdne55942:0
|
||||
|
||||
crwdns55944:0crwdne55944:0 crwdns55946:0crwdne55946:0
|
||||
|
||||
crwdns55948:0crwdne55948:0 crwdns55950:0crwdne55950:0 crwdns55952:0crwdne55952:0 crwdns55954:0crwdne55954:0
|
||||
crwdns55956:0crwdne55956:0
|
||||
|
||||
crwdns55958:0crwdne55958:0 crwdns55960:0crwdne55960:0 crwdns55962:0crwdne55962:0
|
||||
|
||||
crwdns55964:0crwdne55964:0 crwdns55966:0crwdne55966:0 crwdns55968:0crwdne55968:0
|
||||
|
||||
- crwdns55970:0crwdne55970:0
|
||||
- crwdns55972:0crwdne55972:0
|
||||
- crwdns55974:0crwdne55974:0
|
||||
|
||||
crwdns55976:0crwdne55976:0
|
||||
|
||||
crwdns55978:0crwdne55978:0 crwdns55980:0crwdne55980:0 crwdns55982:0crwdne55982:0 crwdns55984:0crwdne55984:0
|
||||
|
||||
crwdns55986:0crwdne55986:0 crwdns55988:0crwdne55988:0 crwdns55990:0crwdne55990:0
|
||||
|
||||
### crwdns55992:0crwdne55992:0
|
||||
|
||||
- crwdns55994:0crwdne55994:0 crwdns55996:0crwdne55996:0
|
||||
|
||||
crwdns55998:0crwdne55998:0 crwdns56000:0crwdne56000:0 crwdns56002:0crwdne56002:0
|
||||
- crwdns56004:0crwdne56004:0 crwdns56006:0crwdne56006:0 crwdns56008:0crwdne56008:0
|
||||
|
||||
### crwdns56010:0crwdne56010:0
|
||||
|
||||
crwdns56012:0crwdne56012:0
|
||||
|
||||
- crwdns56014:0crwdne56014:0
|
||||
- crwdns56016:0crwdne56016:0
|
||||
- crwdns56018:0crwdne56018:0
|
||||
- crwdns56020:0crwdne56020:0
|
||||
|
||||
crwdns56022:0crwdne56022:0
|
||||
|
||||
## crwdns56024:0crwdne56024:0
|
||||
|
||||
crwdns56026:0crwdne56026:0 crwdns56028:0https://twenty.com/onboarding-packagescrwdne56028:0
|
||||
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
---
|
||||
title: crwdns54580:0crwdne54580:0
|
||||
info: "crwdns54582:0crwdne54582:0"
|
||||
image: crwdns54584:0crwdne54584:0
|
||||
sectionInfo: crwdns54586:0crwdne54586:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/what-is-twenty/faq.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns54588:0crwdne54588:0
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Can I reorder objects in the left navigation bar?">
|
||||
crwdns54590:0crwdne54590:0 crwdns54592:0crwdne54592:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Can I hide objects from the left navigation bar?">
|
||||
crwdns54594:0crwdne54594:0 crwdns54596:0crwdne54596:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Can I delete standard objects (People, Companies, etc.)?">crwdns54598:0crwdne54598:0</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## crwdns54600:0crwdne54600:0
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Can I create formula fields?">
|
||||
crwdns54602:0crwdne54602:0 crwdns54604:0crwdne54604:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Can I have nested fields in my objects?">
|
||||
crwdns54606:0crwdne54606:0 crwdns54608:0crwdne54608:0 crwdns54610:0crwdne54610:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Why can't I update relation field names?">
|
||||
crwdns54612:0crwdne54612:0 crwdns54614:0crwdne54614:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Why do I need different singular and plural names?">crwdns54616:0crwdne54616:0
|
||||
|
||||
crwdns54618:0crwdne54618:0
|
||||
crwdns54620:0crwdne54620:0
|
||||
|
||||
<Accordion title="Why are some field names protected?">
|
||||
crwdns54622:0crwdne54622:0 crwdns54624:0crwdne54624:0
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## crwdns54626:0crwdne54626:0
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Can I create many-to-many relationships?">
|
||||
crwdns54628:0crwdne54628:0 crwdns54630:0crwdne54630:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="What are Morph Many relationships?">
|
||||
crwdns54632:0crwdne54632:0 crwdns54634:0crwdne54634:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Can I reorder fields in objects?">
|
||||
crwdns54636:0crwdne54636:0 crwdns54638:0crwdne54638:0
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## crwdns54640:0crwdne54640:0
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Where can I see and edit my data model?">crwdns54642:0crwdne54642:0</Accordion>
|
||||
|
||||
<Accordion title="Why can't I see the Data Model under Settings?">
|
||||
crwdns54644:0crwdne54644:0 crwdns54646:0crwdne54646:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="How many custom objects or fields can I create?">crwdns54648:0crwdne54648:0</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## crwdns54650:0crwdne54650:0
|
||||
|
||||
crwdns54652:0/user-guide/getting-started/implementation-servicescrwdne54652:0
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
---
|
||||
title: crwdns57524:0crwdne57524:0
|
||||
info: "crwdns57526:0crwdne57526:0"
|
||||
image: crwdns57528:0crwdne57528:0
|
||||
sectionInfo: crwdns57530:0crwdne57530:0
|
||||
---
|
||||
|
||||
crwdns63934:0{ VimeoEmbed }crwdne63934:0
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/fields/field.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns57532:0crwdne57532:0
|
||||
|
||||
crwdns57534:0crwdne57534:0 crwdns57536:0crwdne57536:0 crwdns57538:0crwdne57538:0
|
||||
|
||||
### crwdns57540:0crwdne57540:0
|
||||
|
||||
crwdns57542:0crwdne57542:0
|
||||
|
||||
crwdns57544:0crwdne57544:0 crwdns57546:0crwdne57546:0
|
||||
|
||||
crwdns57548:0crwdne57548:0
|
||||
|
||||
crwdns57550:0crwdne57550:0
|
||||
|
||||
crwdns57552:0crwdne57552:0
|
||||
|
||||
### crwdns57554:0crwdne57554:0
|
||||
|
||||
crwdns57556:0crwdne57556:0 crwdns57558:0crwdne57558:0 crwdns57560:0crwdne57560:0
|
||||
|
||||
crwdns57562:0crwdne57562:0
|
||||
|
||||
crwdns57564:0crwdne57564:0
|
||||
|
||||
## crwdns57566:0crwdne57566:0
|
||||
|
||||
crwdns57568:0crwdne57568:0 crwdns57570:0crwdne57570:0
|
||||
crwdns57572:0crwdne57572:0 crwdns57574:0crwdne57574:0
|
||||
crwdns57576:0crwdne57576:0 crwdns57578:0crwdne57578:0
|
||||
crwdns57580:0crwdne57580:0 crwdns57582:0crwdne57582:0 crwdns57584:0crwdne57584:0
|
||||
|
||||
crwdns57586:0crwdne57586:0 crwdns57588:0crwdne57588:0
|
||||
|
||||
<VimeoEmbed videoId="927628219" title="Video demonstration" />
|
||||
|
||||
crwdns57590:0crwdne57590:0 crwdns57592:0crwdne57592:0
|
||||
|
||||
crwdns57594:0crwdne57594:0
|
||||
|
||||
## crwdns57596:0crwdne57596:0
|
||||
|
||||
crwdns57598:0crwdne57598:0 crwdns57600:0crwdne57600:0
|
||||
|
||||
crwdns57602:0crwdne57602:0
|
||||
|
||||
1. crwdns57604:0crwdne57604:0
|
||||
|
||||
2. crwdns57606:0crwdne57606:0
|
||||
|
||||
3. crwdns57608:0crwdne57608:0
|
||||
|
||||
crwdns57610:0crwdne57610:0
|
||||
|
||||
crwdns57612:0crwdne57612:0
|
||||
|
||||
1. crwdns57614:0crwdne57614:0
|
||||
|
||||
2. crwdns57616:0crwdne57616:0
|
||||
|
||||
3. crwdns57618:0crwdne57618:0
|
||||
|
||||
crwdns57620:0crwdne57620:0
|
||||
|
||||
## crwdns57622:0crwdne57622:0
|
||||
|
||||
crwdns57624:0crwdne57624:0 crwdns57626:0crwdne57626:0
|
||||
|
||||
crwdns57628:0crwdne57628:0
|
||||
|
||||
## crwdns57630:0crwdne57630:0
|
||||
|
||||
### crwdns57632:0crwdne57632:0
|
||||
|
||||
- crwdns57634:0crwdne57634:0
|
||||
- crwdns57636:0crwdne57636:0
|
||||
- crwdns57638:0crwdne57638:0
|
||||
|
||||
### crwdns57640:0crwdne57640:0
|
||||
|
||||
- crwdns57642:0crwdne57642:0
|
||||
- crwdns57644:0crwdne57644:0
|
||||
|
||||
### crwdns57646:0crwdne57646:0
|
||||
|
||||
- crwdns57648:0crwdne57648:0
|
||||
|
||||
### crwdns57650:0crwdne57650:0
|
||||
|
||||
- crwdns57652:0crwdne57652:0 crwdns57654:0crwdne57654:0 crwdns57656:0crwdne57656:0
|
||||
|
||||
### crwdns57658:0crwdne57658:0
|
||||
|
||||
- crwdns57660:0crwdne57660:0 crwdns57662:0/user-guide/data-model/relation-fieldscrwdne57662:0
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
---
|
||||
title: crwdns57974:0crwdne57974:0
|
||||
info: "crwdns57976:0crwdne57976:0"
|
||||
image: crwdns57978:0crwdne57978:0
|
||||
sectionInfo: crwdns57980:0crwdne57980:0
|
||||
---
|
||||
|
||||
crwdns63938:0{ VimeoEmbed }crwdne63938:0
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/objects/objects_orange.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns57982:0crwdne57982:0
|
||||
|
||||
crwdns57984:0crwdne57984:0 crwdns57986:0crwdne57986:0 crwdns57988:0crwdne57988:0
|
||||
|
||||
crwdns57990:0crwdne57990:0
|
||||
|
||||
### crwdns57992:0crwdne57992:0
|
||||
|
||||
crwdns57994:0crwdne57994:0 crwdns57996:0crwdne57996:0
|
||||
|
||||
### crwdns57998:0crwdne57998:0
|
||||
|
||||
crwdns58000:0crwdne58000:0 crwdns58002:0crwdne58002:0 crwdns58004:0crwdne58004:0
|
||||
|
||||
### crwdns58006:0crwdne58006:0
|
||||
|
||||
crwdns58008:0crwdne58008:0 crwdns58010:0crwdne58010:0 crwdns58012:0crwdne58012:0
|
||||
|
||||
## crwdns58014:0crwdne58014:0
|
||||
|
||||
crwdns58016:0crwdne58016:0 crwdns58018:0crwdne58018:0
|
||||
|
||||
crwdns58020:0crwdne58020:0
|
||||
|
||||
### crwdns58022:0crwdne58022:0
|
||||
|
||||
crwdns58024:0crwdne58024:0
|
||||
|
||||
1. crwdns58026:0crwdne58026:0
|
||||
2. crwdns58028:0crwdne58028:0 crwdns58030:0crwdne58030:0
|
||||
|
||||
<VimeoEmbed videoId="926288174" title="Video demonstration" />
|
||||
|
||||
3. crwdns58032:0crwdne58032:0 crwdns58034:0crwdne58034:0 crwdns58036:0crwdne58036:0
|
||||
|
||||
<Warning>
|
||||
crwdns58038:0crwdne58038:0 crwdns58040:0crwdne58040:0
|
||||
</Warning>
|
||||
|
||||
<VimeoEmbed videoId="926293493" title="Video demonstration" />
|
||||
|
||||
4. crwdns58042:0crwdne58042:0 crwdns58044:0crwdne58044:0
|
||||
|
||||
crwdns58046:0crwdne58046:0
|
||||
|
||||
crwdns58048:0/user-guide/data-model/customize-your-data-modelcrwdne58048:0
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
title: crwdns56360:0crwdne56360:0
|
||||
info: crwdns56362:0crwdne56362:0
|
||||
image: crwdns56364:0crwdne56364:0
|
||||
sectionInfo: crwdns56366:0crwdne56366:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/fields/relations_field.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns56368:0crwdne56368:0
|
||||
|
||||
crwdns56370:0crwdne56370:0 crwdns56372:0crwdne56372:0
|
||||
|
||||
- crwdns56374:0crwdne56374:0
|
||||
- crwdns56376:0crwdne56376:0
|
||||
- crwdns56378:0crwdne56378:0
|
||||
|
||||
## crwdns56380:0crwdne56380:0
|
||||
|
||||
### crwdns56382:0crwdne56382:0 crwdns56384:0crwdne56384:0
|
||||
|
||||
crwdns56386:0crwdne56386:0
|
||||
|
||||
### crwdns56388:0crwdne56388:0 crwdns56390:0crwdne56390:0
|
||||
|
||||
- crwdns56392:0crwdne56392:0
|
||||
- crwdns56394:0crwdne56394:0
|
||||
- crwdns56396:0crwdne56396:0 crwdns56398:0crwdne56398:0
|
||||
|
||||
### crwdns56400:0crwdne56400:0 crwdns56402:0crwdne56402:0
|
||||
|
||||
crwdns56404:0crwdne56404:0
|
||||
|
||||
- crwdns56406:0crwdne56406:0
|
||||
- crwdns56408:0crwdne56408:0
|
||||
|
||||
<Warning>
|
||||
crwdns56410:0crwdne56410:0 crwdns56412:0crwdne56412:0
|
||||
</Warning>
|
||||
|
||||
## crwdns56414:0crwdne56414:0
|
||||
|
||||
crwdns56416:0crwdne56416:0 crwdns56418:0crwdne56418:0
|
||||
|
||||
- crwdns56420:0crwdne56420:0
|
||||
- crwdns56422:0crwdne56422:0
|
||||
|
||||
crwdns56424:0crwdne56424:0
|
||||
|
||||
## crwdns56426:0crwdne56426:0
|
||||
|
||||
- crwdns56428:0crwdne56428:0
|
||||
- crwdns56430:0crwdne56430:0
|
||||
- crwdns56432:0crwdne56432:0
|
||||
|
||||
## crwdns56434:0crwdne56434:0
|
||||
|
||||
- crwdns56436:0crwdne56436:0
|
||||
- crwdns56438:0crwdne56438:0
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
---
|
||||
title: crwdns58682:0crwdne58682:0
|
||||
info: "crwdns58684:0crwdne58684:0"
|
||||
image: crwdns58686:0crwdne58686:0
|
||||
sectionInfo: crwdns58688:0crwdne58688:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/what-is-twenty/getting_started.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns58690:0crwdne58690:0 crwdns58692:0crwdne58692:0
|
||||
crwdns58694:0crwdne58694:0
|
||||
|
||||
crwdns58696:0crwdne58696:0 crwdns58698:0crwdne58698:0 crwdns58700:0crwdne58700:0
|
||||
|
||||
## crwdns58702:0crwdne58702:0 crwdns58704:0crwdne58704:0
|
||||
|
||||
crwdns58706:0crwdne58706:0
|
||||
crwdns58708:0crwdne58708:0 crwdns58710:0crwdne58710:0
|
||||
crwdns58712:0crwdne58712:0
|
||||
|
||||
- crwdns58714:0crwdne58714:0 crwdns58716:0crwdne58716:0
|
||||
- crwdns58718:0crwdne58718:0 crwdns58720:0crwdne58720:0 crwdns58722:0crwdne58722:0
|
||||
- crwdns58724:0crwdne58724:0 crwdns58726:0crwdne58726:0
|
||||
- crwdns58728:0crwdne58728:0
|
||||
- crwdns58730:0crwdne58730:0 crwdns58732:0crwdne58732:0
|
||||
- crwdns58734:0crwdne58734:0
|
||||
- crwdns58736:0crwdne58736:0
|
||||
|
||||
crwdns58738:0https://docs.twenty.com/user-guide/data-model/customize-your-data-modelcrwdne58738:0
|
||||
|
||||
## crwdns58740:0crwdne58740:0 crwdns58742:0crwdne58742:0
|
||||
|
||||
crwdns58744:0crwdne58744:0
|
||||
|
||||
### crwdns58746:0crwdne58746:0
|
||||
|
||||
crwdns58748:0crwdne58748:0 crwdns58750:0crwdne58750:0
|
||||
|
||||
- crwdns58752:0crwdne58752:0
|
||||
- crwdns58754:0crwdne58754:0
|
||||
- crwdns58756:0crwdne58756:0
|
||||
|
||||
crwdns58758:0crwdne58758:0 crwdns58760:0crwdne58760:0
|
||||
|
||||
### crwdns58762:0crwdne58762:0
|
||||
|
||||
crwdns58764:0crwdne58764:0
|
||||
|
||||
crwdns58766:0crwdne58766:0
|
||||
|
||||
- crwdns58768:0crwdne58768:0
|
||||
- crwdns58770:0crwdne58770:0
|
||||
- crwdns58772:0crwdne58772:0
|
||||
- crwdns58774:0crwdne58774:0
|
||||
|
||||
crwdns58776:0/user-guide/getting-started/import-export-datacrwdne58776:0
|
||||
|
||||
## crwdns58778:0crwdne58778:0 crwdns58780:0crwdne58780:0
|
||||
|
||||
crwdns58782:0crwdne58782:0
|
||||
crwdns58784:0crwdne58784:0
|
||||
|
||||
- crwdns58786:0crwdne58786:0 crwdns58788:0crwdne58788:0
|
||||
|
||||
- crwdns58790:0crwdne58790:0 crwdns58792:0crwdne58792:0
|
||||
|
||||
- crwdns58794:0crwdne58794:0
|
||||
|
||||
- crwdns58796:0crwdne58796:0
|
||||
|
||||
- crwdns58798:0crwdne58798:0
|
||||
|
||||
- crwdns58800:0crwdne58800:0
|
||||
|
||||
## crwdns58802:0crwdne58802:0
|
||||
|
||||
crwdns58804:0https://docs.twenty.com/user-guide/workflows/getting-started-workflowscrwdne58804:0
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
title: crwdns57826:0crwdne57826:0
|
||||
info: "crwdns57828:0crwdne57828:0"
|
||||
image: crwdns57830:0crwdne57830:0
|
||||
sectionInfo: crwdns57832:0crwdne57832:0
|
||||
---
|
||||
|
||||
crwdns63936:0{ VimeoEmbed }crwdne63936:0
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/create-workspace/workspace-cover.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns57834:0crwdne57834:0
|
||||
|
||||
1. crwdns57836:0https://app.twenty.comcrwdne57836:0
|
||||
2. crwdns57838:0crwdne57838:0
|
||||
- crwdns57840:0crwdne57840:0
|
||||
- crwdns57842:0crwdne57842:0
|
||||
- crwdns57844:0crwdne57844:0
|
||||
|
||||
<VimeoEmbed videoId="927066829" title="Video demonstration" />crwdns57846:0crwdne57846:0
|
||||
|
||||
crwdns57848:0crwdne57848:0
|
||||
|
||||
### crwdns57850:0crwdne57850:0
|
||||
|
||||
crwdns57852:0crwdne57852:0
|
||||
|
||||
### crwdns57854:0crwdne57854:0
|
||||
|
||||
crwdns57856:0crwdne57856:0
|
||||
|
||||
crwdns57858:0crwdne57858:0
|
||||
|
||||
- crwdns57860:0crwdne57860:0
|
||||
- crwdns57862:0crwdne57862:0
|
||||
- crwdns57864:0crwdne57864:0
|
||||
- crwdns57866:0crwdne57866:0
|
||||
- crwdns57868:0crwdne57868:0
|
||||
|
||||
crwdns57870:0crwdne57870:0
|
||||
|
||||
crwdns57872:0crwdne57872:0
|
||||
|
||||
## crwdns57874:0crwdne57874:0
|
||||
|
||||
crwdns57876:0crwdne57876:0 crwdns57878:0crwdne57878:0
|
||||
|
||||
## crwdns57880:0crwdne57880:0
|
||||
|
||||
crwdns57882:0mailto:contact@twenty.comcrwdnd57882:0https://discord.gg/cx5n4Jzs57crwdne57882:0
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
---
|
||||
title: crwdns56114:0crwdne56114:0
|
||||
info: "crwdns56116:0crwdne56116:0"
|
||||
image: crwdns56118:0crwdne56118:0
|
||||
sectionInfo: crwdns56120:0crwdne56120:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/what-is-twenty/getting_around.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns56122:0crwdne56122:0 crwdns56124:0crwdne56124:0
|
||||
|
||||
## crwdns56126:0crwdne56126:0
|
||||
|
||||
crwdns56128:0crwdne56128:0 crwdns56130:0crwdne56130:0
|
||||
crwdns56132:0crwdne56132:0
|
||||
|
||||
## crwdns56134:0crwdne56134:0
|
||||
|
||||
crwdns56136:0crwdne56136:0
|
||||
|
||||
- crwdns56138:0crwdne56138:0
|
||||
- crwdns56140:0crwdne56140:0
|
||||
- crwdns56142:0crwdne56142:0
|
||||
- crwdns56144:0crwdne56144:0
|
||||
|
||||
<Warning>crwdns56146:0crwdne56146:0</Warning>
|
||||
|
||||
- crwdns64040:0crwdne64040:0 crwdns64042:0crwdne64042:0
|
||||
- crwdns64044:0crwdne64044:0
|
||||
- crwdns64046:0crwdne64046:0
|
||||
- crwdns64048:0crwdne64048:0
|
||||
|
||||
## crwdns56154:0crwdne56154:0
|
||||
|
||||
crwdns56156:0crwdne56156:0 crwdns56158:0crwdne56158:0
|
||||
|
||||
- crwdns56160:0crwdne56160:0
|
||||
- crwdns56162:0crwdne56162:0
|
||||
|
||||
crwdns56164:0crwdne56164:0
|
||||
|
||||
crwdns56166:0crwdne56166:0
|
||||
|
||||
- crwdns56168:0crwdne56168:0
|
||||
- crwdns56170:0crwdne56170:0
|
||||
- crwdns56172:0crwdne56172:0
|
||||
- crwdns56174:0crwdne56174:0
|
||||
- crwdns56176:0crwdne56176:0
|
||||
|
||||
## crwdns56178:0crwdne56178:0
|
||||
|
||||
crwdns56180:0crwdne56180:0 crwdns56182:0crwdne56182:0
|
||||
|
||||
crwdns56184:0crwdne56184:0 crwdns56186:0crwdne56186:0
|
||||
|
||||
- crwdns56188:0crwdne56188:0
|
||||
- crwdns56190:0crwdne56190:0
|
||||
- crwdns56192:0crwdne56192:0
|
||||
- crwdns56194:0crwdne56194:0
|
||||
- crwdns56196:0crwdne56196:0
|
||||
|
||||
crwdns56198:0/user-guide/crm-essentials/view-managementcrwdne56198:0
|
||||
|
||||
## crwdns56200:0crwdne56200:0
|
||||
|
||||
crwdns56202:0crwdne56202:0
|
||||
|
||||
- crwdns56204:0crwdne56204:0
|
||||
- crwdns56206:0crwdne56206:0
|
||||
- crwdns56208:0crwdne56208:0
|
||||
- crwdns56210:0crwdne56210:0
|
||||
- crwdns56212:0crwdne56212:0
|
||||
- crwdns56214:0crwdne56214:0
|
||||
- crwdns56216:0crwdne56216:0
|
||||
- crwdns56218:0crwdne56218:0
|
||||
|
||||
crwdns56220:0crwdne56220:0
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: crwdns58050:0crwdne58050:0
|
||||
info: "crwdns58052:0crwdne58052:0"
|
||||
image: crwdns58054:0crwdne58054:0
|
||||
sectionInfo: crwdns58056:0crwdne58056:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/what-is-twenty/implementation_services.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns58058:0crwdne58058:0
|
||||
|
||||
crwdns58060:0crwdne58060:0
|
||||
|
||||
### crwdns58062:0crwdne58062:0
|
||||
|
||||
crwdns58064:0https://twenty.com/onboarding-packagescrwdne58064:0
|
||||
|
||||
- crwdns58066:0crwdne58066:0
|
||||
- crwdns58068:0crwdne58068:0
|
||||
- crwdns58070:0crwdne58070:0
|
||||
|
||||
### crwdns58072:0crwdne58072:0
|
||||
|
||||
crwdns58074:0crwdne58074:0 crwdns58076:0https://twenty.com/implementation-servicescrwdne58076:0
|
||||
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
---
|
||||
title: crwdns56802:0crwdne56802:0
|
||||
info: "crwdns56804:0crwdne56804:0"
|
||||
image: crwdns56806:0crwdne56806:0
|
||||
sectionInfo: crwdns56808:0crwdne56808:0
|
||||
---
|
||||
|
||||
crwdns63928:0{ VimeoEmbed }crwdne63928:0
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/import-export-data/cloud.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns56810:0crwdne56810:0
|
||||
|
||||
- crwdns56812:0crwdne56812:0
|
||||
- crwdns56814:0crwdne56814:0
|
||||
- crwdns56816:0crwdne56816:0
|
||||
|
||||
### crwdns56818:0crwdne56818:0
|
||||
|
||||
1. crwdns56820:0crwdne56820:0
|
||||
2. crwdns56822:0crwdne56822:0
|
||||
3. crwdns56824:0crwdne56824:0
|
||||
|
||||
### crwdns56826:0crwdne56826:0
|
||||
|
||||
crwdns56828:0crwdne56828:0
|
||||
|
||||
- crwdns56830:0crwdne56830:0
|
||||
- crwdns56832:0crwdne56832:0
|
||||
- crwdns56834:0crwdne56834:0 crwdns56836:0crwdne56836:0
|
||||
- crwdns56838:0crwdne56838:0 crwdns56840:0crwdne56840:0
|
||||
- crwdns56842:0crwdne56842:0 crwdns56844:0crwdne56844:0
|
||||
- crwdns56846:0crwdne56846:0
|
||||
- crwdns56848:0crwdne56848:0
|
||||
- crwdns56850:0crwdne56850:0 crwdns56852:0crwdne56852:0 crwdns56854:0crwdne56854:0
|
||||
<Warning>
|
||||
|
||||
crwdns56856:0crwdne56856:0
|
||||
|
||||
- crwdns56858:0crwdne56858:0 crwdns56860:0crwdne56860:0 crwdns56862:0crwdne56862:0
|
||||
|
||||
- crwdns56864:0crwdne56864:0
|
||||
crwdns56866:0crwdne56866:0 crwdns56868:0crwdne56868:0
|
||||
</Warning>
|
||||
|
||||
### crwdns56870:0crwdne56870:0
|
||||
|
||||
1. crwdns56872:0crwdne56872:0
|
||||
2. crwdns56874:0crwdne56874:0
|
||||
3. crwdns56876:0crwdne56876:0
|
||||
4. crwdns56878:0crwdne56878:0
|
||||
|
||||
- crwdns56880:0crwdne56880:0
|
||||
- crwdns56882:0crwdne56882:0
|
||||
- crwdns56884:0crwdne56884:0
|
||||
|
||||
5. crwdns56886:0crwdne56886:0 crwdns56888:0crwdne56888:0 crwdns56890:0crwdne56890:0
|
||||
6. crwdns56892:0crwdne56892:0
|
||||
|
||||
crwdns56894:0crwdne56894:0
|
||||
|
||||
### crwdns56896:0crwdne56896:0
|
||||
|
||||
<details>crwdns56898:0crwdne56898:0
|
||||
|
||||
crwdns56900:0crwdne56900:0
|
||||
|
||||
</details>
|
||||
|
||||
<details>crwdns56902:0crwdne56902:0
|
||||
|
||||
crwdns56904:0crwdne56904:0
|
||||
|
||||
</details>
|
||||
|
||||
<details>crwdns56906:0crwdne56906:0
|
||||
|
||||
crwdns56908:0crwdne56908:0 crwdns56910:0crwdne56910:0
|
||||
|
||||
</details>
|
||||
|
||||
<details>crwdns56912:0crwdne56912:0
|
||||
|
||||
crwdns56914:0crwdne56914:0 crwdns56916:0crwdne56916:0 crwdns56918:0crwdne56918:0
|
||||
crwdns56920:0crwdne56920:0 crwdns56922:0crwdne56922:0
|
||||
|
||||
</details>
|
||||
|
||||
## crwdns56924:0crwdne56924:0
|
||||
|
||||
crwdns56926:0crwdne56926:0
|
||||
crwdns56928:0crwdne56928:0
|
||||
|
||||
1. crwdns56930:0crwdne56930:0
|
||||
2. crwdns56932:0crwdne56932:0 crwdns56934:0crwdne56934:0
|
||||
3. crwdns56936:0crwdne56936:0
|
||||
4. crwdns56938:0crwdne56938:0
|
||||
5. crwdns56940:0crwdne56940:0 crwdns56942:0crwdne56942:0
|
||||
|
||||
<VimeoEmbed videoId="926226303" title="Video demonstration" />
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
---
|
||||
title: crwdns57664:0crwdne57664:0
|
||||
info: crwdns57666:0crwdne57666:0
|
||||
image: crwdns57668:0crwdne57668:0
|
||||
sectionInfo: crwdns57670:0crwdne57670:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/what-is-twenty/migrating_crm.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns57672:0crwdne57672:0
|
||||
|
||||
### crwdns57674:0crwdne57674:0 crwdns57676:0crwdne57676:0
|
||||
|
||||
- crwdns57678:0crwdne57678:0
|
||||
- crwdns57680:0crwdne57680:0
|
||||
- crwdns57682:0crwdne57682:0
|
||||
- crwdns57684:0crwdne57684:0
|
||||
|
||||
### crwdns57686:0crwdne57686:0 crwdns57688:0crwdne57688:0
|
||||
|
||||
crwdns57690:0/user-guide/data-model/customize-your-data-modelcrwdne57690:0
|
||||
|
||||
- crwdns57692:0crwdne57692:0
|
||||
- crwdns57694:0crwdne57694:0
|
||||
- crwdns57696:0crwdne57696:0
|
||||
- crwdns57698:0crwdne57698:0
|
||||
|
||||
## crwdns57700:0crwdne57700:0
|
||||
|
||||
### crwdns57702:0crwdne57702:0 crwdns57704:0crwdne57704:0
|
||||
|
||||
crwdns57706:0crwdne57706:0
|
||||
|
||||
1. crwdns57708:0crwdne57708:0
|
||||
2. crwdns57710:0crwdne57710:0
|
||||
3. crwdns57712:0crwdne57712:0
|
||||
|
||||
crwdns57714:0crwdne57714:0 crwdns57716:0/user-guide/getting-started/import-export-datacrwdne57716:0
|
||||
|
||||
### crwdns57718:0crwdne57718:0 crwdns57720:0crwdne57720:0
|
||||
|
||||
- crwdns57722:0crwdne57722:0
|
||||
- crwdns57724:0crwdne57724:0
|
||||
|
||||
## crwdns57726:0crwdne57726:0
|
||||
|
||||
### crwdns57728:0crwdne57728:0
|
||||
|
||||
- crwdns57730:0crwdne57730:0
|
||||
- crwdns57732:0crwdne57732:0
|
||||
|
||||
<Warning>crwdns64050:0crwdne64050:0</Warning>
|
||||
|
||||
- crwdns57736:0crwdne57736:0
|
||||
- crwdns57738:0crwdne57738:0
|
||||
|
||||
### crwdns57740:0crwdne57740:0
|
||||
|
||||
crwdns57742:0crwdne57742:0
|
||||
|
||||
- crwdns57744:0crwdne57744:0
|
||||
- crwdns57746:0crwdne57746:0
|
||||
- crwdns57748:0crwdne57748:0
|
||||
- crwdns57750:0crwdne57750:0
|
||||
crwdns57752:0/user-guide/getting-started/import-export-datacrwdne57752:0
|
||||
|
||||
## crwdns57754:0crwdne57754:0
|
||||
|
||||
### crwdns57756:0crwdne57756:0
|
||||
|
||||
- crwdns57758:0crwdne57758:0
|
||||
- crwdns57760:0crwdne57760:0
|
||||
|
||||
crwdns57762:0/user-guide/getting-started/implementation-servicescrwdne57762:0
|
||||
|
||||
## crwdns57764:0crwdne57764:0
|
||||
|
||||
crwdns57766:0crwdne57766:0
|
||||
|
||||
1. crwdns57768:0crwdne57768:0
|
||||
2. crwdns57770:0crwdne57770:0
|
||||
3. crwdns57772:0crwdne57772:0
|
||||
|
||||
## crwdns57774:0crwdne57774:0
|
||||
|
||||
crwdns64052:0crwdne64052:0
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
title: crwdns56030:0crwdne56030:0
|
||||
info: "crwdns56032:0crwdne56032:0"
|
||||
image: crwdns56034:0crwdne56034:0
|
||||
sectionInfo: crwdns56036:0crwdne56036:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/what-is-twenty/20.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns56038:0crwdne56038:0
|
||||
|
||||
## crwdns56040:0crwdne56040:0
|
||||
|
||||
crwdns56042:0crwdne56042:0
|
||||
crwdns56044:0crwdne56044:0
|
||||
crwdns56046:0crwdne56046:0
|
||||
|
||||
crwdns56048:0crwdne56048:0
|
||||
crwdns56050:0crwdne56050:0 crwdns56052:0crwdne56052:0
|
||||
|
||||
crwdns56054:0crwdne56054:0
|
||||
crwdns56056:0crwdne56056:0
|
||||
crwdns56058:0crwdne56058:0
|
||||
|
||||
## crwdns56060:0crwdne56060:0
|
||||
|
||||
crwdns56062:0crwdne56062:0
|
||||
|
||||
crwdns56064:0crwdne56064:0
|
||||
|
||||
crwdns56066:0crwdne56066:0
|
||||
|
||||
## crwdns56068:0crwdne56068:0
|
||||
|
||||
crwdns56070:0crwdne56070:0 crwdns56072:0/user-guide/crm-essentials/contact-and-account-managementcrwdne56072:0
|
||||
|
||||
crwdns56074:0crwdne56074:0 crwdns56076:0/user-guide/data-model/objectscrwdne56076:0
|
||||
|
||||
crwdns56078:0crwdne56078:0 crwdns56080:0/user-guide/data-model/fieldscrwdne56080:0
|
||||
|
||||
crwdns56082:0/user-guide/crm-essentials/pipelinecrwdne56082:0
|
||||
|
||||
crwdns56084:0/user-guide/crm-essentials/view-managementcrwdne56084:0
|
||||
|
||||
crwdns56086:0crwdne56086:0 crwdns56088:0/user-guide/workflows/getting-started-workflowscrwdne56088:0
|
||||
|
||||
crwdns56090:0crwdne56090:0 crwdns56092:0/user-guide/collaboration/emails-and-calendarscrwdne56092:0
|
||||
|
||||
crwdns56094:0crwdne56094:0 crwdns56096:0/user-guide/collaboration/notescrwdne56096:0
|
||||
|
||||
crwdns56098:0crwdne56098:0 crwdns56100:0/user-guide/collaboration/taskscrwdne56100:0
|
||||
|
||||
crwdns56102:0crwdne56102:0 crwdns56104:0/user-guide/settings/permissionscrwdne56104:0
|
||||
|
||||
crwdns56106:0crwdne56106:0 crwdns56108:0/user-guide/integrations-api/api-webhookscrwdne56108:0
|
||||
|
||||
## crwdns56110:0crwdne56110:0
|
||||
|
||||
crwdns56112:0https://app.twenty.comcrwdnd56112:0https://github.com/twentyhq/twentycrwdne56112:0
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
---
|
||||
title: crwdns54308:0crwdne54308:0
|
||||
info: "crwdns54310:0crwdne54310:0"
|
||||
image: crwdns54312:0crwdne54312:0
|
||||
sectionInfo: crwdns54314:0crwdne54314:0
|
||||
---
|
||||
|
||||
crwdns63922:0{ VimeoEmbed }crwdne63922:0
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/api/api.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns54316:0crwdne54316:0
|
||||
|
||||
crwdns54318:0crwdne54318:0
|
||||
|
||||
### crwdns54320:0crwdne54320:0
|
||||
|
||||
1. crwdns54322:0crwdne54322:0
|
||||
2. crwdns54324:0crwdne54324:0
|
||||
3. crwdns54326:0crwdne54326:0
|
||||
- crwdns54328:0crwdne54328:0
|
||||
- crwdns54330:0crwdne54330:0
|
||||
4. crwdns54332:0crwdne54332:0
|
||||
5. crwdns54334:0crwdne54334:0
|
||||
|
||||
crwdns54336:0crwdne54336:0
|
||||
|
||||
<Warning>
|
||||
crwdns54338:0crwdne54338:0 crwdns54340:0crwdne54340:0 crwdns54342:0crwdne54342:0
|
||||
</Warning>
|
||||
<VimeoEmbed videoId="928786722" title="Creating API key" />
|
||||
|
||||
### crwdns54344:0crwdne54344:0
|
||||
|
||||
crwdns54346:0crwdne54346:0
|
||||
|
||||
1. crwdns54348:0crwdne54348:0
|
||||
2. crwdns54350:0crwdne54350:0
|
||||
3. crwdns54352:0crwdne54352:0
|
||||
4. crwdns54354:0crwdne54354:0
|
||||
|
||||
crwdns54356:0crwdne54356:0
|
||||
|
||||
1. crwdns54358:0crwdne54358:0
|
||||
2. crwdns54360:0crwdne54360:0
|
||||
3. crwdns54362:0crwdne54362:0
|
||||
|
||||
## crwdns54364:0crwdne54364:0
|
||||
|
||||
crwdns54366:0crwdne54366:0
|
||||
|
||||
crwdns54368:0crwdne54368:0 crwdns54370:0/user-guide/workflows/getting-started-workflowscrwdne54370:0
|
||||
|
||||
crwdns54372:0crwdne54372:0
|
||||
|
||||
### crwdns54374:0crwdne54374:0
|
||||
|
||||
1. crwdns54376:0crwdne54376:0
|
||||
2. crwdns54378:0crwdne54378:0
|
||||
3. crwdns54380:0crwdne54380:0
|
||||
4. crwdns54382:0crwdne54382:0
|
||||
|
||||
crwdns54384:0crwdne54384:0
|
||||
|
||||
<VimeoEmbed videoId="928786708" title="Video demonstration" />
|
||||
|
||||
### crwdns54386:0crwdne54386:0
|
||||
|
||||
crwdns54388:0crwdne54388:0
|
||||
|
||||
1. crwdns54390:0crwdne54390:0
|
||||
2. crwdns54392:0crwdne54392:0
|
||||
3. crwdns54394:0crwdne54394:0
|
||||
4. crwdns54396:0crwdne54396:0
|
||||
|
||||
crwdns54398:0crwdne54398:0
|
||||
|
||||
1. crwdns54400:0crwdne54400:0
|
||||
2. crwdns54402:0crwdne54402:0
|
||||
3. crwdns54404:0crwdne54404:0
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
---
|
||||
title: crwdns55736:0crwdne55736:0
|
||||
info: crwdns55738:0crwdne55738:0
|
||||
image: crwdns55740:0crwdne55740:0
|
||||
sectionInfo: crwdns55742:0crwdne55742:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/api/api-overview.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns55744:0crwdne55744:0 crwdns55746:0crwdne55746:0
|
||||
|
||||
## crwdns55748:0crwdne55748:0
|
||||
|
||||
crwdns55750:0crwdne55750:0
|
||||
|
||||
- crwdns55752:0crwdne55752:0
|
||||
- crwdns55754:0crwdne55754:0
|
||||
- crwdns55756:0crwdne55756:0
|
||||
- crwdns55758:0crwdne55758:0
|
||||
|
||||
<Warning>
|
||||
crwdns55760:0crwdne55760:0 crwdns55762:0crwdne55762:0
|
||||
</Warning>
|
||||
|
||||
## crwdns55764:0crwdne55764:0
|
||||
|
||||
crwdns55766:0crwdne55766:0
|
||||
|
||||
### crwdns55768:0crwdne55768:0
|
||||
|
||||
#### crwdns55770:0crwdne55770:0 crwdns55772:0crwdne55772:0
|
||||
|
||||
- crwdns55774:0crwdne55774:0
|
||||
- crwdns55776:0crwdne55776:0
|
||||
- crwdns55778:0crwdne55778:0
|
||||
- crwdns55780:0crwdne55780:0
|
||||
- crwdns55782:0crwdne55782:0
|
||||
- crwdns55784:0crwdne55784:0
|
||||
|
||||
#### crwdns55786:0crwdne55786:0 crwdns55788:0crwdne55788:0
|
||||
|
||||
- crwdns55790:0crwdne55790:0
|
||||
- crwdns55792:0crwdne55792:0
|
||||
- crwdns55794:0crwdne55794:0
|
||||
- crwdns55796:0crwdne55796:0
|
||||
- crwdns55798:0crwdne55798:0
|
||||
- crwdns55800:0crwdne55800:0
|
||||
|
||||
### crwdns55802:0crwdne55802:0
|
||||
|
||||
#### crwdns55804:0crwdne55804:0 crwdns55806:0crwdne55806:0
|
||||
|
||||
- crwdns55808:0crwdne55808:0
|
||||
- crwdns55810:0crwdne55810:0
|
||||
- crwdns55812:0crwdne55812:0
|
||||
- crwdns55814:0crwdne55814:0
|
||||
- crwdns55816:0crwdne55816:0
|
||||
- crwdns55818:0crwdne55818:0
|
||||
|
||||
#### crwdns55820:0crwdne55820:0 crwdns55822:0crwdne55822:0
|
||||
|
||||
- crwdns55824:0crwdne55824:0
|
||||
- crwdns55826:0crwdne55826:0
|
||||
- crwdns55828:0crwdne55828:0
|
||||
- crwdns55830:0crwdne55830:0
|
||||
- crwdns55832:0crwdne55832:0
|
||||
- crwdns55834:0crwdne55834:0
|
||||
- crwdns55836:0crwdne55836:0
|
||||
|
||||
## crwdns55838:0crwdne55838:0
|
||||
|
||||
### crwdns55840:0crwdne55840:0
|
||||
|
||||
crwdns55842:0crwdne55842:0
|
||||
|
||||
- crwdns55844:0crwdne55844:0
|
||||
- crwdns55846:0crwdne55846:0
|
||||
- crwdns55848:0crwdne55848:0
|
||||
|
||||
### crwdns55850:0crwdne55850:0
|
||||
|
||||
- crwdns55852:0crwdne55852:0
|
||||
- crwdns55854:0crwdne55854:0
|
||||
- crwdns55856:0crwdne55856:0
|
||||
|
||||
## crwdns55858:0crwdne55858:0
|
||||
|
||||
1. crwdns55860:0crwdne55860:0
|
||||
2. crwdns55862:0crwdne55862:0
|
||||
3. crwdns55864:0crwdne55864:0
|
||||
4. crwdns55866:0crwdne55866:0
|
||||
|
||||
crwdns55868:0crwdne55868:0
|
||||
|
||||
## crwdns55870:0crwdne55870:0
|
||||
|
||||
### crwdns55872:0crwdne55872:0
|
||||
|
||||
- crwdns55874:0crwdne55874:0
|
||||
- crwdns55876:0crwdne55876:0
|
||||
- crwdns55878:0crwdne55878:0
|
||||
|
||||
### crwdns55880:0crwdne55880:0
|
||||
|
||||
- crwdns55882:0crwdne55882:0
|
||||
- crwdns55884:0crwdne55884:0
|
||||
- crwdns55886:0crwdne55886:0
|
||||
- crwdns55888:0crwdne55888:0
|
||||
|
||||
### crwdns55890:0crwdne55890:0
|
||||
|
||||
- crwdns55892:0crwdne55892:0
|
||||
- crwdns55894:0crwdne55894:0
|
||||
- crwdns55896:0crwdne55896:0
|
||||
- crwdns55898:0crwdne55898:0
|
||||
|
||||
### crwdns55900:0crwdne55900:0
|
||||
|
||||
- crwdns55902:0crwdne55902:0
|
||||
- crwdns55904:0crwdne55904:0
|
||||
- crwdns55906:0crwdne55906:0
|
||||
- crwdns55908:0crwdne55908:0
|
||||
|
||||
## crwdns55910:0crwdne55910:0
|
||||
|
||||
- crwdns55912:0/user-guide/integrations-api/api-webhookscrwdne55912:0
|
||||
- crwdns55914:0crwdne55914:0
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
title: crwdns57052:0crwdne57052:0
|
||||
info: "crwdns57054:0crwdne57054:0"
|
||||
image: crwdns57056:0crwdne57056:0
|
||||
sectionInfo: crwdns57058:0crwdne57058:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/integrations/plug.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns57060:0crwdne57060:0
|
||||
|
||||
### crwdns57062:0crwdne57062:0
|
||||
|
||||
crwdns57064:0crwdne57064:0
|
||||
|
||||
- crwdns57066:0crwdne57066:0
|
||||
- crwdns57068:0crwdne57068:0
|
||||
|
||||
crwdns57070:0/user-guide/settings/email-calendar-setupcrwdne57070:0
|
||||
|
||||
### crwdns57072:0crwdne57072:0
|
||||
|
||||
crwdns57074:0crwdne57074:0
|
||||
|
||||
- crwdns57076:0crwdne57076:0
|
||||
- crwdns57078:0crwdne57078:0
|
||||
- crwdns57080:0crwdne57080:0
|
||||
- crwdns57082:0crwdne57082:0
|
||||
|
||||
crwdns57084:0/user-guide/workflows/getting-started-workflowscrwdne57084:0
|
||||
|
||||
### crwdns57086:0crwdne57086:0
|
||||
|
||||
crwdns57088:0crwdne57088:0
|
||||
|
||||
1. crwdns57090:0https://zapier.com/apps/twenty/integrationscrwdne57090:0
|
||||
2. crwdns57092:0crwdne57092:0
|
||||
3. crwdns57094:0crwdne57094:0
|
||||
4. crwdns57096:0crwdne57096:0
|
||||
|
||||
## crwdns57098:0crwdne57098:0
|
||||
|
||||
### crwdns57100:0crwdne57100:0
|
||||
|
||||
crwdns57102:0crwdne57102:0 crwdns57104:0crwdne57104:0
|
||||
|
||||
- crwdns57106:0crwdne57106:0
|
||||
- crwdns57108:0crwdne57108:0
|
||||
- crwdns57110:0crwdne57110:0
|
||||
|
||||
### crwdns57112:0crwdne57112:0
|
||||
|
||||
crwdns57114:0crwdne57114:0
|
||||
|
||||
- crwdns57116:0crwdne57116:0
|
||||
- crwdns57118:0crwdne57118:0
|
||||
- crwdns57120:0crwdne57120:0
|
||||
|
||||
crwdns57122:0crwdne57122:0
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
---
|
||||
title: crwdns57498:0crwdne57498:0
|
||||
description: crwdns57500:0crwdne57500:0
|
||||
---
|
||||
|
||||
crwdns64202:0{ CardTitle }crwdne64202:0
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card href="/user-guide/getting-started/what-is-twenty" img="/images/user-guide/what-is-twenty/20.png">
|
||||
<CardTitle>crwdns64204:0crwdne64204:0</CardTitle>crwdns57502:0crwdne57502:0</Card>
|
||||
|
||||
<Card href="/user-guide/data-model/customize-your-data-model" img="/images/user-guide/fields/data_model.png">
|
||||
<CardTitle>crwdns64206:0crwdne64206:0</CardTitle>crwdns57504:0crwdne57504:0</Card>
|
||||
|
||||
<Card href="/user-guide/crm-essentials/contact-and-account-management" img="/images/user-guide/home/contact-and-account-management.png">
|
||||
<CardTitle>crwdns64208:0crwdne64208:0</CardTitle>crwdns57506:0crwdne57506:0</Card>
|
||||
|
||||
<Card href="/user-guide/workflows/getting-started-workflows" img="/images/user-guide/workflows/workflow.png">
|
||||
<CardTitle>crwdns64210:0crwdne64210:0</CardTitle>crwdns57508:0crwdne57508:0</Card>
|
||||
|
||||
<Card href="/user-guide/collaboration/emails-and-calendars" img="/images/user-guide/emails/emails_header.png">
|
||||
<CardTitle>crwdns64212:0crwdne64212:0</CardTitle>crwdns57510:0crwdne57510:0</Card>
|
||||
|
||||
<Card href="/user-guide/integrations-api/apis-overview" img="/images/user-guide/integrations/plug.png">
|
||||
<CardTitle>crwdns64214:0crwdne64214:0</CardTitle>crwdns57512:0crwdne57512:0</Card>
|
||||
|
||||
<Card href="/user-guide/reporting/reporting-overview" img="/images/user-guide/reporting/reporting.png">
|
||||
<CardTitle>crwdns64216:0crwdne64216:0</CardTitle>
|
||||
crwdns57514:0crwdne57514:0 crwdns57516:0crwdne57516:0
|
||||
</Card>
|
||||
|
||||
<Card href="/user-guide/settings/workspace-settings" img="/images/user-guide/setup/settings.png">
|
||||
<CardTitle>crwdns64218:0crwdne64218:0</CardTitle>crwdns57518:0crwdne57518:0</Card>
|
||||
|
||||
<Card href="/user-guide/pricing/billing-and-pricing-faq" img="/images/user-guide/setup/pricing.png">
|
||||
<CardTitle>crwdns64220:0crwdne64220:0</CardTitle>crwdns57520:0crwdne57520:0</Card>
|
||||
|
||||
<Card href="/user-guide/resources/glossary" img="/images/user-guide/glossary/glossary.png">
|
||||
<CardTitle>crwdns64222:0crwdne64222:0</CardTitle>crwdns57522:0crwdne57522:0</Card>
|
||||
</CardGroup>
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: crwdns56976:0crwdne56976:0
|
||||
info: "crwdns56978:0crwdne56978:0"
|
||||
image: crwdns56980:0crwdne56980:0
|
||||
sectionInfo: crwdns56982:0crwdne56982:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/setup/pricing.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns56984:0crwdne56984:0
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Can I use Twenty for free while self-hosting?">
|
||||
crwdns56986:0crwdne56986:0 crwdns56988:0crwdne56988:0 crwdns56990:0crwdne56990:0
|
||||
|
||||
crwdns56992:0crwdne56992:0
|
||||
crwdns56994:0crwdne56994:0
|
||||
|
||||
<Accordion title="Do you offer free seats for view-only users?">
|
||||
crwdns56996:0crwdne56996:0 crwdns56998:0crwdne56998:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Where can I switch my subscription to the Organization plan?">
|
||||
crwdns57000:0crwdne57000:0 crwdns57002:0crwdne57002:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Where can I switch my subscription to the Pro plan?">crwdns57004:0crwdne57004:0</Accordion>
|
||||
|
||||
<Accordion title="Where can I switch my subscription to Yearly?">
|
||||
crwdns57006:0crwdne57006:0 crwdns57008:0crwdne57008:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Where can I switch my subscription to Monthly?">crwdns57010:0crwdne57010:0</Accordion>
|
||||
|
||||
<Accordion title="Where can I see my credit usage?">crwdns57012:0crwdne57012:0</Accordion>
|
||||
|
||||
<Accordion title="How many workflow credits do we have?">
|
||||
crwdns57014:0crwdne57014:0 crwdns57016:0crwdne57016:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="How does workflow credit consumption work?">
|
||||
crwdns57018:0crwdne57018:0 crwdns57020:0crwdne57020:0
|
||||
|
||||
crwdns57022:0crwdne57022:0 crwdns57024:0crwdne57024:0
|
||||
crwdns57026:0crwdne57026:0
|
||||
|
||||
<Accordion title="Can I buy more workflow credits?">crwdns57028:0crwdne57028:0</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## crwdns57030:0crwdne57030:0
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Where can I manage the Billing details?">crwdns57032:0crwdne57032:0</Accordion>
|
||||
|
||||
<Accordion title="Where can I update my payment method?">
|
||||
crwdns57034:0crwdne57034:0 crwdns57036:0crwdne57036:0 crwdns57038:0crwdne57038:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Where can I update my billing information?">
|
||||
crwdns57040:0crwdne57040:0 crwdns57042:0crwdne57042:0 crwdns57044:0crwdne57044:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Where can I access my invoices?">
|
||||
crwdns57046:0crwdne57046:0 crwdns57048:0crwdne57048:0 crwdns57050:0crwdne57050:0
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: crwdns57124:0crwdne57124:0
|
||||
info: crwdns57126:0crwdne57126:0
|
||||
image: crwdns57128:0crwdne57128:0
|
||||
sectionInfo: crwdns57130:0crwdne57130:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/reporting/reporting.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns57132:0crwdne57132:0
|
||||
|
||||
### crwdns57134:0crwdne57134:0
|
||||
|
||||
crwdns57136:0crwdne57136:0
|
||||
|
||||
### crwdns57138:0crwdne57138:0
|
||||
|
||||
crwdns57140:0crwdne57140:0
|
||||
|
||||
### crwdns57142:0crwdne57142:0
|
||||
|
||||
crwdns57144:0crwdne57144:0
|
||||
|
||||
## crwdns57146:0crwdne57146:0
|
||||
|
||||
crwdns57148:0https://github.com/twentyhq/twentycrwdne57148:0
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
---
|
||||
title: crwdns55532:0crwdne55532:0
|
||||
info: "crwdns55534:0crwdne55534:0"
|
||||
image: crwdns55536:0crwdne55536:0
|
||||
sectionInfo: crwdns55538:0crwdne55538:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/github/github-header.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns55540:0crwdne55540:0
|
||||
|
||||
crwdns55542:0crwdne55542:0 crwdns55544:0crwdne55544:0
|
||||
|
||||
crwdns55546:0https://github.com/twentyhq/twentycrwdne55546:0
|
||||
|
||||
## crwdns55548:0crwdne55548:0
|
||||
|
||||
crwdns55550:0crwdne55550:0 crwdns55552:0crwdne55552:0
|
||||
|
||||
### crwdns55554:0crwdne55554:0
|
||||
|
||||
crwdns55556:0crwdne55556:0 crwdns55558:0https://github.com/twentyhq/twenty/issues/newcrwdne55558:0
|
||||
|
||||
crwdns55560:0crwdne55560:0
|
||||
|
||||
### crwdns55562:0crwdne55562:0
|
||||
|
||||
crwdns55564:0crwdne55564:0 crwdns55566:0https://github.com/twentyhq/twenty/discussionscrwdne55566:0
|
||||
|
||||
crwdns55568:0crwdne55568:0
|
||||
|
||||
### crwdns55570:0crwdne55570:0
|
||||
|
||||
crwdns55572:0crwdne55572:0
|
||||
|
||||
1. crwdns55574:0https://github.com/twentyhq/twenty/issuescrwdne55574:0
|
||||
2. crwdns55576:0https://github.com/twentyhq/twenty/labels/good%20first%20issuecrwdne55576:0
|
||||
3. crwdns55578:0crwdne55578:0
|
||||
|
||||
crwdns55580:0crwdne55580:0
|
||||
|
||||
crwdns55582:0crwdne55582:0
|
||||
|
||||
### crwdns55584:0crwdne55584:0
|
||||
|
||||
crwdns55586:0https://github.com/twentyhq/twenty/blob/main/.github/CODE_OF_CONDUCT.mdcrwdne55586:0
|
||||
|
||||
## crwdns55588:0crwdne55588:0
|
||||
|
||||
crwdns55590:0https://discord.gg/cx5n4Jzs57crwdne55590:0
|
||||
|
||||
crwdns55592:0crwdne55592:0
|
||||
|
||||
crwdns55594:0crwdne55594:0
|
||||
@@ -0,0 +1,95 @@
|
||||
---
|
||||
title: crwdns56700:0crwdne56700:0
|
||||
info: "crwdns56702:0crwdne56702:0"
|
||||
image: crwdns56704:0crwdne56704:0
|
||||
sectionInfo: crwdns56706:0crwdne56706:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/glossary/glossary.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns56708:0crwdne56708:0
|
||||
|
||||
crwdns56710:0crwdne56710:0
|
||||
|
||||
## crwdns56712:0crwdne56712:0
|
||||
|
||||
crwdns56714:0crwdne56714:0
|
||||
|
||||
## crwdns56716:0crwdne56716:0
|
||||
|
||||
crwdns56718:0crwdne56718:0
|
||||
|
||||
- crwdns56720:0crwdne56720:0
|
||||
- crwdns56722:0crwdne56722:0
|
||||
|
||||
## crwdns56724:0crwdne56724:0
|
||||
|
||||
crwdns56726:0crwdne56726:0
|
||||
|
||||
## crwdns56728:0crwdne56728:0
|
||||
|
||||
crwdns56730:0crwdne56730:0
|
||||
|
||||
## crwdns56732:0crwdne56732:0
|
||||
|
||||
crwdns56734:0crwdne56734:0
|
||||
|
||||
## crwdns56736:0crwdne56736:0
|
||||
|
||||
crwdns56738:0crwdne56738:0
|
||||
|
||||
## crwdns56740:0crwdne56740:0
|
||||
|
||||
crwdns56742:0crwdne56742:0
|
||||
|
||||
## crwdns56744:0crwdne56744:0
|
||||
|
||||
crwdns56746:0crwdne56746:0 crwdns56748:0crwdne56748:0
|
||||
|
||||
## crwdns56750:0crwdne56750:0
|
||||
|
||||
crwdns56752:0crwdne56752:0 crwdns56754:0crwdne56754:0
|
||||
|
||||
## crwdns56756:0crwdne56756:0
|
||||
|
||||
crwdns56758:0crwdne56758:0
|
||||
|
||||
## crwdns56760:0crwdne56760:0
|
||||
|
||||
crwdns56762:0crwdne56762:0
|
||||
|
||||
## crwdns56764:0crwdne56764:0
|
||||
|
||||
crwdns56766:0crwdne56766:0
|
||||
|
||||
## crwdns56768:0crwdne56768:0
|
||||
|
||||
crwdns56770:0crwdne56770:0
|
||||
|
||||
## crwdns56772:0crwdne56772:0
|
||||
|
||||
crwdns56774:0crwdne56774:0
|
||||
|
||||
## crwdns56776:0crwdne56776:0
|
||||
|
||||
crwdns56778:0crwdne56778:0
|
||||
|
||||
## crwdns56780:0crwdne56780:0
|
||||
|
||||
crwdns56782:0crwdne56782:0
|
||||
|
||||
## crwdns56784:0crwdne56784:0
|
||||
|
||||
crwdns56786:0crwdne56786:0
|
||||
|
||||
## crwdns56788:0crwdne56788:0
|
||||
|
||||
crwdns56790:0crwdne56790:0 crwdns56792:0crwdne56792:0
|
||||
crwdns56794:0crwdne56794:0
|
||||
|
||||
## crwdns56796:0crwdne56796:0
|
||||
|
||||
crwdns56798:0crwdne56798:0 crwdns56800:0crwdne56800:0
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
---
|
||||
title: crwdns57296:0crwdne57296:0
|
||||
info: "crwdns57298:0crwdne57298:0"
|
||||
image: crwdns57300:0crwdne57300:0
|
||||
sectionInfo: crwdns57302:0crwdne57302:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/setup/domains-settings.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns57304:0crwdne57304:0
|
||||
|
||||
crwdns57306:0crwdne57306:0
|
||||
|
||||
- crwdns57308:0crwdne57308:0
|
||||
- crwdns57310:0crwdne57310:0
|
||||
|
||||
## crwdns57312:0crwdne57312:0
|
||||
|
||||
crwdns57314:0crwdne57314:0
|
||||
|
||||
### crwdns57316:0crwdne57316:0
|
||||
|
||||
- crwdns57318:0crwdne57318:0
|
||||
- crwdns57320:0crwdne57320:0
|
||||
- crwdns57322:0crwdne57322:0
|
||||
|
||||
### crwdns57324:0crwdne57324:0
|
||||
|
||||
- crwdns57326:0crwdne57326:0
|
||||
- crwdns57328:0crwdne57328:0
|
||||
- crwdns57330:0crwdne57330:0
|
||||
|
||||
## crwdns57332:0crwdne57332:0
|
||||
|
||||
1. crwdns57334:0crwdne57334:0
|
||||
2. crwdns57336:0crwdne57336:0
|
||||
3. crwdns57338:0crwdne57338:0
|
||||
|
||||
crwdns57340:0crwdne57340:0
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
---
|
||||
title: crwdns58930:0crwdne58930:0
|
||||
info: "crwdns58932:0crwdne58932:0"
|
||||
image: crwdns58934:0crwdne58934:0
|
||||
sectionInfo: crwdns58936:0crwdne58936:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/emails/emails_header.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns58938:0crwdne58938:0
|
||||
|
||||
### crwdns58940:0crwdne58940:0
|
||||
|
||||
1. crwdns58942:0crwdne58942:0
|
||||
2. crwdns58944:0crwdne58944:0
|
||||
3. crwdns58946:0crwdne58946:0
|
||||
4. crwdns58948:0crwdne58948:0
|
||||
5. crwdns58950:0crwdne58950:0
|
||||
|
||||
### crwdns58952:0crwdne58952:0
|
||||
|
||||
1. crwdns58954:0crwdne58954:0
|
||||
2. crwdns58956:0crwdne58956:0
|
||||
3. crwdns58958:0crwdne58958:0
|
||||
4. crwdns58960:0crwdne58960:0
|
||||
5. crwdns58962:0crwdne58962:0
|
||||
|
||||
### crwdns58964:0crwdne58964:0
|
||||
|
||||
crwdns58966:0crwdne58966:0
|
||||
|
||||
1. crwdns58968:0crwdne58968:0
|
||||
2. crwdns58970:0crwdne58970:0
|
||||
3. crwdns58972:0crwdne58972:0
|
||||
4. crwdns58974:0crwdne58974:0
|
||||
5. crwdns58976:0crwdne58976:0
|
||||
|
||||
### crwdns58978:0crwdne58978:0
|
||||
|
||||
- crwdns58980:0crwdne58980:0
|
||||
- crwdns58982:0crwdne58982:0
|
||||
- crwdns58984:0crwdne58984:0
|
||||
|
||||
<Warning>
|
||||
crwdns58986:0crwdne58986:0 crwdns58988:0crwdne58988:0
|
||||
</Warning>
|
||||
|
||||
## crwdns58990:0crwdne58990:0
|
||||
|
||||
### crwdns58992:0crwdne58992:0
|
||||
|
||||
crwdns58994:0crwdne58994:0
|
||||
|
||||
- crwdns58996:0crwdne58996:0
|
||||
- crwdns58998:0crwdne58998:0
|
||||
- crwdns59000:0crwdne59000:0
|
||||
|
||||
### crwdns59002:0crwdne59002:0
|
||||
|
||||
- crwdns59004:0crwdne59004:0
|
||||
- crwdns59006:0crwdne59006:0
|
||||
- crwdns59008:0crwdne59008:0
|
||||
- crwdns59010:0crwdne59010:0
|
||||
|
||||
### crwdns59012:0crwdne59012:0
|
||||
|
||||
crwdns59014:0crwdne59014:0
|
||||
|
||||
1. crwdns59016:0crwdne59016:0
|
||||
2. crwdns59018:0crwdne59018:0
|
||||
3. crwdns59020:0crwdne59020:0
|
||||
- crwdns59022:0crwdne59022:0
|
||||
- crwdns59024:0crwdne59024:0
|
||||
- crwdns59026:0crwdne59026:0
|
||||
- crwdns59028:0crwdne59028:0
|
||||
|
||||
crwdns59030:0crwdne59030:0
|
||||
|
||||
crwdns59032:0crwdne59032:0
|
||||
|
||||
- crwdns59034:0crwdne59034:0
|
||||
- crwdns59036:0crwdne59036:0
|
||||
- crwdns59038:0crwdne59038:0
|
||||
|
||||
crwdns59040:0crwdne59040:0 crwdns59042:0crwdne59042:0
|
||||
|
||||
## crwdns59044:0crwdne59044:0
|
||||
|
||||
### crwdns59046:0crwdne59046:0
|
||||
|
||||
crwdns59048:0crwdne59048:0
|
||||
|
||||
- crwdns59050:0crwdne59050:0
|
||||
- crwdns59052:0crwdne59052:0
|
||||
|
||||
### crwdns59054:0crwdne59054:0
|
||||
|
||||
- crwdns59056:0crwdne59056:0
|
||||
- crwdns59058:0crwdne59058:0
|
||||
|
||||
### crwdns59060:0crwdne59060:0
|
||||
|
||||
- crwdns59062:0crwdne59062:0
|
||||
- crwdns59064:0crwdne59064:0
|
||||
|
||||
crwdns59066:0crwdne59066:0
|
||||
|
||||
- crwdns59068:0crwdne59068:0
|
||||
- crwdns59070:0crwdne59070:0
|
||||
- crwdns59072:0crwdne59072:0
|
||||
|
||||
## crwdns59074:0crwdne59074:0
|
||||
|
||||
crwdns59076:0crwdne59076:0
|
||||
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: crwdns54502:0crwdne54502:0
|
||||
info: "crwdns54504:0crwdne54504:0"
|
||||
image: crwdns54506:0crwdne54506:0
|
||||
sectionInfo: crwdns54508:0crwdne54508:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/setup/experience.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns54510:0crwdne54510:0
|
||||
|
||||
### crwdns54512:0crwdne54512:0
|
||||
|
||||
crwdns54514:0crwdne54514:0
|
||||
|
||||
- crwdns54516:0crwdne54516:0
|
||||
- crwdns54518:0crwdne54518:0
|
||||
- crwdns54520:0crwdne54520:0
|
||||
|
||||
## crwdns54522:0crwdne54522:0
|
||||
|
||||
### crwdns54524:0crwdne54524:0
|
||||
|
||||
crwdns54526:0crwdne54526:0
|
||||
|
||||
- crwdns54528:0crwdne54528:0
|
||||
- crwdns54530:0crwdne54530:0
|
||||
|
||||
### crwdns54532:0crwdne54532:0
|
||||
|
||||
crwdns54534:0crwdne54534:0
|
||||
|
||||
- crwdns54536:0crwdne54536:0
|
||||
- crwdns54538:0crwdne54538:0
|
||||
|
||||
### crwdns54540:0crwdne54540:0
|
||||
|
||||
crwdns54542:0crwdne54542:0
|
||||
|
||||
- crwdns54544:0crwdne54544:0
|
||||
- crwdns54546:0crwdne54546:0
|
||||
- crwdns54548:0crwdne54548:0
|
||||
|
||||
### crwdns54550:0crwdne54550:0
|
||||
|
||||
crwdns54552:0crwdne54552:0
|
||||
|
||||
- crwdns54554:0crwdne54554:0
|
||||
- crwdns54556:0crwdne54556:0
|
||||
- crwdns54558:0crwdne54558:0
|
||||
|
||||
### crwdns54560:0crwdne54560:0
|
||||
|
||||
crwdns54562:0crwdne54562:0
|
||||
|
||||
- crwdns54564:0crwdne54564:0
|
||||
- crwdns54566:0crwdne54566:0
|
||||
- crwdns54568:0crwdne54568:0
|
||||
|
||||
## crwdns54570:0crwdne54570:0
|
||||
|
||||
1. crwdns54572:0crwdne54572:0
|
||||
2. crwdns54574:0crwdne54574:0
|
||||
3. crwdns54576:0crwdne54576:0
|
||||
4. crwdns54578:0crwdne54578:0
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
---
|
||||
title: crwdns57778:0crwdne57778:0
|
||||
info: "crwdns57780:0crwdne57780:0"
|
||||
image: crwdns57782:0crwdne57782:0
|
||||
sectionInfo: crwdns57784:0crwdne57784:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/setup/members.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns57786:0crwdne57786:0
|
||||
|
||||
### crwdns57788:0crwdne57788:0
|
||||
|
||||
1. crwdns57790:0crwdne57790:0
|
||||
2. crwdns57792:0crwdne57792:0
|
||||
3. crwdns57794:0crwdne57794:0
|
||||
4. crwdns57796:0crwdne57796:0
|
||||
|
||||
### crwdns57798:0crwdne57798:0
|
||||
|
||||
1. crwdns57800:0crwdne57800:0
|
||||
2. crwdns57802:0crwdne57802:0
|
||||
3. crwdns57804:0crwdne57804:0
|
||||
4. crwdns57806:0crwdne57806:0
|
||||
|
||||
## crwdns57808:0crwdne57808:0
|
||||
|
||||
### crwdns57810:0crwdne57810:0
|
||||
|
||||
1. crwdns57812:0crwdne57812:0
|
||||
2. crwdns57814:0crwdne57814:0
|
||||
3. crwdns57816:0crwdne57816:0
|
||||
4. crwdns57818:0crwdne57818:0
|
||||
|
||||
crwdns57820:0crwdne57820:0
|
||||
|
||||
## crwdns57822:0crwdne57822:0
|
||||
|
||||
crwdns57824:0/user-guide/settings/permissionscrwdne57824:0
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
---
|
||||
title: crwdns56222:0crwdne56222:0
|
||||
info: "crwdns56224:0crwdne56224:0"
|
||||
image: crwdns56226:0crwdne56226:0
|
||||
sectionInfo: crwdns56228:0crwdne56228:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/permissions/permissions.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns56230:0crwdne56230:0
|
||||
|
||||
- crwdns56232:0crwdne56232:0
|
||||
- crwdns56234:0crwdne56234:0
|
||||
- crwdns56236:0crwdne56236:0
|
||||
|
||||
## crwdns56238:0crwdne56238:0
|
||||
|
||||
crwdns56240:0crwdne56240:0
|
||||
|
||||
1. crwdns56242:0crwdne56242:0
|
||||
2. crwdns56244:0crwdne56244:0
|
||||
3. crwdns56246:0crwdne56246:0
|
||||
4. crwdns56248:0crwdne56248:0
|
||||
5. crwdns56250:0crwdne56250:0
|
||||
|
||||
## crwdns56252:0crwdne56252:0
|
||||
|
||||
crwdns56254:0crwdne56254:0
|
||||
|
||||
1. crwdns56256:0crwdne56256:0
|
||||
2. crwdns56258:0crwdne56258:0
|
||||
3. crwdns56260:0crwdne56260:0
|
||||
4. crwdns56262:0crwdne56262:0
|
||||
|
||||
crwdns56264:0crwdne56264:0 crwdns56266:0crwdne56266:0 crwdns56268:0crwdne56268:0
|
||||
|
||||
## crwdns56270:0crwdne56270:0
|
||||
|
||||
### crwdns56272:0crwdne56272:0
|
||||
|
||||
- crwdns56274:0crwdne56274:0
|
||||
- crwdns56276:0crwdne56276:0
|
||||
- crwdns56278:0crwdne56278:0
|
||||
|
||||
### crwdns56280:0crwdne56280:0
|
||||
|
||||
1. crwdns56282:0crwdne56282:0
|
||||
2. crwdns56284:0crwdne56284:0
|
||||
3. crwdns56286:0crwdne56286:0
|
||||
4. crwdns56288:0crwdne56288:0
|
||||
5. crwdns56290:0crwdne56290:0
|
||||
6. crwdns56292:0crwdne56292:0
|
||||
|
||||
### crwdns56294:0crwdne56294:0
|
||||
|
||||
1. crwdns56296:0crwdne56296:0
|
||||
2. crwdns56298:0crwdne56298:0
|
||||
3. crwdns56300:0crwdne56300:0
|
||||
4. crwdns56302:0crwdne56302:0
|
||||
|
||||
crwdns56304:0crwdne56304:0 crwdns56306:0/user-guide/settings/member-managementcrwdne56306:0
|
||||
|
||||
## crwdns56308:0crwdne56308:0
|
||||
|
||||
crwdns56310:0crwdne56310:0
|
||||
|
||||
### crwdns56312:0crwdne56312:0
|
||||
|
||||
crwdns56314:0crwdne56314:0
|
||||
|
||||
#### crwdns56316:0crwdne56316:0
|
||||
|
||||
- crwdns56318:0crwdne56318:0
|
||||
- crwdns56320:0crwdne56320:0 crwdns56322:0crwdne56322:0
|
||||
|
||||
#### crwdns56324:0crwdne56324:0
|
||||
|
||||
- crwdns56326:0crwdne56326:0
|
||||
- crwdns56328:0crwdne56328:0
|
||||
- crwdns56330:0crwdne56330:0
|
||||
|
||||
#### crwdns56332:0crwdne56332:0
|
||||
|
||||
crwdns56334:0crwdne56334:0
|
||||
|
||||
- crwdns56336:0crwdne56336:0
|
||||
- crwdns56338:0crwdne56338:0
|
||||
- crwdns56340:0crwdne56340:0
|
||||
|
||||
crwdns56342:0crwdne56342:0
|
||||
|
||||
### crwdns56344:0crwdne56344:0
|
||||
|
||||
crwdns56346:0crwdne56346:0
|
||||
|
||||
- crwdns56348:0crwdne56348:0
|
||||
- crwdns56350:0crwdne56350:0
|
||||
|
||||
### crwdns56352:0crwdne56352:0
|
||||
|
||||
crwdns56354:0crwdne56354:0
|
||||
|
||||
- crwdns56356:0crwdne56356:0
|
||||
- crwdns56358:0crwdne56358:0
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
title: crwdns54654:0crwdne54654:0
|
||||
info: "crwdns54656:0crwdne54656:0"
|
||||
image: crwdns54658:0crwdne54658:0
|
||||
sectionInfo: crwdns54660:0crwdne54660:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/setup/profile.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns54662:0crwdne54662:0
|
||||
|
||||
### crwdns54664:0crwdne54664:0
|
||||
|
||||
- crwdns54666:0crwdne54666:0
|
||||
- crwdns54668:0crwdne54668:0
|
||||
- crwdns54670:0crwdne54670:0
|
||||
|
||||
## crwdns54672:0crwdne54672:0
|
||||
|
||||
### crwdns54674:0crwdne54674:0
|
||||
|
||||
crwdns54678:0crwdne54678:0
|
||||
|
||||
1. crwdns54680:0crwdne54680:0
|
||||
2. crwdns54682:0crwdne54682:0
|
||||
3. crwdns54684:0crwdne54684:0
|
||||
4. crwdns54688:0crwdne54688:0
|
||||
|
||||
### crwdns54692:0crwdne54692:0
|
||||
|
||||
- crwdns54696:0crwdne54696:0
|
||||
- crwdns54702:0crwdne54702:0
|
||||
|
||||
## crwdns54706:0crwdne54706:0
|
||||
|
||||
### crwdns54710:0crwdne54710:0
|
||||
|
||||
<Warning>
|
||||
crwdns54716:0crwdne54716:0 crwdns54726:0crwdne54726:0
|
||||
</Warning>
|
||||
|
||||
crwdns54732:0crwdne54732:0
|
||||
|
||||
1. crwdns54736:0crwdne54736:0
|
||||
2. crwdns54740:0crwdne54740:0
|
||||
3. crwdns54744:0crwdne54744:0
|
||||
4. crwdns54748:0crwdne54748:0
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
---
|
||||
title: crwdns56944:0crwdne56944:0
|
||||
info: "crwdns56946:0crwdne56946:0"
|
||||
image: crwdns56948:0crwdne56948:0
|
||||
sectionInfo: crwdns56950:0crwdne56950:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/setup/releases.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns56952:0crwdne56952:0
|
||||
|
||||
crwdns56954:0crwdne56954:0
|
||||
|
||||
- crwdns56956:0crwdne56956:0
|
||||
- crwdns56958:0crwdne56958:0
|
||||
|
||||
## crwdns56960:0crwdne56960:0
|
||||
|
||||
crwdns56962:0crwdne56962:0
|
||||
|
||||
- crwdns56964:0crwdne56964:0
|
||||
- crwdns56966:0crwdne56966:0
|
||||
|
||||
## crwdns56968:0crwdne56968:0
|
||||
|
||||
1. crwdns56970:0crwdne56970:0
|
||||
2. crwdns56972:0crwdne56972:0
|
||||
|
||||
crwdns56974:0/user-guide/resources/glossarycrwdne56974:0
|
||||
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
---
|
||||
title: crwdns54406:0crwdne54406:0
|
||||
info: "crwdns54408:0crwdne54408:0"
|
||||
image: crwdns54410:0crwdne54410:0
|
||||
sectionInfo: crwdns54412:0crwdne54412:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/what-is-twenty/faq.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns54414:0crwdne54414:0
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Can I have several workspaces?">
|
||||
crwdns54416:0crwdne54416:0 crwdns54418:0crwdne54418:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="I accidentally created multiple workspaces but only need one. What should I do?">crwdns54420:0crwdne54420:0
|
||||
|
||||
<Warning>crwdns54422:0crwdne54422:0</Warning>
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="How can I disable my workspace?">crwdns54424:0crwdne54424:0</Accordion>
|
||||
|
||||
<Accordion title="How can I delete my workspace?">
|
||||
crwdns54426:0crwdne54426:0 crwdns54428:0crwdne54428:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Can I limit which emails get synced to Twenty?">
|
||||
crwdns54430:0crwdne54430:0 crwdns54432:0crwdne54432:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="How do I decide which emails to import into Twenty?">crwdns54434:0crwdne54434:0</Accordion>
|
||||
|
||||
<Accordion title="Do you provide an email address to CC for selective email syncing?">
|
||||
crwdns54436:0crwdne54436:0 crwdns54438:0crwdne54438:0 crwdns54440:0crwdne54440:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Can I connect multiple email accounts to Twenty?">
|
||||
crwdns54442:0crwdne54442:0 crwdns54444:0crwdne54444:0 crwdns54446:0crwdne54446:0 crwdns54448:0crwdne54448:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="How do I control who can see what in my workspace?">
|
||||
crwdns54450:0crwdne54450:0 crwdns54452:0crwdne54452:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Can I customize my workspace domain?">
|
||||
crwdns54454:0crwdne54454:0 crwdns54456:0crwdne54456:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="What are Lab features and should I enable them?">
|
||||
crwdns54458:0crwdne54458:0 crwdns54460:0crwdne54460:0 crwdns54462:0crwdne54462:0
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="How do I change my workspace appearance and regional settings?">crwdns54464:0crwdne54464:0</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
---
|
||||
title: crwdns54466:0crwdne54466:0
|
||||
info: "crwdns54468:0crwdne54468:0"
|
||||
image: crwdns54470:0crwdne54470:0
|
||||
sectionInfo: crwdns54472:0crwdne54472:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/setup/settings.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns54474:0crwdne54474:0
|
||||
|
||||
- crwdns54476:0crwdne54476:0
|
||||
- crwdns54478:0crwdne54478:0
|
||||
- crwdns54480:0crwdne54480:0
|
||||
|
||||
## crwdns54482:0crwdne54482:0
|
||||
|
||||
- crwdns54484:0crwdne54484:0
|
||||
- crwdns54486:0crwdne54486:0
|
||||
|
||||
## crwdns54488:0crwdne54488:0
|
||||
|
||||
<Warning>
|
||||
crwdns54490:0crwdne54490:0 crwdns54492:0crwdne54492:0
|
||||
</Warning>
|
||||
|
||||
crwdns54494:0crwdne54494:0
|
||||
|
||||
1. crwdns54496:0crwdne54496:0
|
||||
2. crwdns54498:0crwdne54498:0
|
||||
|
||||
crwdns54500:0crwdne54500:0
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
title: crwdns54676:0crwdne54676:0
|
||||
info: "crwdns54686:0crwdne54686:0"
|
||||
image: crwdns54690:0crwdne54690:0
|
||||
sectionInfo: crwdns54694:0crwdne54694:0
|
||||
---
|
||||
|
||||
crwdns63924:0{ VimeoEmbed }crwdne63924:0
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/kanban-views/kanban.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns54698:0crwdne54698:0
|
||||
|
||||
crwdns54700:0crwdne54700:0
|
||||
|
||||
## crwdns54704:0crwdne54704:0
|
||||
|
||||
crwdns54708:0crwdne54708:0 crwdns54712:0crwdne54712:0
|
||||
|
||||
<VimeoEmbed videoId="927888627" title="Video demonstration" />
|
||||
|
||||
## crwdns54714:0crwdne54714:0
|
||||
|
||||
crwdns54718:0crwdne54718:0
|
||||
|
||||
### crwdns54720:0crwdne54720:0
|
||||
|
||||
crwdns54722:0crwdne54722:0
|
||||
|
||||
<VimeoEmbed videoId="927890428" title="Video demonstration" />
|
||||
|
||||
### crwdns54724:0crwdne54724:0
|
||||
|
||||
crwdns54728:0crwdne54728:0
|
||||
|
||||
crwdns54730:0crwdne54730:0
|
||||
|
||||
## crwdns54734:0crwdne54734:0
|
||||
|
||||
crwdns54738:0crwdne54738:0 crwdns54742:0crwdne54742:0 crwdns54746:0crwdne54746:0 crwdns54750:0crwdne54750:0
|
||||
|
||||
crwdns54752:0crwdne54752:0
|
||||
|
||||
crwdns54754:0crwdne54754:0
|
||||
|
||||
## crwdns54756:0crwdne54756:0
|
||||
|
||||
crwdns54758:0crwdne54758:0 crwdns54760:0crwdne54760:0
|
||||
|
||||
crwdns54762:0crwdne54762:0
|
||||
@@ -0,0 +1,98 @@
|
||||
---
|
||||
title: crwdns57360:0crwdne57360:0
|
||||
info: "crwdns57370:0crwdne57370:0"
|
||||
image: crwdns57374:0crwdne57374:0
|
||||
sectionInfo: crwdns57378:0crwdne57378:0
|
||||
---
|
||||
|
||||
crwdns63932:0{ VimeoEmbed }crwdne63932:0
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/views/filter.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns57382:0crwdne57382:0
|
||||
|
||||
crwdns57386:0crwdne57386:0 crwdns57390:0crwdne57390:0 crwdns57394:0crwdne57394:0
|
||||
|
||||
### crwdns57398:0crwdne57398:0
|
||||
|
||||
crwdns57402:0crwdne57402:0 crwdns57404:0crwdne57404:0
|
||||
|
||||
crwdns57406:0crwdne57406:0
|
||||
|
||||
## crwdns57408:0crwdne57408:0
|
||||
|
||||
crwdns57410:0crwdne57410:0
|
||||
|
||||
### crwdns57412:0crwdne57412:0
|
||||
|
||||
crwdns57414:0crwdne57414:0 crwdns57416:0crwdne57416:0
|
||||
|
||||
#### crwdns57418:0crwdne57418:0
|
||||
|
||||
1. crwdns57420:0crwdne57420:0
|
||||
2. crwdns57422:0crwdne57422:0
|
||||
3. crwdns57424:0crwdne57424:0
|
||||
4. crwdns57426:0crwdne57426:0
|
||||
5. crwdns57428:0crwdne57428:0 crwdns57430:0crwdne57430:0
|
||||
6. crwdns57432:0crwdne57432:0
|
||||
|
||||
crwdns57434:0crwdne57434:0
|
||||
|
||||
<VimeoEmbed videoId="927639721" title="Video demonstration" />
|
||||
|
||||
#### crwdns57436:0crwdne57436:0
|
||||
|
||||
crwdns57438:0crwdne57438:0 crwdns57440:0crwdne57440:0
|
||||
|
||||
<VimeoEmbed videoId="927643495" title="Video demonstration" />
|
||||
|
||||
### crwdns57442:0crwdne57442:0
|
||||
|
||||
crwdns57444:0crwdne57444:0
|
||||
|
||||
1. crwdns57446:0crwdne57446:0
|
||||
2. crwdns57448:0crwdne57448:0
|
||||
3. crwdns57450:0crwdne57450:0
|
||||
|
||||
crwdns57452:0crwdne57452:0
|
||||
|
||||
<VimeoEmbed videoId="927645774" title="Video demonstration" />
|
||||
|
||||
## crwdns57454:0crwdne57454:0
|
||||
|
||||
crwdns57456:0crwdne57456:0
|
||||
|
||||
## crwdns57458:0crwdne57458:0
|
||||
|
||||
crwdns57460:0crwdne57460:0 crwdns57462:0crwdne57462:0 crwdns57464:0crwdne57464:0
|
||||
|
||||
### crwdns57466:0crwdne57466:0
|
||||
|
||||
crwdns57468:0crwdne57468:0
|
||||
|
||||
- crwdns57470:0crwdne57470:0
|
||||
- crwdns57472:0crwdne57472:0
|
||||
- crwdns57474:0crwdne57474:0
|
||||
|
||||
<VimeoEmbed videoId="926282262" title="Video demonstration" />
|
||||
|
||||
### crwdns57476:0crwdne57476:0
|
||||
|
||||
crwdns57478:0crwdne57478:0
|
||||
|
||||
- crwdns57480:0crwdne57480:0
|
||||
- crwdns57482:0crwdne57482:0
|
||||
<VimeoEmbed videoId="927885588" title="Video demonstration" />
|
||||
|
||||
### crwdns57484:0crwdne57484:0
|
||||
|
||||
crwdns57486:0crwdne57486:0 crwdns57488:0crwdne57488:0
|
||||
|
||||
crwdns57490:0crwdne57490:0
|
||||
|
||||
### crwdns57492:0crwdne57492:0
|
||||
|
||||
crwdns57494:0crwdne57494:0 crwdns57496:0crwdne57496:0
|
||||
|
||||
@@ -0,0 +1,220 @@
|
||||
---
|
||||
title: crwdns54908:0crwdne54908:0
|
||||
info: crwdns54910:0crwdne54910:0
|
||||
image: crwdns54912:0crwdne54912:0
|
||||
sectionInfo: crwdns54914:0crwdne54914:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/integrations/plug.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns54916:0crwdne54916:0
|
||||
|
||||
## crwdns54918:0crwdne54918:0
|
||||
|
||||
### crwdns54920:0crwdne54920:0
|
||||
|
||||
crwdns54922:0crwdne54922:0
|
||||
|
||||
crwdns54924:0crwdne54924:0
|
||||
|
||||
crwdns54926:0crwdne54926:0
|
||||
|
||||
- crwdns54928:0crwdne54928:0
|
||||
- crwdns54930:0crwdne54930:0
|
||||
- crwdns54932:0crwdne54932:0
|
||||
- crwdns54934:0crwdne54934:0
|
||||
|
||||
crwdns54936:0crwdne54936:0
|
||||
|
||||
crwdns54938:0crwdne54938:0
|
||||
|
||||
- crwdns54940:0crwdne54940:0
|
||||
- crwdns54942:0crwdne54942:0
|
||||
- crwdns54944:0crwdne54944:0
|
||||
- crwdns54946:0crwdne54946:0
|
||||
|
||||
### crwdns54948:0crwdne54948:0
|
||||
|
||||
crwdns54950:0crwdne54950:0
|
||||
|
||||
crwdns54952:0crwdne54952:0
|
||||
|
||||
crwdns54954:0crwdne54954:0
|
||||
|
||||
crwdns54956:0crwdne54956:0
|
||||
|
||||
- crwdns54958:0crwdne54958:0
|
||||
- crwdns54960:0crwdne54960:0
|
||||
- crwdns54962:0crwdne54962:0
|
||||
- crwdns54964:0crwdne54964:0
|
||||
- crwdns54966:0crwdne54966:0
|
||||
- crwdns54968:0crwdne54968:0
|
||||
|
||||
### crwdns54970:0crwdne54970:0
|
||||
|
||||
crwdns54972:0crwdne54972:0
|
||||
|
||||
crwdns54974:0crwdne54974:0
|
||||
|
||||
crwdns54976:0crwdne54976:0
|
||||
|
||||
crwdns54978:0crwdne54978:0
|
||||
|
||||
- crwdns54980:0crwdne54980:0
|
||||
- crwdns54982:0crwdne54982:0
|
||||
- crwdns54984:0crwdne54984:0
|
||||
- crwdns54986:0crwdne54986:0
|
||||
- crwdns54988:0crwdne54988:0
|
||||
|
||||
### crwdns54990:0crwdne54990:0
|
||||
|
||||
crwdns54992:0crwdne54992:0
|
||||
|
||||
crwdns54994:0crwdne54994:0
|
||||
|
||||
crwdns54996:0crwdne54996:0
|
||||
|
||||
crwdns54998:0crwdne54998:0
|
||||
|
||||
- crwdns55000:0crwdne55000:0
|
||||
- crwdns55002:0crwdne55002:0
|
||||
- crwdns55004:0crwdne55004:0
|
||||
- crwdns55006:0crwdne55006:0
|
||||
- crwdns55008:0crwdne55008:0
|
||||
- crwdns55010:0crwdne55010:0
|
||||
|
||||
## crwdns55012:0crwdne55012:0
|
||||
|
||||
### crwdns55014:0crwdne55014:0
|
||||
|
||||
crwdns55016:0crwdne55016:0
|
||||
|
||||
crwdns55018:0crwdne55018:0
|
||||
|
||||
crwdns55020:0crwdne55020:0
|
||||
|
||||
crwdns55022:0crwdne55022:0
|
||||
|
||||
crwdns55024:0crwdne55024:0
|
||||
|
||||
- crwdns55026:0crwdne55026:0
|
||||
- crwdns55028:0crwdne55028:0
|
||||
- crwdns55030:0crwdne55030:0
|
||||
- crwdns55032:0crwdne55032:0
|
||||
- crwdns55034:0crwdne55034:0
|
||||
|
||||
### crwdns55036:0crwdne55036:0
|
||||
|
||||
crwdns55038:0crwdne55038:0
|
||||
|
||||
crwdns55040:0crwdne55040:0
|
||||
|
||||
crwdns55042:0crwdne55042:0
|
||||
|
||||
crwdns55044:0crwdne55044:0
|
||||
|
||||
- crwdns55046:0crwdne55046:0
|
||||
- crwdns55048:0crwdne55048:0
|
||||
- crwdns55050:0crwdne55050:0
|
||||
- crwdns55052:0crwdne55052:0
|
||||
|
||||
### crwdns55054:0crwdne55054:0
|
||||
|
||||
crwdns55056:0crwdne55056:0
|
||||
|
||||
crwdns55058:0crwdne55058:0
|
||||
|
||||
crwdns55060:0crwdne55060:0
|
||||
|
||||
crwdns55062:0crwdne55062:0
|
||||
|
||||
crwdns55064:0crwdne55064:0
|
||||
|
||||
- crwdns55066:0crwdne55066:0
|
||||
- crwdns55068:0crwdne55068:0
|
||||
- crwdns55070:0crwdne55070:0
|
||||
- crwdns55072:0crwdne55072:0
|
||||
|
||||
crwdns55074:0crwdne55074:0
|
||||
|
||||
crwdns55076:0crwdne55076:0
|
||||
|
||||
crwdns55078:0crwdne55078:0
|
||||
|
||||
- crwdns55080:0crwdne55080:0
|
||||
- crwdns55082:0crwdne55082:0
|
||||
- crwdns55084:0crwdne55084:0
|
||||
|
||||
### crwdns55086:0crwdne55086:0
|
||||
|
||||
crwdns55088:0crwdne55088:0
|
||||
|
||||
crwdns55090:0crwdne55090:0
|
||||
|
||||
crwdns55092:0crwdne55092:0
|
||||
|
||||
crwdns55094:0crwdne55094:0
|
||||
|
||||
- crwdns55096:0crwdne55096:0
|
||||
- crwdns55098:0crwdne55098:0
|
||||
- crwdns55100:0crwdne55100:0
|
||||
- crwdns55102:0crwdne55102:0
|
||||
- crwdns55104:0crwdne55104:0
|
||||
- crwdns55106:0crwdne55106:0
|
||||
|
||||
## crwdns55108:0crwdne55108:0
|
||||
|
||||
### crwdns55110:0crwdne55110:0
|
||||
|
||||
crwdns55112:0crwdne55112:0
|
||||
|
||||
crwdns55114:0crwdne55114:0
|
||||
|
||||
crwdns55116:0crwdne55116:0
|
||||
|
||||
crwdns55118:0crwdne55118:0
|
||||
|
||||
crwdns55120:0crwdne55120:0
|
||||
|
||||
- crwdns55122:0crwdne55122:0
|
||||
- crwdns55124:0crwdne55124:0
|
||||
|
||||
crwdns55126:0crwdne55126:0
|
||||
|
||||
crwdns55128:0crwdne55128:0
|
||||
|
||||
crwdns55130:0crwdne55130:0
|
||||
|
||||
- crwdns55132:0crwdne55132:0
|
||||
- crwdns55134:0crwdne55134:0
|
||||
- crwdns55136:0crwdne55136:0
|
||||
|
||||
### crwdns55138:0crwdne55138:0
|
||||
|
||||
crwdns55140:0crwdne55140:0
|
||||
|
||||
crwdns55142:0crwdne55142:0
|
||||
|
||||
crwdns55144:0crwdne55144:0
|
||||
|
||||
crwdns55146:0crwdne55146:0
|
||||
|
||||
- crwdns55148:0crwdne55148:0
|
||||
- crwdns55150:0crwdne55150:0
|
||||
- crwdns55152:0crwdne55152:0
|
||||
- crwdns55154:0crwdne55154:0
|
||||
- crwdns55156:0crwdne55156:0
|
||||
- crwdns55158:0crwdne55158:0
|
||||
|
||||
## crwdns55160:0crwdne55160:0
|
||||
|
||||
- crwdns55162:0crwdne55162:0
|
||||
- crwdns55164:0crwdne55164:0
|
||||
- crwdns55166:0crwdne55166:0
|
||||
- crwdns55168:0crwdne55168:0
|
||||
- crwdns55170:0/user-guide/workflows/workflow-featurescrwdne55170:0
|
||||
- crwdns55172:0crwdne55172:0
|
||||
|
||||
crwdns55174:0/user-guide/workflows/workflow-troubleshootingcrwdne55174:0 crwdns55176:0/user-guide/workflows/professional-servicescrwdne55176:0
|
||||
@@ -0,0 +1,77 @@
|
||||
---
|
||||
title: crwdns56440:0crwdne56440:0
|
||||
info: "crwdns56442:0crwdne56442:0"
|
||||
image: crwdns56444:0crwdne56444:0
|
||||
sectionInfo: crwdns56446:0crwdne56446:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/workflows/workflow.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns56448:0crwdne56448:0
|
||||
|
||||
crwdns56450:0crwdne56450:0 crwdns56452:0crwdne56452:0
|
||||
|
||||
crwdns56454:0crwdne56454:0 crwdns56456:0crwdne56456:0
|
||||
|
||||
## crwdns56458:0crwdne56458:0
|
||||
|
||||
crwdns56460:0crwdne56460:0
|
||||
|
||||
1. crwdns56462:0crwdne56462:0
|
||||
2. crwdns56464:0crwdne56464:0
|
||||
|
||||
crwdns56466:0crwdne56466:0
|
||||
|
||||
## crwdns56468:0crwdne56468:0 crwdns56470:0crwdne56470:0
|
||||
|
||||
crwdns56472:0crwdne56472:0 crwdns56474:0crwdne56474:0
|
||||
|
||||
crwdns56476:0crwdne56476:0
|
||||
|
||||
- crwdns56478:0crwdne56478:0
|
||||
- crwdns56480:0crwdne56480:0
|
||||
- crwdns56482:0crwdne56482:0
|
||||
|
||||
crwdns56484:0/user-guide/workflows/internal-automationscrwdne56484:0
|
||||
|
||||
## crwdns56486:0crwdne56486:0 crwdns56488:0crwdne56488:0
|
||||
|
||||
crwdns56490:0crwdne56490:0 crwdns56492:0crwdne56492:0 crwdns56494:0crwdne56494:0
|
||||
|
||||
crwdns56496:0crwdne56496:0
|
||||
|
||||
- crwdns56498:0crwdne56498:0
|
||||
- crwdns56500:0crwdne56500:0
|
||||
|
||||
crwdns56502:0/user-guide/workflows/external-tool-integrationcrwdne56502:0
|
||||
|
||||
### crwdns56504:0crwdne56504:0
|
||||
|
||||
crwdns56506:0/user-guide/workflows/professional-servicescrwdne56506:0
|
||||
crwdns56508:0https://twenty.com/onboarding-packagescrwdne56508:0 crwdns56510:0crwdne56510:0
|
||||
|
||||
### crwdns56512:0crwdne56512:0
|
||||
|
||||
crwdns56514:0crwdne56514:0
|
||||
|
||||
## crwdns56516:0crwdne56516:0
|
||||
|
||||
crwdns56518:0crwdne56518:0
|
||||
|
||||
- crwdns56520:0crwdne56520:0 crwdns56522:0crwdne56522:0
|
||||
- crwdns56524:0crwdne56524:0
|
||||
- crwdns56526:0crwdne56526:0
|
||||
- crwdns56528:0crwdne56528:0
|
||||
- crwdns56530:0crwdne56530:0
|
||||
|
||||
## crwdns56532:0crwdne56532:0
|
||||
|
||||
crwdns56534:0crwdne56534:0
|
||||
|
||||
- crwdns56536:0crwdne56536:0
|
||||
- crwdns56538:0crwdne56538:0
|
||||
- crwdns56540:0crwdne56540:0
|
||||
|
||||
|
||||
@@ -0,0 +1,170 @@
|
||||
---
|
||||
title: crwdns55338:0crwdne55338:0
|
||||
info: "crwdns55340:0crwdne55340:0"
|
||||
image: crwdns55342:0crwdne55342:0
|
||||
sectionInfo: crwdns55344:0crwdne55344:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/workflows/internal-automations.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns55346:0crwdne55346:0
|
||||
|
||||
## crwdns55348:0crwdne55348:0
|
||||
|
||||
### crwdns55350:0crwdne55350:0
|
||||
|
||||
crwdns55352:0crwdne55352:0
|
||||
|
||||
crwdns55354:0crwdne55354:0
|
||||
|
||||
crwdns55356:0crwdne55356:0
|
||||
|
||||
crwdns55358:0crwdne55358:0
|
||||
|
||||
- crwdns55360:0crwdne55360:0
|
||||
- crwdns55362:0crwdne55362:0
|
||||
|
||||
### crwdns55364:0crwdne55364:0
|
||||
|
||||
crwdns55366:0crwdne55366:0
|
||||
|
||||
crwdns55368:0crwdne55368:0
|
||||
|
||||
crwdns55370:0crwdne55370:0
|
||||
|
||||
crwdns55372:0crwdne55372:0
|
||||
|
||||
- crwdns55374:0crwdne55374:0
|
||||
- crwdns55376:0crwdne55376:0
|
||||
- crwdns55378:0crwdne55378:0
|
||||
- crwdns55380:0crwdne55380:0
|
||||
|
||||
### crwdns55382:0crwdne55382:0
|
||||
|
||||
crwdns55384:0crwdne55384:0
|
||||
|
||||
crwdns55386:0crwdne55386:0
|
||||
|
||||
crwdns55388:0crwdne55388:0
|
||||
|
||||
crwdns55390:0crwdne55390:0
|
||||
|
||||
- crwdns55392:0crwdne55392:0
|
||||
- crwdns55394:0crwdne55394:0
|
||||
- crwdns55396:0crwdne55396:0
|
||||
- crwdns55398:0crwdne55398:0
|
||||
|
||||
## crwdns55400:0crwdne55400:0
|
||||
|
||||
### crwdns55402:0crwdne55402:0
|
||||
|
||||
crwdns55404:0crwdne55404:0
|
||||
|
||||
crwdns55406:0crwdne55406:0
|
||||
|
||||
crwdns55408:0crwdne55408:0
|
||||
|
||||
crwdns55410:0crwdne55410:0
|
||||
|
||||
- crwdns55412:0crwdne55412:0
|
||||
- crwdns55414:0crwdne55414:0
|
||||
- crwdns55416:0crwdne55416:0
|
||||
- crwdns55418:0crwdne55418:0
|
||||
|
||||
### crwdns55420:0crwdne55420:0
|
||||
|
||||
crwdns55422:0crwdne55422:0
|
||||
|
||||
crwdns55424:0crwdne55424:0
|
||||
|
||||
crwdns55426:0crwdne55426:0
|
||||
|
||||
crwdns55428:0crwdne55428:0
|
||||
|
||||
- crwdns55430:0crwdne55430:0
|
||||
- crwdns55432:0crwdne55432:0
|
||||
- crwdns55434:0crwdne55434:0
|
||||
- crwdns55436:0crwdne55436:0
|
||||
|
||||
### crwdns55438:0crwdne55438:0
|
||||
|
||||
crwdns55440:0crwdne55440:0
|
||||
|
||||
crwdns55442:0crwdne55442:0
|
||||
|
||||
crwdns55444:0crwdne55444:0
|
||||
|
||||
crwdns55446:0crwdne55446:0
|
||||
|
||||
- crwdns55448:0crwdne55448:0
|
||||
- crwdns55450:0crwdne55450:0
|
||||
- crwdns55452:0crwdne55452:0
|
||||
- crwdns55454:0crwdne55454:0
|
||||
|
||||
## crwdns55456:0crwdne55456:0
|
||||
|
||||
### crwdns55458:0crwdne55458:0
|
||||
|
||||
crwdns55460:0crwdne55460:0
|
||||
|
||||
crwdns55462:0crwdne55462:0
|
||||
|
||||
crwdns55464:0crwdne55464:0
|
||||
|
||||
crwdns55466:0crwdne55466:0
|
||||
|
||||
- crwdns55468:0crwdne55468:0
|
||||
- crwdns55470:0crwdne55470:0
|
||||
- crwdns55472:0crwdne55472:0
|
||||
- crwdns55474:0crwdne55474:0
|
||||
|
||||
### crwdns55476:0crwdne55476:0
|
||||
|
||||
crwdns55478:0crwdne55478:0
|
||||
|
||||
crwdns55480:0crwdne55480:0
|
||||
|
||||
crwdns55482:0crwdne55482:0
|
||||
|
||||
crwdns55484:0crwdne55484:0
|
||||
|
||||
- crwdns55486:0crwdne55486:0
|
||||
- crwdns55488:0crwdne55488:0
|
||||
- crwdns55490:0crwdne55490:0
|
||||
- crwdns55492:0crwdne55492:0
|
||||
|
||||
### crwdns55494:0crwdne55494:0
|
||||
|
||||
crwdns55496:0crwdne55496:0
|
||||
|
||||
crwdns55498:0crwdne55498:0
|
||||
|
||||
crwdns55500:0crwdne55500:0
|
||||
|
||||
crwdns55502:0crwdne55502:0
|
||||
|
||||
- crwdns55504:0crwdne55504:0
|
||||
- crwdns55506:0crwdne55506:0
|
||||
- crwdns55508:0crwdne55508:0
|
||||
- crwdns55510:0crwdne55510:0
|
||||
|
||||
## crwdns55512:0crwdne55512:0
|
||||
|
||||
### crwdns55514:0crwdne55514:0
|
||||
|
||||
crwdns55516:0crwdne55516:0
|
||||
|
||||
crwdns55518:0crwdne55518:0
|
||||
|
||||
crwdns55520:0crwdne55520:0
|
||||
|
||||
crwdns55522:0crwdne55522:0
|
||||
|
||||
- crwdns55524:0crwdne55524:0
|
||||
- crwdns55526:0crwdne55526:0
|
||||
- crwdns55528:0crwdne55528:0
|
||||
|
||||
crwdns55530:0/user-guide/workflows/professional-servicescrwdnd55530:0/user-guide/workflows/external-tool-integrationcrwdne55530:0
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
title: crwdns57342:0crwdne57342:0
|
||||
info: crwdns57344:0crwdne57344:0
|
||||
image: crwdns57346:0crwdne57346:0
|
||||
sectionInfo: crwdns57348:0crwdne57348:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/what-is-twenty/implementation_services.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns57350:0crwdne57350:0
|
||||
|
||||
crwdns57352:0crwdne57352:0
|
||||
|
||||
- crwdns57354:0crwdne57354:0
|
||||
- crwdns57356:0crwdne57356:0
|
||||
- crwdns57358:0crwdne57358:0
|
||||
- crwdns57362:0crwdne57362:0
|
||||
- crwdns57364:0crwdne57364:0
|
||||
- crwdns57366:0crwdne57366:0
|
||||
|
||||
## crwdns57368:0crwdne57368:0
|
||||
|
||||
### crwdns57372:0crwdne57372:0
|
||||
|
||||
crwdns57376:0https://twenty.com/onboarding-packagescrwdne57376:0
|
||||
|
||||
- crwdns57380:0crwdne57380:0
|
||||
- crwdns57384:0crwdne57384:0
|
||||
- crwdns57388:0crwdne57388:0
|
||||
|
||||
### crwdns57392:0crwdne57392:0
|
||||
|
||||
crwdns57396:0crwdne57396:0 crwdns57400:0https://twenty.com/implementation-servicescrwdne57400:0
|
||||
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
---
|
||||
title: crwdns54782:0crwdne54782:0
|
||||
info: crwdns54784:0crwdne54784:0
|
||||
image: crwdns54786:0crwdne54786:0
|
||||
sectionInfo: crwdns54788:0crwdne54788:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/workflows/workflow-credits.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
crwdns54790:0crwdne54790:0 crwdns54792:0crwdne54792:0
|
||||
|
||||
## crwdns54794:0crwdne54794:0
|
||||
|
||||
crwdns54796:0crwdne54796:0
|
||||
|
||||
- crwdns54798:0crwdne54798:0
|
||||
- crwdns54800:0crwdne54800:0
|
||||
- crwdns54802:0crwdne54802:0
|
||||
|
||||
## crwdns54804:0crwdne54804:0
|
||||
|
||||
crwdns54806:0crwdne54806:0 crwdns54808:0crwdne54808:0
|
||||
|
||||
### crwdns54810:0crwdne54810:0
|
||||
|
||||
- crwdns54812:0crwdne54812:0
|
||||
- crwdns54814:0crwdne54814:0
|
||||
- crwdns54816:0crwdne54816:0
|
||||
- crwdns54818:0crwdne54818:0
|
||||
- crwdns54820:0crwdne54820:0
|
||||
- crwdns54822:0crwdne54822:0
|
||||
|
||||
- crwdns54824:0crwdne54824:0
|
||||
- crwdns54826:0crwdne54826:0
|
||||
- crwdns54828:0crwdne54828:0
|
||||
|
||||
- crwdns54830:0crwdne54830:0
|
||||
- crwdns54832:0crwdne54832:0
|
||||
|
||||
### crwdns54834:0crwdne54834:0
|
||||
|
||||
crwdns54836:0crwdne54836:0 crwdns54838:0crwdne54838:0
|
||||
|
||||
- crwdns54840:0crwdne54840:0
|
||||
- crwdns54842:0crwdne54842:0
|
||||
- crwdns54844:0crwdne54844:0
|
||||
|
||||
## crwdns54846:0crwdne54846:0
|
||||
|
||||
### crwdns54848:0crwdne54848:0
|
||||
|
||||
1. crwdns54850:0crwdne54850:0
|
||||
2. crwdns54852:0crwdne54852:0
|
||||
3. crwdns54854:0crwdne54854:0
|
||||
|
||||
### crwdns54856:0crwdne54856:0
|
||||
|
||||
crwdns54858:0crwdne54858:0
|
||||
|
||||
1. crwdns54860:0crwdne54860:0
|
||||
2. crwdns54862:0crwdne54862:0 crwdns54864:0crwdne54864:0
|
||||
3. crwdns54866:0crwdne54866:0
|
||||
|
||||
## crwdns54868:0crwdne54868:0
|
||||
|
||||
### crwdns54870:0crwdne54870:0
|
||||
|
||||
- crwdns54872:0crwdne54872:0
|
||||
- crwdns54874:0crwdne54874:0
|
||||
- crwdns54876:0crwdne54876:0
|
||||
- crwdns54878:0crwdne54878:0
|
||||
- crwdns54880:0crwdne54880:0
|
||||
- crwdns54882:0/user-guide/workflows/workflow-featurescrwdne54882:0
|
||||
|
||||
### crwdns54884:0crwdne54884:0
|
||||
|
||||
- crwdns54886:0crwdne54886:0
|
||||
- crwdns54888:0crwdne54888:0
|
||||
- crwdns54890:0crwdne54890:0
|
||||
- crwdns54892:0crwdne54892:0
|
||||
|
||||
### crwdns54894:0crwdne54894:0
|
||||
|
||||
- crwdns54896:0crwdne54896:0
|
||||
- crwdns54898:0crwdne54898:0
|
||||
- crwdns54900:0crwdne54900:0
|
||||
- crwdns54902:0crwdne54902:0
|
||||
- crwdns54904:0crwdne54904:0
|
||||
|
||||
crwdns54906:0crwdne54906:0
|
||||
|
||||
@@ -0,0 +1,317 @@
|
||||
---
|
||||
title: crwdns58120:0crwdne58120:0
|
||||
info: crwdns58122:0crwdne58122:0
|
||||
image: crwdns58124:0crwdne58124:0
|
||||
sectionInfo: crwdns58126:0crwdne58126:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/workflows/robot.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns58128:0crwdne58128:0
|
||||
|
||||
crwdns58130:0crwdne58130:0
|
||||
|
||||
### crwdns58132:0crwdne58132:0
|
||||
|
||||
crwdns58134:0crwdne58134:0
|
||||
|
||||
crwdns58136:0crwdne58136:0
|
||||
|
||||
### crwdns58138:0crwdne58138:0
|
||||
|
||||
crwdns58140:0crwdne58140:0
|
||||
|
||||
crwdns58142:0crwdne58142:0
|
||||
|
||||
- crwdns58144:0crwdne58144:0
|
||||
- crwdns58146:0crwdne58146:0
|
||||
|
||||
### crwdns58148:0crwdne58148:0
|
||||
|
||||
crwdns58150:0crwdne58150:0
|
||||
|
||||
crwdns58152:0crwdne58152:0
|
||||
|
||||
- crwdns58154:0crwdne58154:0
|
||||
- crwdns58156:0crwdne58156:0
|
||||
|
||||
crwdns58158:0crwdne58158:0
|
||||
|
||||
- crwdns58160:0crwdne58160:0
|
||||
- crwdns58162:0crwdne58162:0
|
||||
- crwdns58164:0crwdne58164:0
|
||||
|
||||
### crwdns58166:0crwdne58166:0
|
||||
|
||||
crwdns58168:0crwdne58168:0
|
||||
|
||||
crwdns58170:0crwdne58170:0
|
||||
|
||||
### crwdns58172:0crwdne58172:0
|
||||
|
||||
crwdns58174:0crwdne58174:0 crwdns58176:0crwdne58176:0
|
||||
|
||||
crwdns58178:0crwdne58178:0
|
||||
|
||||
- crwdns58180:0crwdne58180:0 crwdns58182:0crwdne58182:0
|
||||
|
||||
- crwdns58184:0crwdne58184:0 crwdns58186:0crwdne58186:0 crwdns58188:0crwdne58188:0 crwdns58190:0crwdne58190:0
|
||||
|
||||
<Warning>crwdns58192:0crwdne58192:0</Warning>
|
||||
|
||||
- crwdns58194:0crwdne58194:0 crwdns58196:0crwdne58196:0 crwdns58198:0crwdne58198:0 crwdns58200:0crwdne58200:0 crwdns58202:0crwdne58202:0 crwdns58204:0crwdne58204:0
|
||||
|
||||
crwdns58206:0crwdne58206:0
|
||||
|
||||
- crwdns58208:0crwdne58208:0
|
||||
- crwdns58210:0crwdne58210:0
|
||||
- crwdns58212:0crwdne58212:0
|
||||
|
||||
crwdns58214:0crwdne58214:0
|
||||
|
||||
- crwdns58216:0crwdne58216:0
|
||||
- crwdns58218:0crwdne58218:0
|
||||
|
||||
### crwdns58220:0crwdne58220:0
|
||||
|
||||
crwdns58222:0crwdne58222:0
|
||||
|
||||
crwdns58224:0crwdne58224:0
|
||||
|
||||
- crwdns58226:0crwdne58226:0
|
||||
- crwdns58228:0crwdne58228:0
|
||||
|
||||
### crwdns58230:0crwdne58230:0
|
||||
|
||||
crwdns58232:0crwdne58232:0
|
||||
|
||||
crwdns58234:0crwdne58234:0
|
||||
|
||||
- crwdns58236:0crwdne58236:0
|
||||
- crwdns58238:0crwdne58238:0
|
||||
- crwdns58240:0crwdne58240:0
|
||||
|
||||
## crwdns58242:0crwdne58242:0
|
||||
|
||||
crwdns58244:0crwdne58244:0 crwdns58246:0crwdne58246:0
|
||||
|
||||
### crwdns58248:0crwdne58248:0
|
||||
|
||||
crwdns58250:0crwdne58250:0
|
||||
|
||||
crwdns58252:0crwdne58252:0
|
||||
|
||||
- crwdns58254:0crwdne58254:0
|
||||
- crwdns58256:0crwdne58256:0
|
||||
- crwdns58258:0crwdne58258:0
|
||||
|
||||
crwdns58260:0crwdne58260:0
|
||||
|
||||
### crwdns58262:0crwdne58262:0
|
||||
|
||||
crwdns58264:0crwdne58264:0
|
||||
|
||||
crwdns58266:0crwdne58266:0
|
||||
|
||||
- crwdns58268:0crwdne58268:0
|
||||
- crwdns58270:0crwdne58270:0
|
||||
- crwdns58272:0crwdne58272:0
|
||||
|
||||
crwdns58274:0crwdne58274:0
|
||||
|
||||
### crwdns58276:0crwdne58276:0
|
||||
|
||||
crwdns58278:0crwdne58278:0
|
||||
|
||||
crwdns58280:0crwdne58280:0
|
||||
|
||||
- crwdns58282:0crwdne58282:0
|
||||
- crwdns58284:0crwdne58284:0
|
||||
|
||||
crwdns58286:0crwdne58286:0
|
||||
|
||||
### crwdns58288:0crwdne58288:0
|
||||
|
||||
crwdns58290:0crwdne58290:0
|
||||
|
||||
crwdns58292:0crwdne58292:0
|
||||
|
||||
- crwdns58294:0crwdne58294:0
|
||||
- crwdns58296:0crwdne58296:0
|
||||
- crwdns58298:0crwdne58298:0
|
||||
|
||||
crwdns58300:0crwdne58300:0
|
||||
|
||||
crwdns58302:0crwdne58302:0
|
||||
|
||||
### crwdns58304:0crwdne58304:0
|
||||
|
||||
crwdns58306:0crwdne58306:0
|
||||
|
||||
crwdns58308:0crwdne58308:0
|
||||
|
||||
- crwdns58310:0crwdne58310:0
|
||||
- crwdns58312:0crwdne58312:0
|
||||
- crwdns58314:0crwdne58314:0
|
||||
|
||||
crwdns58316:0crwdne58316:0
|
||||
|
||||
crwdns58318:0crwdne58318:0 crwdns58320:0crwdne58320:0
|
||||
|
||||
### crwdns58322:0crwdne58322:0
|
||||
|
||||
crwdns58324:0crwdne58324:0
|
||||
|
||||
crwdns58326:0crwdne58326:0
|
||||
|
||||
- crwdns58328:0crwdne58328:0
|
||||
- crwdns58330:0crwdne58330:0
|
||||
- crwdns58332:0crwdne58332:0
|
||||
|
||||
crwdns58334:0crwdne58334:0
|
||||
|
||||
### crwdns58336:0crwdne58336:0
|
||||
|
||||
crwdns58338:0crwdne58338:0
|
||||
|
||||
crwdns58340:0crwdne58340:0
|
||||
|
||||
crwdns58342:0crwdne58342:0
|
||||
|
||||
- crwdns58344:0crwdne58344:0
|
||||
- crwdns58346:0crwdne58346:0
|
||||
- crwdns58348:0crwdne58348:0
|
||||
- crwdns58350:0crwdne58350:0
|
||||
|
||||
crwdns58352:0crwdne58352:0
|
||||
|
||||
### crwdns58354:0crwdne58354:0
|
||||
|
||||
crwdns58356:0crwdne58356:0
|
||||
|
||||
crwdns58358:0crwdne58358:0
|
||||
|
||||
- crwdns58360:0crwdne58360:0
|
||||
- crwdns58362:0crwdne58362:0
|
||||
- crwdns58364:0crwdne58364:0
|
||||
- crwdns58366:0crwdne58366:0
|
||||
|
||||
crwdns58368:0crwdne58368:0
|
||||
|
||||
### crwdns58370:0crwdne58370:0
|
||||
|
||||
crwdns58372:0crwdne58372:0
|
||||
|
||||
crwdns58374:0crwdne58374:0
|
||||
|
||||
- crwdns58376:0crwdne58376:0
|
||||
- crwdns58378:0crwdne58378:0
|
||||
- crwdns58380:0crwdne58380:0
|
||||
|
||||
crwdns58382:0crwdne58382:0
|
||||
|
||||
<Warning>
|
||||
crwdns58384:0crwdne58384:0 crwdns58386:0crwdne58386:0 crwdns58388:0crwdne58388:0
|
||||
</Warning>
|
||||
|
||||
### crwdns58390:0crwdne58390:0
|
||||
|
||||
crwdns58392:0crwdne58392:0
|
||||
|
||||
crwdns58394:0crwdne58394:0
|
||||
|
||||
- crwdns58396:0crwdne58396:0
|
||||
- crwdns58398:0crwdne58398:0
|
||||
- crwdns58400:0crwdne58400:0
|
||||
- crwdns58402:0crwdne58402:0
|
||||
- crwdns58404:0crwdne58404:0
|
||||
|
||||
## crwdns58406:0crwdne58406:0
|
||||
|
||||
### crwdns58408:0crwdne58408:0
|
||||
|
||||
1. crwdns58410:0crwdne58410:0
|
||||
2. crwdns58412:0crwdne58412:0
|
||||
3. crwdns58414:0crwdne58414:0
|
||||
4. crwdns58416:0crwdne58416:0
|
||||
5. crwdns58418:0crwdne58418:0
|
||||
6. crwdns58420:0crwdne58420:0
|
||||
|
||||
crwdns58422:0crwdne58422:0 crwdns58424:0crwdne58424:0
|
||||
|
||||
### crwdns58426:0crwdne58426:0
|
||||
|
||||
- crwdns58428:0crwdne58428:0
|
||||
- crwdns58430:0crwdne58430:0
|
||||
- crwdns58432:0crwdne58432:0
|
||||
- crwdns58434:0crwdne58434:0
|
||||
|
||||
### crwdns58436:0crwdne58436:0
|
||||
|
||||
crwdns58438:0crwdne58438:0 crwdns58440:0crwdne58440:0
|
||||
|
||||
### crwdns58442:0crwdne58442:0
|
||||
|
||||
crwdns58444:0crwdne58444:0
|
||||
|
||||
- crwdns58446:0crwdne58446:0
|
||||
- crwdns58448:0crwdne58448:0
|
||||
- crwdns58450:0crwdne58450:0
|
||||
|
||||
### crwdns58452:0crwdne58452:0
|
||||
|
||||
crwdns58454:0crwdne58454:0
|
||||
|
||||
- crwdns58456:0crwdne58456:0
|
||||
- crwdns58458:0crwdne58458:0
|
||||
- crwdns58460:0crwdne58460:0
|
||||
- crwdns58462:0crwdne58462:0
|
||||
|
||||
crwdns58464:0crwdne58464:0
|
||||
|
||||
- crwdns58466:0crwdne58466:0
|
||||
- crwdns58468:0crwdne58468:0
|
||||
|
||||
crwdns58470:0crwdne58470:0
|
||||
|
||||
### crwdns58472:0crwdne58472:0
|
||||
|
||||
- crwdns58474:0crwdne58474:0
|
||||
- crwdns58476:0crwdne58476:0
|
||||
- crwdns58478:0crwdne58478:0
|
||||
- crwdns58480:0crwdne58480:0
|
||||
|
||||
## crwdns58482:0crwdne58482:0
|
||||
|
||||
### crwdns58484:0crwdne58484:0
|
||||
|
||||
- crwdns58486:0crwdne58486:0
|
||||
- crwdns58488:0crwdne58488:0
|
||||
- crwdns58490:0crwdne58490:0
|
||||
- crwdns58492:0crwdne58492:0
|
||||
- crwdns58494:0crwdne58494:0
|
||||
|
||||
### crwdns58496:0crwdne58496:0
|
||||
|
||||
- crwdns58498:0crwdne58498:0
|
||||
- crwdns58500:0crwdne58500:0
|
||||
- crwdns58502:0crwdne58502:0
|
||||
- crwdns58504:0crwdne58504:0
|
||||
|
||||
### crwdns58506:0crwdne58506:0
|
||||
|
||||
- crwdns58508:0crwdne58508:0
|
||||
- crwdns58510:0crwdne58510:0
|
||||
- crwdns58512:0crwdne58512:0
|
||||
- crwdns58514:0crwdne58514:0
|
||||
|
||||
### crwdns58516:0crwdne58516:0
|
||||
|
||||
- crwdns58518:0crwdne58518:0
|
||||
- crwdns58520:0crwdne58520:0
|
||||
- crwdns58522:0crwdne58522:0
|
||||
- crwdns58524:0crwdne58524:0
|
||||
|
||||
crwdns58526:0/user-guide/workflows/internal-automationscrwdnd58526:0/user-guide/workflows/external-tool-integrationcrwdne58526:0
|
||||
@@ -0,0 +1,129 @@
|
||||
---
|
||||
title: crwdns55178:0crwdne55178:0
|
||||
info: crwdns55180:0crwdne55180:0
|
||||
image: crwdns55182:0crwdne55182:0
|
||||
sectionInfo: crwdns55184:0crwdne55184:0
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/what-is-twenty/20.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## crwdns55186:0crwdne55186:0
|
||||
|
||||
crwdns55188:0crwdne55188:0
|
||||
|
||||
- crwdns55190:0crwdne55190:0
|
||||
- crwdns55192:0crwdne55192:0
|
||||
- crwdns55194:0crwdne55194:0
|
||||
|
||||
## crwdns55196:0crwdne55196:0
|
||||
|
||||
### crwdns55198:0crwdne55198:0
|
||||
|
||||
crwdns55200:0crwdne55200:0
|
||||
|
||||
crwdns55202:0crwdne55202:0
|
||||
|
||||
- crwdns55204:0crwdne55204:0
|
||||
- crwdns55206:0crwdne55206:0
|
||||
- crwdns55208:0crwdne55208:0
|
||||
- crwdns55210:0crwdne55210:0
|
||||
- crwdns55212:0crwdne55212:0
|
||||
|
||||
### crwdns55214:0crwdne55214:0
|
||||
|
||||
crwdns55216:0crwdne55216:0
|
||||
|
||||
<Warning>
|
||||
crwdns55218:0crwdne55218:0 crwdns55220:0crwdne55220:0 crwdns55222:0crwdne55222:0
|
||||
</Warning>
|
||||
|
||||
crwdns55224:0crwdne55224:0
|
||||
|
||||
### crwdns55226:0crwdne55226:0
|
||||
|
||||
crwdns55228:0crwdne55228:0
|
||||
|
||||
crwdns55230:0crwdne55230:0
|
||||
|
||||
- crwdns55232:0crwdne55232:0
|
||||
- crwdns55234:0crwdne55234:0
|
||||
- crwdns55236:0crwdne55236:0
|
||||
- crwdns55238:0crwdne55238:0
|
||||
- crwdns55240:0crwdne55240:0
|
||||
|
||||
### crwdns55242:0crwdne55242:0
|
||||
|
||||
crwdns55244:0crwdne55244:0
|
||||
|
||||
<Warning>crwdns55246:0crwdne55246:0</Warning>
|
||||
|
||||
crwdns55248:0crwdne55248:0
|
||||
|
||||
- crwdns55250:0crwdne55250:0
|
||||
- crwdns55252:0crwdne55252:0
|
||||
- crwdns55254:0crwdne55254:0
|
||||
- crwdns55256:0crwdne55256:0
|
||||
|
||||
### crwdns55258:0crwdne55258:0
|
||||
|
||||
crwdns55260:0crwdne55260:0
|
||||
|
||||
crwdns55262:0crwdne55262:0
|
||||
|
||||
- crwdns55264:0crwdne55264:0
|
||||
- crwdns55266:0crwdne55266:0
|
||||
- crwdns55268:0crwdne55268:0
|
||||
- crwdns55270:0crwdne55270:0
|
||||
|
||||
### crwdns55272:0crwdne55272:0
|
||||
|
||||
crwdns55274:0crwdne55274:0
|
||||
|
||||
crwdns55276:0crwdne55276:0
|
||||
|
||||
- crwdns55278:0crwdne55278:0 crwdns55280:0crwdne55280:0
|
||||
- crwdns55282:0crwdne55282:0
|
||||
- crwdns55284:0crwdne55284:0
|
||||
- crwdns55286:0crwdne55286:0
|
||||
|
||||
### crwdns55288:0crwdne55288:0
|
||||
|
||||
crwdns55290:0crwdne55290:0
|
||||
|
||||
<Warning>
|
||||
crwdns55292:0crwdne55292:0 crwdns55294:0crwdne55294:0
|
||||
</Warning>
|
||||
|
||||
## crwdns55296:0crwdne55296:0
|
||||
|
||||
### crwdns55298:0crwdne55298:0
|
||||
|
||||
- crwdns55300:0crwdne55300:0
|
||||
- crwdns55302:0crwdne55302:0
|
||||
- crwdns55304:0crwdne55304:0
|
||||
- crwdns55306:0crwdne55306:0
|
||||
- crwdns55308:0crwdne55308:0
|
||||
- crwdns55310:0crwdne55310:0
|
||||
|
||||
### crwdns55312:0crwdne55312:0
|
||||
|
||||
- crwdns55314:0crwdne55314:0
|
||||
- crwdns55316:0crwdne55316:0
|
||||
- crwdns55318:0crwdne55318:0
|
||||
- crwdns55320:0crwdne55320:0
|
||||
|
||||
## crwdns55322:0crwdne55322:0
|
||||
|
||||
### crwdns55324:0crwdne55324:0
|
||||
|
||||
- crwdns55326:0/user-guide/workflows/workflow-featurescrwdne55326:0
|
||||
- crwdns55328:0/user-guide/workflows/workflow-creditscrwdne55328:0
|
||||
- crwdns55330:0/user-guide/workflows/internal-automationscrwdnd55330:0/user-guide/workflows/external-tool-integrationcrwdne55330:0
|
||||
|
||||
### crwdns55332:0crwdne55332:0
|
||||
|
||||
- crwdns55334:0/user-guide/workflows/professional-servicescrwdne55334:0
|
||||
- crwdns55336:0crwdne55336:0
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
---
|
||||
title: API
|
||||
image: /images/docs/getting-started/api.png
|
||||
info: Ontdek hoe om ons API's te gebruik.
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/docs/getting-started/api.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## Oorsig
|
||||
|
||||
Die Twenty API stel ontwikkelaars in staat om programmaties met die Twenty CRM-platform te kommunikeer. Met behulp van die API kan jy Twenty integreer met ander stelsels, data-sinchronisasie outomatiseer en pasgemaakte oplossings om jou kliëntedata bou. Die API voorsien eindpunte om **te skep, lees, opdateer, en uitvee** kern CRM voorwerpe (soos mense en maatskappye) asook toegang tot metadata-konfigurasie.
|
||||
|
||||
**API Speelgrond:** Jy kan nou toegang tot die API Speelgrond binne die toep-instellings verkry. Om API-oproepe in reële tyd te toets, teken in by jou Twenty-werksruimte en navigeer na **Instellings → API's & Webhooks**. Dit open die in-app API Speelgrond en die instellings vir API-sleutels.
|
||||
**[Gaan na API Instellings](https://app.twenty.com/settings)**
|
||||
|
||||
## Magtiging
|
||||
|
||||
Twenty se API gebruik API-sleutels vir verifikasie. Elke versoek aan beskermde eindpunte moet 'n API-sleutel in die kopstuk insluit.
|
||||
|
||||
- **API-sleutels:** Jy kan 'n nuwe API-sleutel genereer vanaf jou Twenty-toep se **API-instellings** bladsy. Elke API-sleutel is 'n geheime teken wat toegang tot jou CRM-data verleen, dus hou dit veilig. As 'n sleutel gekompromitteer is, herroep dit vanaf die instellings en genereer 'n nuwe een.
|
||||
- **Verifikasie-opskrif:** Sodra jy 'n API-sleutel het, sluit dit in die `Verifikasie` opskrif van jou HTTP-versoeke in. Gebruik die Bearer token-skema. Byvoorbeeld:
|
||||
|
||||
```
|
||||
Authorization: Bearer YOUR_API_KEY
|
||||
```
|
||||
|
||||
Vervang `JOU_API_SLEUTEL` met die sleutel wat jy verkry het. Hierdie opskrif moet op **alle API-versoeke** teenwoordig wees. As die teken ontbreek of ongeldig is, sal die API met 'n verifikasiefout (HTTP 401 Ongemagtig) antwoord.
|
||||
|
||||
## API Eindpunte
|
||||
|
||||
Alle hulpbronne kan verkry word en via REST of GraphQL.
|
||||
|
||||
- **Wolk:** `https://api.twenty.com/` of jou pasgemaakte domein/sub-domein
|
||||
- **Self-Hosted Instances:** If you are running Twenty on your own server, use your own domain in place of `api.twenty.com` (for example, `https://{your-domain}/rest/`).
|
||||
|
||||
Eindpunte is in twee kategorieë gegroepeer: **Kern API** en **Metadata API**. Die **Kern API** hanteer primêre CRM-data (bv. mense, maatskappye, notas, take), terwyl die **Metadata API** konfigurasiedata dek (soos pasgemaakte velde of voorwerpedefinisies). Die meeste integrasies sal hoofsaaklik die Kern API gebruik.
|
||||
|
||||
### Kern API
|
||||
|
||||
Toeganklik op `/rest/` of `/graphql/`.
|
||||
Die **Kern API** dien as 'n verenigde koppelvlak vir die bestuur van kern CRM-entiteite (mense, maatskappye, notas, take) en hul verhoudings, en bied **sowel REST as GraphQL** interaksie modelle aan.
|
||||
|
||||
### Metadata API
|
||||
|
||||
Toeganklik op `/rest/metadata/` of `/metadata/`.
|
||||
Die Metadata API-eindpunte laat jou toe om inligting oor jou skema en instellings te kry. Byvoorbeeld, jy kan definisies van pasgemaakte velde, voorwerpeskemas, ensovoorts opsoek.
|
||||
|
||||
- **Voorbeeld Eindpunte:**
|
||||
|
||||
- `GET /rest/metadata/objects` – Lys al die voorwerptipes en hul metadata (velde, verhoudings).
|
||||
- `GET /rest/metadata/objects/{objectNaam}` – Verkry metadata vir 'n spesifieke voorwerp (bv. `mense`, `maatskappye`).
|
||||
- `GET /rest/metadata/picklists` – Verkry keuselys (afrol) velde-opsies wat in die CRM gedefinieer is.
|
||||
|
||||
Tipies word die metadata-eindpunte gebruik om die struktuur van data (vir dinamiese integrasies of vormbou) te verstaan eerder as om werklike rekords te bestuur. Hulle is in die meeste gevalle lees-alleen. Verifikasie is ook vir hierdie vereis (gebruik jou API-sleutel).
|
||||
@@ -0,0 +1,87 @@
|
||||
---
|
||||
title: Webhake
|
||||
image: /images/docs/getting-started/webhooks.png
|
||||
info: Ontdek hoe om ons Webhooks te gebruik.
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/docs/getting-started/webhooks.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## Oorsig
|
||||
|
||||
Webhooks in Twenty vul die API aan deur **intydse kennisgewings** aan jou eie toepassings te aktiveer wanneer sekere gebeurtenisse in jou CRM plaasvind. In plaas daarvan om die API voortdurend vir veranderinge te pols, kan jy webhooks opstel om Twenty toe te laat om data **te stuur** na jou stelsel wanneer spesifieke gebeurtenisse voorkom (byvoorbeeld, wanneer 'n nuwe rekord geskep word of 'n bestaande rekord opgedateer word). Dit help om eksterne stelsels onmiddellik en doeltreffend met Twenty gesinkroniseer te hou.
|
||||
|
||||
Met webhooks sal Twenty 'n HTTP POST-versoek stuur na 'n URL wat jy spesifiseer, wat besonderhede oor die gebeurtenis bevat. You can then handle that data in your application (e.g., to update your external database, trigger workflows, or send alerts).
|
||||
|
||||
## Stel 'n Webhook Op
|
||||
|
||||
Om 'n webhook in Twenty te skep, gebruik die **API's & Webhooks**-instellings in jou Twenty-app:
|
||||
|
||||
1. **Gaan na Instellings:** Gaan in jou Twenty-toepassing na **Instellings → API's & Webhooks**.
|
||||
2. **Skep 'n Webhook:** Klik onder **Webhooks** op **+ Skep webhook**.
|
||||
3. **Voer URL in:** Verskaf die eindpunt-URL op jou bediener waar jy wil hê Twenty moet webhook-versoeke stuur. Dit moet 'n publiek toeganklike URL wees wat POST-versoeke kan hanteer.
|
||||
4. **Stoor:** Klik **Stoor** om die webhook te skep. Die nuwe webhook sal onmiddellik geaktiveer word.
|
||||
|
||||
Jy kan verskeie webhooks skep as jy verskillende gebeurtenisse na verskillende eindpunte moet stuur. Elke webhook is in wese 'n inskrywing vir alle relevante gebeurtenisse (op hierdie stadium stuur Twenty alle gebeurtenissoorte na die gegewe URL; filter spesifieke gebeurtenissoorte mag in die UI konfigureerbaar wees). If you ever need to remove a webhook, you can delete it from the same settings page (select the webhook and choose delete).
|
||||
|
||||
## Gebeurtenisse en Laaie
|
||||
|
||||
Sodra 'n webhook ingestel is, sal Twenty 'n HTTP POST-versoek stuur na jou gespesifiseerde URL wanneer 'n sneller-gebeurtenis in jou CRM-data plaasvind. Algemene gebeurtenisse wat webhooks sneller insluit:
|
||||
|
||||
- **Rekord Geskep:** bv. 'n nuwe persoon word bygevoeg (`person.created`), 'n nuwe maatskappy word geskep (`company.created`), 'n nota word geskep (`note.created`), ens.
|
||||
- **Rekord Opgedateer:** bv. 'n bestaande persoon se inligting word opgedateer (`person.updated`), 'n maatskappyrekord word gewysig (`company.updated`), ens.
|
||||
- **Record Deleted:** e.g. a person or company is deleted (`person.deleted`, `company.deleted`).
|
||||
- **Ander Gebeurtenisse:** Indien van toepassing, ander objekgebeurtenisse of pasgemaakte snelringe (byvoorbeeld, indien take of ander voorwerpe opgedateer word, sal soortgelyke gebeurtenistipes gebruik word soos `task.created`, `note.updated`, ens.).
|
||||
|
||||
Die webhook POST-versoek bevat 'n JSON-laai in sy liggaam. Die laai sal gewoonlik ten minste twee dinge insluit: die tipe gebeurtenis, en die data wat met daardie gebeurtenis verband hou (dikwels die rekord wat geskep/opgedateer is). Byvoorbeeld, 'n webhook vir 'n nuutgeskepde persoon sal dalk 'n laai stuur soos:
|
||||
|
||||
```
|
||||
{
|
||||
"event": "person.created",
|
||||
"data": {
|
||||
"id": "abc12345",
|
||||
"firstName": "Alice",
|
||||
"lastName": "Doe",
|
||||
"email": "alice@example.com",
|
||||
"createdAt": "2025-02-10T15:30:45Z",
|
||||
"createdBy": "user_123"
|
||||
},
|
||||
"timestamp": "2025-02-10T15:30:50Z"
|
||||
}
|
||||
```
|
||||
|
||||
In hierdie voorbeeld:
|
||||
|
||||
- `"event"` spesifiseer wat gebeur het (`person.created`).
|
||||
- `"data"` bevat die besonderhede van die nuwe rekord (dieselfde inligting wat jy sou kry as jy daardie persoon via die API versoek het).
|
||||
- `"timestamp"` is wanneer die gebeurtenis plaasgevind het (in UTC).
|
||||
|
||||
Jou eindpunt moet voorbereid wees om sulke JSON-data via POST te ontvang. Gewoonlik sal jy die JSON ontleed, kyk na die `"event"`-tipe om te verstaan wat gebeur het, en dan die `"data"` toepaslik gebruik (bv. 'n nuwe kontak in jou stelsel skep, of 'n bestaande een opdateer).
|
||||
|
||||
**Nota:** Dit is belangrik om te reageer met 'n **2xx HTTP-status** van jou webhook-eindpunt om suksesvolle ontvangs te erken. As die Twenty webhooksender nie 'n 2xx-antwoord kry nie, mag dit oorweeg dat die aflewering misluk het. (In die toekoms mag herpoging logika mislukte webhooks probeer herstuur, so streef altyd om so gou as moontlik 'n 200 OK terug te gee na verwerking van die data.)
|
||||
|
||||
## Webhook Validasie
|
||||
|
||||
Om die sekerheid van jou webhook-eindpunte te verseker, sluit Twenty 'n handtekening in die `X-Twenty-Webhook-Signature`-kop in.
|
||||
|
||||
Hierdie handtekening is 'n HMAC SHA256 hash van die versoeklaai, bereken met behulp van jou webhook-geheim.
|
||||
|
||||
Om die handtekening te valideer, moet jy:
|
||||
|
||||
1. Koppel die timestamp (van `X-Twenty-Webhook-Timestamp`-kop), 'n dubbelpunt, en die JSON-string van die laai.
|
||||
2. Bereken die HMAC SHA256 hash met behulp van jou webhook-geheim as die sleutel.
|
||||
3. Vergelyk die resulterende heksadecimale verteer met die handtekening-kop.
|
||||
|
||||
Hier is 'n voorbeeld in Node.js:
|
||||
|
||||
```javascript
|
||||
const crypto = require("crypto");
|
||||
const timestamp = "1735066639761";
|
||||
const payload = JSON.stringify({...});
|
||||
const secret = "your-secret";
|
||||
const stringToSign = `${timestamp}:${JSON.stringify(payload)}`;
|
||||
const signature = crypto.createHmac("sha256", secret)
|
||||
.update(stringToSign)
|
||||
.digest("hex");
|
||||
```
|
||||
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: Beste Praktyke
|
||||
image: /images/user-guide/tips/light-bulb.png
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/tips/light-bulb.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
Hierdie dokument skets die beste praktyke wat u moet volg wanneer u aan die agterkant werk.
|
||||
|
||||
## Volg 'n modulêre benadering
|
||||
|
||||
Die agterkant volg 'n modulêre benadering, wat 'n fundamentele beginsel is wanneer met NestJS gewerk word. Maak seker jy verdeel jou kode in herbruikbare modules om 'n skoon en georganiseerde kodebasis te handhaaf.
|
||||
Elke module moet 'n spesifieke kenmerk of funksionaliteit inkapsuleer en 'n duidelik gedefinieerde omvang hê. Hierdie modulêre benadering stel duidelike skeiding van bekommernisse moontlik en verwyder onnodige kompleksiteite.
|
||||
|
||||
## Expose services to use in modules
|
||||
|
||||
Skep altyd dienste met 'n duidelike en enkele verantwoordelikheid, wat die leesbaarheid en onderhoudbaarheid van die kode verbeter. Gee dienste beskrywende en konsekwente name.
|
||||
|
||||
U moet ook dienste blootstel wat u in ander modules wil gebruik. Die blootstelling van dienste aan ander modules is moontlik deur NestJS se kragtige afhanklikheidsinspuitingstelsel, en bevorder los koppeling tussen komponente.
|
||||
|
||||
## Avoid using `any` type
|
||||
|
||||
Wanneer u `enige` verklaar, voer TypeScript se tipe-inspekteerder geen tipekyk uit nie, waardeur dit moontlik is om enige tipe waardes aan die veranderlike toe te ken. TypeScript gebruik tipe-afleiding om die tipe van 'n veranderlike te bepaal op grond van die waarde. Deur dit as `enige` te verklaar, kan TypeScript nie meer die tipe aflei nie. Dit maak dit moeilik om tipe-verwante foute tydens ontwikkeling vas te vang, wat tot runtime-foute lei en maak die kode minder onderhoudbaar, minder betroubaar en moeiliker om te verstaan vir ander.
|
||||
|
||||
Dit is hoekom alles 'n tipe moet hê. As u dus 'n nuwe objek met 'n voornaam en van skep, moet u 'n koppelvlak of tipe skep wat 'n eerste naam en van bevat wat die vorm van die objek wat u manipuleer definieer.
|
||||
@@ -0,0 +1,45 @@
|
||||
---
|
||||
title: Pasgemaakte voorwerpe
|
||||
image: /images/user-guide/objects/objects.png
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/objects/objects.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
Objekte is strukture wat jou toelaat om data (rekords, eienskappe en waardes) wat spesifiek aan 'n organisasie is, op te slaan. Twenty provides both standard and custom objects.
|
||||
|
||||
Standaard voorwerpe is ingeboude voorwerpe met 'n stel eienskappe beskikbaar vir alle gebruikers. Voorbeelde van standaard voorwerpe in Twenty sluit in Maatskappy en Persoon. Standard objects have standard fields that are also available for all Twenty users, like Company.displayName.
|
||||
|
||||
Aangepaste voorwerpe is voorwerpe wat jy kan skep om inligting wat uniek is aan jou organisasie te stoor. Hulle is nie ingebou nie; lede van jou werkruimte kan aangepaste voorwerpe skep en aanpas om inligting te hou waarvoor standaard voorwerpe nie geskik is nie.
|
||||
|
||||
## Hoë-vlak skema
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/server/custom-object-schema.png" alt="High level schema" />
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
|
||||
## Hoe dit werk
|
||||
|
||||
Aangepaste voorwerpe kom van metadata tabelle wat die vorm, naam en tipe van die voorwerpe bepaal. Al hierdie inligting is teenwoordig in die metadata skema databasis wat bestaan uit tabelle:
|
||||
|
||||
- **DataBron**: Beskryf waar die data teenwoordig is.
|
||||
- **Voorwerp**: Beskryf die voorwerp en koppel aan 'n DataBron.
|
||||
- **Veld**: Lys 'n voorwerp se velde en koppel aan die voorwerp.
|
||||
|
||||
Om 'n aangepaste voorwerp by te voeg, sal die werkspasielid die /metadata API navraag doen. Dit werk die metadata dienooreenkomstig op en bereken 'n GraphQL skema gebaseer op die metadata en berg dit in 'n GQL kas vir later gebruik.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/server/add-custom-objects.jpeg" alt="Query the /metadata API to add custom objects" />
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
|
||||
Om data te haal, behels die proses die maak van navrae deur die /graphql eindpunt en dit deur die Navraag Oplosser.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/server/custom-object-schema.png" alt="Query the /graphql endpoint to fetch data" />
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
title: Kenmerkvlae
|
||||
image: /images/user-guide/table-views/table.png
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/table-views/table.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
Kenmerkvlae word gebruik om eksperimentele kenmerke te verberg. Vir Twenty is hulle op die werksvlak gestel en nie op 'n gebruiker se vlak nie.
|
||||
|
||||
## Voeg 'n nuwe kenmerkvlag toe
|
||||
|
||||
Voeg die kenmerkvlag by in `FeatureFlagKey.ts`:
|
||||
|
||||
```ts
|
||||
type FeatureFlagKey =
|
||||
| 'IS_FEATURENAME_ENABLED'
|
||||
| ...;
|
||||
```
|
||||
|
||||
Voeg dit ook by die enum in `feature-flag.entity.ts`:
|
||||
|
||||
```ts
|
||||
enum FeatureFlagKeys {
|
||||
IsFeatureNameEnabled = 'IS_FEATURENAME_ENABLED',
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
Om 'n kenmerkvlag op 'n **backend** kenmerk toe te pas, gebruik:
|
||||
|
||||
```ts
|
||||
@Gate({
|
||||
featureFlag: 'IS_FEATURENAME_ENABLED',
|
||||
})
|
||||
```
|
||||
|
||||
Om 'n kenmerkvlag op 'n **frontend** kenmerk toe te pas, gebruik:
|
||||
|
||||
```ts
|
||||
const isFeatureNameEnabled = useIsFeatureEnabled('IS_FEATURENAME_ENABLED');
|
||||
```
|
||||
|
||||
## Stel kenmerkvlae op vir die implementering
|
||||
|
||||
Verander die ooreenstemmende rekord in die Tabel `core.featureFlag`
|
||||
|
||||
| id | sleutel | werkspasieId | waarde |
|
||||
| ------- | ------------------------ | ------------ | ------ |
|
||||
| Lukraak | `IS_FEATURENAME_ENABLED` | WerkspasieID | `waar` |
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user