Compare commits

..
Author SHA1 Message Date
Sonarly Claude Code 715be59d90 Missing null check on workflow.versions crashes command menu
https://sonarly.com/issue/36034?type=bug

When users click "Test Workflow" in the command menu, the code crashes because `getCurrentVersionId` calls `.find()` on `workflow.versions` without checking if it's null. GraphQL can return null for nested relations due to Apollo cache inconsistencies.

Fix: Added null coalescing operators (`?? []`) to handle cases where `workflow.versions` is `null` in the Apollo cache.

**File 1: `useWorkflowsWithCurrentVersions.ts`**
- Changed `getCurrentVersionId` to first extract `const versions = workflow.versions ?? []`
- Uses the safe `versions` array for both `.find()` and `.toSorted()` operations

**File 2: `useWorkflowWithCurrentVersion.ts`**
- Moved the null-safe `workflow?.versions ?? []` to the top of the version logic
- Reused `workflowVersions` consistently for both the draft version search and sorting
- Renamed the sorted copy to `sortedWorkflowVersions` for clarity

This follows the same defensive pattern already used in:
- Line 67 of `useWorkflowWithCurrentVersion.ts`: `[...(workflow?.versions ?? [])]`
- The recent fix in commit `be4b466234` which addressed the same Apollo cache null issue in `useWorkflowVersion.ts`

The root cause is that Apollo Client v4 (upgraded in #18584) has stricter normalized writes where "null always wins" in the cache. When certain GraphQL queries return `versions: null` (e.g., due to empty node selection or cache inconsistency during token renewal), the previously cached array gets overwritten with null, causing the crash.
2026-05-08 03:22:15 +00:00
1415 changed files with 26487 additions and 36338 deletions
@@ -20,7 +20,15 @@ jobs:
env:
GH_TOKEN: ${{ secrets.CI_PRIVILEGED_DISPATCH_TOKEN }}
PR_NUMBER: ${{ github.event.pull_request.number }}
PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
PR_AUTHOR: ${{ github.event.pull_request.user.login }}
PR_AUTHOR_ASSOCIATION: ${{ github.event.pull_request.author_association }}
REPO: ${{ github.repository }}
run: |
gh api repos/twentyhq/ci-privileged/dispatches \
-f event_type=pr-review \
-f "client_payload[pr_number]=$PR_NUMBER"
-f "client_payload[pr_number]=$PR_NUMBER" \
-f "client_payload[pr_head_sha]=$PR_HEAD_SHA" \
-f "client_payload[pr_author]=$PR_AUTHOR" \
-f "client_payload[pr_author_association]=$PR_AUTHOR_ASSOCIATION" \
-f "client_payload[repo]=$REPO"
+26 -26
View File
@@ -6,14 +6,14 @@
<h2 align="center" >The #1 Open-Source CRM</h2>
<p align="center"><a href="https://twenty.com"><img src="./packages/twenty-website-new/public/images/readme/globe-icon.svg" width="12" height="12"/> Website</a> · <a href="https://docs.twenty.com"><img src="./packages/twenty-website-new/public/images/readme/book-icon.svg" width="12" height="12"/> Documentation</a> · <a href="https://github.com/orgs/twentyhq/projects/1"><img src="./packages/twenty-website-new/public/images/readme/map-icon.svg" width="12" height="12"/> Roadmap </a> · <a href="https://discord.gg/cx5n4Jzs57"><img src="./packages/twenty-website-new/public/images/readme/discord-icon.svg" width="12" height="12"/> Discord</a> · <a href="https://www.figma.com/file/xt8O9mFeLl46C5InWwoMrN/Twenty"><img src="./packages/twenty-website-new/public/images/readme/figma-icon.webp" width="12" height="12"/> Figma</a></p>
<p align="center"><a href="https://twenty.com"><img src="./packages/twenty-website-new/public/images/readme/globe-icon.svg" width="12" height="12"/> Website</a> · <a href="https://docs.twenty.com"><img src="./packages/twenty-website-new/public/images/readme/book-icon.svg" width="12" height="12"/> Documentation</a> · <a href="https://github.com/orgs/twentyhq/projects/1"><img src="./packages/twenty-website-new/public/images/readme/map-icon.svg" width="12" height="12"/> Roadmap </a> · <a href="https://discord.gg/cx5n4Jzs57"><img src="./packages/twenty-website-new/public/images/readme/discord-icon.svg" width="12" height="12"/> Discord</a> · <a href="https://www.figma.com/file/xt8O9mFeLl46C5InWwoMrN/Twenty"><img src="./packages/twenty-website-new/public/images/readme/figma-icon.png" width="12" height="12"/> Figma</a></p>
<p align="center">
<a href="https://www.twenty.com">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/github-cover-dark.webp" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/github-cover-light.webp" />
<img src="./packages/twenty-website-new/public/images/readme/github-cover-light.webp" alt="Twenty banner" />
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/github-cover-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/github-cover-light.png" />
<img src="./packages/twenty-website-new/public/images/readme/github-cover-light.png" alt="Twenty banner" />
</picture>
</a>
</p>
@@ -85,17 +85,17 @@ Want to go deeper? Read the <a href="https://docs.twenty.com/user-guide/introduc
<tr>
<td width="50%">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-build-apps-dark.webp" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-build-apps-light.webp" />
<img src="./packages/twenty-website-new/public/images/readme/v2-build-apps-light.webp" alt="Create your apps" />
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-build-apps-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-build-apps-light.png" />
<img src="./packages/twenty-website-new/public/images/readme/v2-build-apps-light.png" alt="Create your apps" />
</picture>
<p align="center"><a href="https://docs.twenty.com/developers/extend/apps/getting-started"><img src="./packages/twenty-website-new/public/images/readme/code-icon.svg" width="16" height="16"/> Learn more about apps in doc</a></p>
</td>
<td width="50%">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-version-control-dark.webp" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-version-control-light.webp" />
<img src="./packages/twenty-website-new/public/images/readme/v2-version-control-light.webp" alt="Stay on top with version control" />
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-version-control-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-version-control-light.png" />
<img src="./packages/twenty-website-new/public/images/readme/v2-version-control-light.png" alt="Stay on top with version control" />
</picture>
<p align="center"><a href="https://docs.twenty.com/developers/extend/apps/publishing"><img src="./packages/twenty-website-new/public/images/readme/monitor-icon.svg" width="16" height="16"/> Learn more about version control in doc</a></p>
</td>
@@ -103,17 +103,17 @@ Want to go deeper? Read the <a href="https://docs.twenty.com/user-guide/introduc
<tr>
<td width="50%">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-all-tools-dark.webp" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-all-tools-light.webp" />
<img src="./packages/twenty-website-new/public/images/readme/v2-all-tools-light.webp" alt="All the tools you need to build anything" />
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-all-tools-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-all-tools-light.png" />
<img src="./packages/twenty-website-new/public/images/readme/v2-all-tools-light.png" alt="All the tools you need to build anything" />
</picture>
<p align="center"><a href="https://docs.twenty.com/developers/extend/apps/building"><img src="./packages/twenty-website-new/public/images/readme/rocket-icon.svg" width="16" height="16"/> Learn more about primitives in doc</a></p>
</td>
<td width="50%">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-tools-dark.webp" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-tools-light.webp" />
<img src="./packages/twenty-website-new/public/images/readme/v2-tools-light.webp" alt="Customize your layouts" />
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-tools-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-tools-light.png" />
<img src="./packages/twenty-website-new/public/images/readme/v2-tools-light.png" alt="Customize your layouts" />
</picture>
<p align="center"><a href="https://docs.twenty.com/user-guide/layout/overview"><img src="./packages/twenty-website-new/public/images/readme/planner-icon.svg" width="16" height="16"/> Learn more about layouts in doc</a></p>
</td>
@@ -121,17 +121,17 @@ Want to go deeper? Read the <a href="https://docs.twenty.com/user-guide/introduc
<tr>
<td width="50%">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-ai-agents-dark.webp" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-ai-agents-light.webp" />
<img src="./packages/twenty-website-new/public/images/readme/v2-ai-agents-light.webp" alt="AI agents and chats" />
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-ai-agents-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-ai-agents-light.png" />
<img src="./packages/twenty-website-new/public/images/readme/v2-ai-agents-light.png" alt="AI agents and chats" />
</picture>
<p align="center"><a href="https://docs.twenty.com/user-guide/ai/overview"><img src="./packages/twenty-website-new/public/images/readme/message-icon.svg" width="16" height="16"/> Learn more about AI in doc</a></p>
</td>
<td width="50%">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-crm-tools-dark.webp" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-crm-tools-light.webp" />
<img src="./packages/twenty-website-new/public/images/readme/v2-crm-tools-light.webp" alt="Plus all the tools of a good CRM" />
<source media="(prefers-color-scheme: dark)" srcset="./packages/twenty-website-new/public/images/readme/v2-crm-tools-dark.png" />
<source media="(prefers-color-scheme: light)" srcset="./packages/twenty-website-new/public/images/readme/v2-crm-tools-light.png" />
<img src="./packages/twenty-website-new/public/images/readme/v2-crm-tools-light.png" alt="Plus all the tools of a good CRM" />
</picture>
<p align="center"><a href="https://docs.twenty.com/user-guide/introduction"><img src="./packages/twenty-website-new/public/images/readme/star-icon.svg" width="16" height="16"/> Learn more about CRM features in doc</a></p>
</td>
@@ -152,13 +152,13 @@ Want to go deeper? Read the <a href="https://docs.twenty.com/user-guide/introduc
# Thanks
<p align="center">
<a href="https://www.chromatic.com/"><img src="./packages/twenty-website-new/public/images/readme/chromatic.webp" height="28" alt="Chromatic" /></a>
<a href="https://www.chromatic.com/"><img src="./packages/twenty-website-new/public/images/readme/chromatic.png" height="28" alt="Chromatic" /></a>
&nbsp;&nbsp;&nbsp;&nbsp;
<a href="https://greptile.com"><img src="./packages/twenty-website-new/public/images/readme/greptile.webp" height="28" alt="Greptile" /></a>
<a href="https://greptile.com"><img src="./packages/twenty-website-new/public/images/readme/greptile.png" height="28" alt="Greptile" /></a>
&nbsp;&nbsp;&nbsp;&nbsp;
<a href="https://sentry.io/"><img src="./packages/twenty-website-new/public/images/readme/sentry.webp" height="28" alt="Sentry" /></a>
<a href="https://sentry.io/"><img src="./packages/twenty-website-new/public/images/readme/sentry.png" height="28" alt="Sentry" /></a>
&nbsp;&nbsp;&nbsp;&nbsp;
<a href="https://crowdin.com/"><img src="./packages/twenty-website-new/public/images/readme/crowdin.webp" height="28" alt="Crowdin" /></a>
<a href="https://crowdin.com/"><img src="./packages/twenty-website-new/public/images/readme/crowdin.png" height="28" alt="Crowdin" /></a>
</p>
Thanks to these amazing services that we use and recommend for UI testing (Chromatic), code review (Greptile), catching bugs (Sentry) and translating (Crowdin).
+1
View File
@@ -60,6 +60,7 @@
"packages/twenty-sdk",
"packages/twenty-front-component-renderer",
"packages/twenty-client-sdk",
"packages/twenty-apps",
"packages/twenty-cli",
"packages/create-twenty-app",
"packages/twenty-oxlint-rules",
@@ -1,14 +0,0 @@
## Base documentation
- Documentation: https://docs.twenty.com/developers/extend/apps/getting-started
- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/examples/postcard
## UUID requirement
- All generated UUIDs must be valid UUID v4.
## Common Pitfalls
- Creating an object without an index view associated. Unless this is a technical object, user will need to visualize it.
- Creating a view without a navigationMenuItem associated. This will make the view available on the left sidebar.
- Creating a front-end component that has a scroll instead of being responsive to its fixed widget height and width, unless it is specifically meant to be used in a canvas tab.
@@ -1,14 +0,0 @@
## Base documentation
- Documentation: https://docs.twenty.com/developers/extend/apps/getting-started
- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/examples/postcard
## UUID requirement
- All generated UUIDs must be valid UUID v4.
## Common Pitfalls
- Creating an object without an index view associated. Unless this is a technical object, user will need to visualize it.
- Creating a view without a navigationMenuItem associated. This will make the view available on the left sidebar.
- Creating a front-end component that has a scroll instead of being responsive to its fixed widget height and width, unless it is specifically meant to be used in a canvas tab.
@@ -1,14 +0,0 @@
## Base documentation
- Documentation: https://docs.twenty.com/developers/extend/apps/getting-started
- Rich app example: https://github.com/twentyhq/twenty/tree/main/packages/twenty-apps/examples/postcard
## UUID requirement
- All generated UUIDs must be valid UUID v4.
## Common Pitfalls
- Creating an object without an index view associated. Unless this is a technical object, user will need to visualize it.
- Creating a view without a navigationMenuItem associated. This will make the view available on the left sidebar.
- Creating a front-end component that has a scroll instead of being responsive to its fixed widget height and width, unless it is specifically meant to be used in a canvas tab.
@@ -20,7 +20,7 @@
"test:watch": "vitest --config vitest.unit.config.ts"
},
"dependencies": {
"twenty-sdk": "2.3.0"
"twenty-sdk": "2.1.0"
},
"devDependencies": {
"@types/node": "^24.7.2",
@@ -31,35 +31,4 @@ export default defineLogicFunction({
required: ['teamId', 'title'],
},
},
workflowActionTriggerSettings: {
label: 'Create Linear Issue',
inputSchema: [
{
type: 'object',
properties: {
teamId: { type: 'string' },
title: { type: 'string' },
description: { type: 'string' },
},
},
],
outputSchema: [
{
type: 'object',
properties: {
success: { type: 'boolean' },
issue: {
type: 'object',
properties: {
id: { type: 'string' },
identifier: { type: 'string' },
title: { type: 'string' },
url: { type: 'string' },
},
},
error: { type: 'string' },
},
},
],
},
});
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
{"tags": ["scope:apps"]}
@@ -1752,7 +1752,6 @@ enum FeatureFlagKey {
IS_RECORD_PAGE_LAYOUT_EDITING_ENABLED
IS_PUBLIC_DOMAIN_ENABLED
IS_EMAILING_DOMAIN_ENABLED
IS_EMAIL_GROUP_ENABLED
IS_JUNCTION_RELATIONS_ENABLED
IS_CONNECTED_ACCOUNT_MIGRATED
IS_RICH_TEXT_V1_MIGRATED
@@ -1927,7 +1926,6 @@ type ClientConfig {
isGoogleCalendarEnabled: Boolean!
isConfigVariablesInDbEnabled: Boolean!
isImapSmtpCaldavEnabled: Boolean!
isEmailGroupEnabled: Boolean!
allowRequestsToTwentyIcons: Boolean!
calendarBookingPageId: String
isCloudflareIntegrationEnabled: Boolean!
@@ -2356,7 +2354,6 @@ type PublicDomain {
id: UUID!
domain: String!
isValidated: Boolean!
applicationId: UUID
createdAt: DateTime!
}
@@ -2780,7 +2777,6 @@ type MessageChannel {
connectedAccountId: UUID!
createdAt: DateTime!
updatedAt: DateTime!
connectedAccount: ConnectedAccountPublicDTO
}
enum MessageChannelVisibility {
@@ -2792,7 +2788,6 @@ enum MessageChannelVisibility {
enum MessageChannelType {
EMAIL
SMS
EMAIL_GROUP
}
enum MessageChannelContactAutoCreationPolicy {
@@ -2831,11 +2826,6 @@ enum MessageChannelSyncStage {
FAILED
}
type CreateEmailGroupChannelOutput {
messageChannel: MessageChannel!
forwardingAddress: String!
}
type MessageFolder {
id: UUID!
name: String
@@ -3253,8 +3243,6 @@ type Mutation {
updateMessageFolder(input: UpdateMessageFolderInput!): MessageFolder!
updateMessageFolders(input: UpdateMessageFoldersInput!): [MessageFolder!]!
updateMessageChannel(input: UpdateMessageChannelInput!): MessageChannel!
createEmailGroupChannel(input: CreateEmailGroupChannelInput!): CreateEmailGroupChannelOutput!
deleteEmailGroupChannel(id: UUID!): MessageChannel!
deleteConnectedAccount(id: UUID!): ConnectedAccountDTO!
updateCalendarChannel(input: UpdateCalendarChannelInput!): CalendarChannel!
createWebhook(input: CreateWebhookInput!): Webhook!
@@ -3328,8 +3316,7 @@ type Mutation {
updateLabPublicFeatureFlag(input: UpdateLabPublicFeatureFlagInput!): FeatureFlag!
enablePostgresProxy: PostgresCredentials!
disablePostgresProxy: PostgresCredentials!
createPublicDomain(domain: String!, applicationId: String): PublicDomain!
updatePublicDomain(domain: String!, applicationId: String): PublicDomain!
createPublicDomain(domain: String!): PublicDomain!
deletePublicDomain(domain: String!): Boolean!
checkPublicDomainValidRecords(domain: String!): DomainValidRecords
createEmailingDomain(domain: String!, driver: EmailingDomainDriver!): EmailingDomain!
@@ -4184,10 +4171,6 @@ input UpdateMessageChannelInputUpdates {
excludeGroupEmails: Boolean
}
input CreateEmailGroupChannelInput {
handle: String!
}
input UpdateCalendarChannelInput {
id: UUID!
update: UpdateCalendarChannelInputUpdates!
@@ -1388,7 +1388,7 @@ export interface FeatureFlag {
__typename: 'FeatureFlag'
}
export type FeatureFlagKey = 'IS_UNIQUE_INDEXES_ENABLED' | 'IS_JSON_FILTER_ENABLED' | 'IS_COMMAND_MENU_ITEM_ENABLED' | 'IS_MARKETPLACE_SETTING_TAB_VISIBLE' | 'IS_RECORD_PAGE_LAYOUT_EDITING_ENABLED' | 'IS_PUBLIC_DOMAIN_ENABLED' | 'IS_EMAILING_DOMAIN_ENABLED' | 'IS_EMAIL_GROUP_ENABLED' | 'IS_JUNCTION_RELATIONS_ENABLED' | 'IS_CONNECTED_ACCOUNT_MIGRATED' | 'IS_RICH_TEXT_V1_MIGRATED' | 'IS_RECORD_PAGE_LAYOUT_GLOBAL_EDITION_ENABLED' | 'IS_DATASOURCE_MIGRATED' | 'IS_BILLING_V2_ENABLED'
export type FeatureFlagKey = 'IS_UNIQUE_INDEXES_ENABLED' | 'IS_JSON_FILTER_ENABLED' | 'IS_COMMAND_MENU_ITEM_ENABLED' | 'IS_MARKETPLACE_SETTING_TAB_VISIBLE' | 'IS_RECORD_PAGE_LAYOUT_EDITING_ENABLED' | 'IS_PUBLIC_DOMAIN_ENABLED' | 'IS_EMAILING_DOMAIN_ENABLED' | 'IS_JUNCTION_RELATIONS_ENABLED' | 'IS_CONNECTED_ACCOUNT_MIGRATED' | 'IS_RICH_TEXT_V1_MIGRATED' | 'IS_RECORD_PAGE_LAYOUT_GLOBAL_EDITION_ENABLED' | 'IS_DATASOURCE_MIGRATED' | 'IS_BILLING_V2_ENABLED'
export interface WorkspaceUrls {
customUrl?: Scalars['String']
@@ -1554,7 +1554,6 @@ export interface ClientConfig {
isGoogleCalendarEnabled: Scalars['Boolean']
isConfigVariablesInDbEnabled: Scalars['Boolean']
isImapSmtpCaldavEnabled: Scalars['Boolean']
isEmailGroupEnabled: Scalars['Boolean']
allowRequestsToTwentyIcons: Scalars['Boolean']
calendarBookingPageId?: Scalars['String']
isCloudflareIntegrationEnabled: Scalars['Boolean']
@@ -2026,7 +2025,6 @@ export interface PublicDomain {
id: Scalars['UUID']
domain: Scalars['String']
isValidated: Scalars['Boolean']
applicationId?: Scalars['UUID']
createdAt: Scalars['DateTime']
__typename: 'PublicDomain'
}
@@ -2461,13 +2459,12 @@ export interface MessageChannel {
connectedAccountId: Scalars['UUID']
createdAt: Scalars['DateTime']
updatedAt: Scalars['DateTime']
connectedAccount?: ConnectedAccountPublicDTO
__typename: 'MessageChannel'
}
export type MessageChannelVisibility = 'METADATA' | 'SUBJECT' | 'SHARE_EVERYTHING'
export type MessageChannelType = 'EMAIL' | 'SMS' | 'EMAIL_GROUP'
export type MessageChannelType = 'EMAIL' | 'SMS'
export type MessageChannelContactAutoCreationPolicy = 'SENT_AND_RECEIVED' | 'SENT' | 'NONE'
@@ -2479,12 +2476,6 @@ export type MessageChannelSyncStatus = 'NOT_SYNCED' | 'ONGOING' | 'ACTIVE' | 'FA
export type MessageChannelSyncStage = 'PENDING_CONFIGURATION' | 'MESSAGE_LIST_FETCH_PENDING' | 'MESSAGE_LIST_FETCH_SCHEDULED' | 'MESSAGE_LIST_FETCH_ONGOING' | 'MESSAGES_IMPORT_PENDING' | 'MESSAGES_IMPORT_SCHEDULED' | 'MESSAGES_IMPORT_ONGOING' | 'FAILED'
export interface CreateEmailGroupChannelOutput {
messageChannel: MessageChannel
forwardingAddress: Scalars['String']
__typename: 'CreateEmailGroupChannelOutput'
}
export interface MessageFolder {
id: Scalars['UUID']
name?: Scalars['String']
@@ -2781,8 +2772,6 @@ export interface Mutation {
updateMessageFolder: MessageFolder
updateMessageFolders: MessageFolder[]
updateMessageChannel: MessageChannel
createEmailGroupChannel: CreateEmailGroupChannelOutput
deleteEmailGroupChannel: MessageChannel
deleteConnectedAccount: ConnectedAccountDTO
updateCalendarChannel: CalendarChannel
createWebhook: Webhook
@@ -2857,7 +2846,6 @@ export interface Mutation {
enablePostgresProxy: PostgresCredentials
disablePostgresProxy: PostgresCredentials
createPublicDomain: PublicDomain
updatePublicDomain: PublicDomain
deletePublicDomain: Scalars['Boolean']
checkPublicDomainValidRecords?: DomainValidRecords
createEmailingDomain: EmailingDomain
@@ -4507,7 +4495,6 @@ export interface ClientConfigGenqlSelection{
isGoogleCalendarEnabled?: boolean | number
isConfigVariablesInDbEnabled?: boolean | number
isImapSmtpCaldavEnabled?: boolean | number
isEmailGroupEnabled?: boolean | number
allowRequestsToTwentyIcons?: boolean | number
calendarBookingPageId?: boolean | number
isCloudflareIntegrationEnabled?: boolean | number
@@ -5037,7 +5024,6 @@ export interface PublicDomainGenqlSelection{
id?: boolean | number
domain?: boolean | number
isValidated?: boolean | number
applicationId?: boolean | number
createdAt?: boolean | number
__typename?: boolean | number
__scalar?: boolean | number
@@ -5501,14 +5487,6 @@ export interface MessageChannelGenqlSelection{
connectedAccountId?: boolean | number
createdAt?: boolean | number
updatedAt?: boolean | number
connectedAccount?: ConnectedAccountPublicDTOGenqlSelection
__typename?: boolean | number
__scalar?: boolean | number
}
export interface CreateEmailGroupChannelOutputGenqlSelection{
messageChannel?: MessageChannelGenqlSelection
forwardingAddress?: boolean | number
__typename?: boolean | number
__scalar?: boolean | number
}
@@ -5850,8 +5828,6 @@ export interface MutationGenqlSelection{
updateMessageFolder?: (MessageFolderGenqlSelection & { __args: {input: UpdateMessageFolderInput} })
updateMessageFolders?: (MessageFolderGenqlSelection & { __args: {input: UpdateMessageFoldersInput} })
updateMessageChannel?: (MessageChannelGenqlSelection & { __args: {input: UpdateMessageChannelInput} })
createEmailGroupChannel?: (CreateEmailGroupChannelOutputGenqlSelection & { __args: {input: CreateEmailGroupChannelInput} })
deleteEmailGroupChannel?: (MessageChannelGenqlSelection & { __args: {id: Scalars['UUID']} })
deleteConnectedAccount?: (ConnectedAccountDTOGenqlSelection & { __args: {id: Scalars['UUID']} })
updateCalendarChannel?: (CalendarChannelGenqlSelection & { __args: {input: UpdateCalendarChannelInput} })
createWebhook?: (WebhookGenqlSelection & { __args: {input: CreateWebhookInput} })
@@ -5925,8 +5901,7 @@ export interface MutationGenqlSelection{
updateLabPublicFeatureFlag?: (FeatureFlagGenqlSelection & { __args: {input: UpdateLabPublicFeatureFlagInput} })
enablePostgresProxy?: PostgresCredentialsGenqlSelection
disablePostgresProxy?: PostgresCredentialsGenqlSelection
createPublicDomain?: (PublicDomainGenqlSelection & { __args: {domain: Scalars['String'], applicationId?: (Scalars['String'] | null)} })
updatePublicDomain?: (PublicDomainGenqlSelection & { __args: {domain: Scalars['String'], applicationId?: (Scalars['String'] | null)} })
createPublicDomain?: (PublicDomainGenqlSelection & { __args: {domain: Scalars['String']} })
deletePublicDomain?: { __args: {domain: Scalars['String']} }
checkPublicDomainValidRecords?: (DomainValidRecordsGenqlSelection & { __args: {domain: Scalars['String']} })
createEmailingDomain?: (EmailingDomainGenqlSelection & { __args: {domain: Scalars['String'], driver: EmailingDomainDriver} })
@@ -6231,8 +6206,6 @@ export interface UpdateMessageChannelInput {id: Scalars['UUID'],update: UpdateMe
export interface UpdateMessageChannelInputUpdates {visibility?: (MessageChannelVisibility | null),isContactAutoCreationEnabled?: (Scalars['Boolean'] | null),contactAutoCreationPolicy?: (MessageChannelContactAutoCreationPolicy | null),messageFolderImportPolicy?: (MessageFolderImportPolicy | null),isSyncEnabled?: (Scalars['Boolean'] | null),excludeNonProfessionalEmails?: (Scalars['Boolean'] | null),excludeGroupEmails?: (Scalars['Boolean'] | null)}
export interface CreateEmailGroupChannelInput {handle: Scalars['String']}
export interface UpdateCalendarChannelInput {id: Scalars['UUID'],update: UpdateCalendarChannelInputUpdates}
export interface UpdateCalendarChannelInputUpdates {visibility?: (CalendarChannelVisibility | null),isContactAutoCreationEnabled?: (Scalars['Boolean'] | null),contactAutoCreationPolicy?: (CalendarChannelContactAutoCreationPolicy | null),isSyncEnabled?: (Scalars['Boolean'] | null)}
@@ -8190,14 +8163,6 @@ export interface LogicFunctionLogsInput {applicationId?: (Scalars['UUID'] | null
const CreateEmailGroupChannelOutput_possibleTypes: string[] = ['CreateEmailGroupChannelOutput']
export const isCreateEmailGroupChannelOutput = (obj?: { __typename?: any } | null): obj is CreateEmailGroupChannelOutput => {
if (!obj?.__typename) throw new Error('__typename is missing in "isCreateEmailGroupChannelOutput"')
return CreateEmailGroupChannelOutput_possibleTypes.includes(obj.__typename)
}
const MessageFolder_possibleTypes: string[] = ['MessageFolder']
export const isMessageFolder = (obj?: { __typename?: any } | null): obj is MessageFolder => {
if (!obj?.__typename) throw new Error('__typename is missing in "isMessageFolder"')
@@ -8726,7 +8691,6 @@ export const enumFeatureFlagKey = {
IS_RECORD_PAGE_LAYOUT_EDITING_ENABLED: 'IS_RECORD_PAGE_LAYOUT_EDITING_ENABLED' as const,
IS_PUBLIC_DOMAIN_ENABLED: 'IS_PUBLIC_DOMAIN_ENABLED' as const,
IS_EMAILING_DOMAIN_ENABLED: 'IS_EMAILING_DOMAIN_ENABLED' as const,
IS_EMAIL_GROUP_ENABLED: 'IS_EMAIL_GROUP_ENABLED' as const,
IS_JUNCTION_RELATIONS_ENABLED: 'IS_JUNCTION_RELATIONS_ENABLED' as const,
IS_CONNECTED_ACCOUNT_MIGRATED: 'IS_CONNECTED_ACCOUNT_MIGRATED' as const,
IS_RICH_TEXT_V1_MIGRATED: 'IS_RICH_TEXT_V1_MIGRATED' as const,
@@ -8826,8 +8790,7 @@ export const enumMessageChannelVisibility = {
export const enumMessageChannelType = {
EMAIL: 'EMAIL' as const,
SMS: 'SMS' as const,
EMAIL_GROUP: 'EMAIL_GROUP' as const
SMS: 'SMS' as const
}
export const enumMessageChannelContactAutoCreationPolicy = {
File diff suppressed because it is too large Load Diff
@@ -37,7 +37,7 @@ Both are available as REST and GraphQL. GraphQL adds batch upserts and the abili
Authorization: Bearer YOUR_API_KEY
```
Create an API key in **Settings → API & Webhooks → + Create key**. Copy it immediately — it's shown once. Keys can be scoped to a specific role under **Settings → Members → Roles → Assignment tab** to limit what they can access.
Create an API key in **Settings → API & Webhooks → + Create key**. Copy it immediately — it's shown once. Keys can be scoped to a specific role under **Settings → Roles → Assignment tab** to limit what they can access.
<VimeoEmbed videoId="928786722" title="Creating API key" />
@@ -83,7 +83,7 @@ Your API key grants access to sensitive data. Don't share it with untrusted serv
For better security, assign a specific role to limit access:
1. Go to **Settings → Members → Roles**
1. Go to **Settings → Roles**
2. Click on the role to assign
3. Open the **Assignment** tab
4. Under **API Keys**, click **+ Assign to API key**
@@ -37,7 +37,7 @@ Beide sind als REST und GraphQL verfügbar. GraphQL bietet Batch-Upserts und die
Authorization: Bearer YOUR_API_KEY
```
Erstellen Sie einen API-Schlüssel unter **Settings > APIs & Webhooks > + Create key**. Kopieren Sie ihn sofort — er wird nur einmal angezeigt. Schlüssel können unter **Settings → Members → Roles Assignment tab** auf eine bestimmte Rolle beschränkt werden, um ihren Zugriff einzuschränken.
Erstellen Sie einen API-Schlüssel unter **Settings > APIs & Webhooks > + Create key**. Kopieren Sie ihn sofort — er wird nur einmal angezeigt. Schlüssel können unter **Settings > Roles > Assignment tab** auf eine bestimmte Rolle beschränkt werden, um ihren Zugriff einzuschränken.
<VimeoEmbed videoId="928786722" title="API-Schlüssel erstellen" />
@@ -88,7 +88,7 @@ Ihr API-Schlüssel gewährt Zugriff auf sensible Daten. Teilen Sie ihn nicht mit
Für mehr Sicherheit weisen Sie eine spezifische Rolle zu, um den Zugriff zu beschränken:
1. Gehen Sie zu **Einstellungen → Mitglieder → Rollen**
1. Gehen Sie zu **Einstellungen → Rollen**
2. Klicken Sie auf die Rolle, die Sie zuweisen möchten
3. Öffnen Sie den Tab **Zuweisungen**
4. Unter **API-Schlüssel** auf **+ API-Schlüssel zuweisen** klicken
@@ -9,7 +9,7 @@ KI-Agenten respektieren Ihre bestehende Berechtigungsstruktur. Dies ist besonder
## Weisen Sie einem KI-Agenten eine Rolle zu
1. Gehen Sie zu **Einstellungen → Mitglieder → Rollen**
1. Gehen Sie zu **Einstellungen → Rollen**
2. Klicken Sie auf die Rolle, die Sie zuweisen möchten
3. Öffnen Sie den Tab **Zuweisungen**
4. Unter **KI-Agenten** klicken Sie auf **+ KI-Agent zuweisen**
@@ -17,7 +17,7 @@ description: Häufig gestellte Fragen zu KI-Funktionen in Twenty.
</Accordion>
<Accordion title="Haben KI-Agenten Zugriff auf alle meine Daten?">
KI-Agenten werden über das Berechtigungssystem verwaltet. Sie können KI-Agenten unter **Einstellungen → Mitglieder → Rollen** bestimmte Rollen zuweisen und haben damit volle Kontrolle darüber, auf welche Daten sie zugreifen können und welche Aktionen sie ausführen dürfen.
KI-Agenten werden über das Berechtigungssystem verwaltet. Sie können KI-Agenten unter **Einstellungen → Rollen** bestimmte Rollen zuweisen und haben damit volle Kontrolle darüber, auf welche Daten sie zugreifen können und welche Aktionen sie ausführen dürfen.
</Accordion>
<Accordion title="Wie funktionieren KI-Credits?">
@@ -48,7 +48,7 @@ Erweitern Sie Ihre Workflows mit KI-gestützten Aktionen und autonomen Agenten.
KI-Agenten werden über das bestehende Berechtigungssystem verwaltet:
1. Gehen Sie zu **Einstellungen → Mitglieder → Rollen**
1. Gehen Sie zu **Einstellungen → Rollen**
2. Konfigurieren Sie, auf welche Daten jeder KI-Agent zugreifen kann
3. Legen Sie Lese-/Schreibberechtigungen pro Objekt fest
@@ -214,7 +214,7 @@ Schließen Sie nach dem Import der Daten die Konfiguration Ihres Arbeitsbereichs
### Rollen und Berechtigungen konfigurieren
* Richten Sie Rollen unter **Einstellungen → Mitglieder → Rollen** ein
* Richten Sie Rollen unter **Einstellungen → Rollen** ein
* Weisen Sie Benutzer den entsprechenden Rollen zu
### E-Mail und Kalender verbinden
@@ -127,7 +127,7 @@ Erstellen Sie nach dem Import der Daten manuell neu:
### Rollen und Berechtigungen
* Richten Sie Rollen unter **Einstellungen → Mitglieder → Rollen** ein
* Konfigurieren Sie Rollen in **Einstellungen → Rollen**
* Weisen Sie Benutzer den entsprechenden Rollen zu
### Integrationen
@@ -13,7 +13,7 @@ Das Berechtigungssystem von Twenty ermöglicht es Ihnen, den Zugriff auf drei Ha
Um eine neue Rolle zu erstellen:
1. Gehen Sie zu **Einstellungen → Mitglieder → Rollen**
1. Gehen Sie zu **Einstellungen → Rollen**
2. Unter **Alle Rollen** klicken Sie auf **+ Rolle erstellen**
3. Geben Sie einen Rollennamen ein
4. Im Standard-Tab **Berechtigungen** [Berechtigungen konfigurieren](#customize-permissions)
@@ -23,7 +23,7 @@ Um eine neue Rolle zu erstellen:
Um eine Rolle zu löschen:
1. Gehen Sie zu **Einstellungen → Mitglieder → Rollen**
1. Gehen Sie zu **Einstellungen → Rollen**
2. Klicken Sie auf die Rolle, die Sie entfernen möchten
3. Öffnen Sie den Tab **Einstellungen** und klicken Sie auf **Rolle löschen**
4. Klicken Sie im Modal auf **Bestätigen**
@@ -36,13 +36,13 @@ Wenn eine Rolle gelöscht wird, wird jedes ihr zugewiesene Mitglied des Arbeitsb
### Aktuelle Zuweisungen anzeigen
* Gehen Sie zu **Einstellungen → Mitglieder → Rollen**
* Gehen Sie zu **Einstellungen → Rollen**
* Sehen Sie alle Rollen und wie viele Mitglieder jeweils zugewiesen sind
* Anzeigen, welche Mitglieder welche Rollen haben
### Weisen Sie einem Mitglied eine Rolle zu
1. Gehen Sie zu **Einstellungen → Mitglieder → Rollen**
1. Gehen Sie zu **Einstellungen → Rollen**
2. Klicken Sie auf die Rolle, die Sie zuweisen möchten
3. Öffnen Sie den Tab **Zuweisungen**
4. Klicken Sie auf **+ Mitglied zuweisen**
@@ -51,7 +51,7 @@ Wenn eine Rolle gelöscht wird, wird jedes ihr zugewiesene Mitglied des Arbeitsb
### Standardrolle festlegen
1. Gehen Sie zu **Einstellungen → Mitglieder → Rollen**
1. Gehen Sie zu **Einstellungen → Rollen**
2. Suchen Sie im Abschnitt **Optionen** nach **Standardrolle**
3. Wählen Sie aus, welche Rolle neue Mitglieder automatisch erhalten sollen
4. Neue Arbeitsbereichsmitglieder werden beim Beitritt dieser Rolle zugewiesen
@@ -168,7 +168,7 @@ Neben Mitgliedern des Arbeitsbereichs können Rollen auch **API-Schlüsseln** un
### Einem API-Schlüssel eine Rolle zuweisen
1. Gehen Sie zu **Einstellungen → Mitglieder → Rollen**
1. Gehen Sie zu **Einstellungen → Rollen**
2. Klicken Sie auf die Rolle, die Sie zuweisen möchten
3. Öffnen Sie den Tab **Zuweisungen**
4. Unter **API-Schlüssel** auf **+ API-Schlüssel zuweisen** klicken
@@ -183,7 +183,7 @@ API-Schlüssel ohne zugewiesene Rolle verwenden Standardberechtigungen. Weisen S
### Einem KI-Agenten eine Rolle zuweisen
1. Gehen Sie zu **Einstellungen → Mitglieder → Rollen**
1. Gehen Sie zu **Einstellungen → Rollen**
2. Klicken Sie auf die Rolle, die Sie zuweisen möchten
3. Öffnen Sie den Tab **Zuweisungen**
4. Unter **KI-Agenten** auf **+ KI-Agenten zuweisen** klicken
@@ -19,7 +19,7 @@ Jedes Mitglied des Arbeitsbereichs, dem diese Rolle zugewiesen ist, wird automat
</Accordion>
<Accordion title="Wie lege ich eine Standardrolle für neue Mitglieder fest?">
Gehen Sie zu **Einstellungen → Mitglieder → Rollen**, suchen Sie die Option **Standardrolle** und wählen Sie aus, welche Rolle neue Mitglieder beim Beitritt automatisch erhalten sollen.
Gehen Sie zu **Einstellungen → Rollen**, suchen Sie die Option **Standardrolle** und wählen Sie aus, welche Rolle neue Mitglieder beim Beitritt automatisch erhalten sollen.
</Accordion>
<Accordion title="Kann ich einem Benutzer mehrere Rollen zuweisen?">
@@ -64,7 +64,7 @@ Berechtigungen auf Zeilenebene werden bis Q1 2026 im Tarif **Organization** verf
</Accordion>
<Accordion title="Wie mache ich ein Feld für bestimmte Benutzer schreibgeschützt?">
1. Gehen Sie zu **Einstellungen → Mitglieder → Rollen**
1. Gehen Sie zu **Einstellungen → Rollen**
2. Wählen Sie die Rolle aus
3. Navigieren Sie zu dem Objekt, das das Feld enthält
4. Setzen Sie die Feldberechtigung auf **Feld anzeigen** (ohne Feld bearbeiten)
@@ -3,12 +3,10 @@ title: Domäneneinstellungen
description: Konfigurieren Sie die Arbeitsbereichsdomäne, genehmigte Zugriffsdomänen und öffentliche Domänen.
---
Domain-Einstellungen befinden sich an drei Stellen, abhängig davon, was Sie konfigurieren.
Konfigurieren Sie die Domäneneinstellungen unter **Einstellungen → Domänen**.
## Arbeitsbereichsdomäne
Konfigurieren Sie dies unter **Einstellungen → Allgemein → Arbeitsbereichs-Domain**.
Bearbeiten Sie den Namen Ihrer Subdomäne oder legen Sie eine benutzerdefinierte Domäne für Ihren Arbeitsbereich fest.
### Domäne anpassen
@@ -21,8 +19,6 @@ Für benutzerdefinierte Domänen müssen Sie die DNS-Einstellungen bei Ihrem Dom
## Genehmigte Domänen
Konfigurieren Sie dies unter **Einstellungen → Mitglieder → Zugriff**.
Jede Person mit einer E-Mail-Adresse in diesen Domänen darf sich automatisch für diesen Arbeitsbereich registrieren.
### Genehmigte Zugriffsdomäne hinzufügen
@@ -39,16 +35,13 @@ Dies ist nützlich, um Ihrem gesamten Team die Selbstregistrierung zu ermöglich
## Öffentliche Domains
Konfigurieren Sie dies unter **Einstellungen → Apps → Entwickler**.
Stellen Sie eine vollständige und sichere Hosting-Umgebung auf diesen Domains bereit. Eine öffentliche Domain kann an eine bestimmte App gebunden werden wenn sie gebunden ist, sind unter dieser Domain nur die HTTP-gerouteten Logikfunktionen dieser App erreichbar. Lassen Sie die Bindung leer, um alle HTTP-Routen des Arbeitsbereichs bereitzustellen.
Stellen Sie eine vollständige und sichere Hosting-Umgebung auf diesen Domains bereit.
### Öffentliche Domäne hinzufügen
1. Klicken Sie auf **Öffentliche Domäne hinzufügen**
2. Geben Sie die Domäne ein, die Sie verwenden möchten
3. Optional an eine App binden
4. Konfigurieren Sie die DNS-Einstellungen gemäß Anleitung
5. Überprüfen Sie die Domäne
3. Konfigurieren Sie die DNS-Einstellungen gemäß Anleitung
4. Überprüfen Sie die Domäne
SSL-Zertifikate werden für öffentliche Domänen automatisch bereitgestellt.
@@ -77,7 +77,7 @@ Verwalten Sie Einladungen, die noch nicht angenommen wurden:
Erlauben Sie Teammitgliedern, basierend auf ihrer E-Mail-Domäne automatisch beizutreten:
1. Gehen Sie zu **Einstellungen → Mitglieder → Zugriff**
1. Gehen Sie zu **Einstellungen → Domänen**
2. Fügen Sie die Domäne Ihres Unternehmens hinzu (z. B. `yourcompany.com`)
3. Jede Person mit dieser E-Mail-Domäne kann ohne Einladung beitreten
@@ -137,7 +137,7 @@ Ja, Sie können mehrere E-Mail-Konten verbinden. Gehen Sie zu **Einstellungen
<AccordionGroup>
<Accordion title="Kann ich meine Arbeitsbereichsdomäne anpassen?">
Ja! Gehen Sie zu **Einstellungen → Allgemein → Workspace-Domäne** und klicken Sie auf **Domäne anpassen**. Sie haben zwei Optionen:
Ja! Gehen Sie zu **Einstellungen → Domänen** und klicken Sie auf **Domäne anpassen**. Sie haben zwei Optionen:
* **Subdomain**: Verwenden Sie eine Twenty-Subdomain wie `yourcompany.twenty.com`
* **Benutzerdefinierte Domäne**: Verwenden Sie Ihre eigene Domäne wie `crm.yourcompany.com` (erfordert DNS-Konfiguration)
@@ -146,7 +146,7 @@ Eine Subdomain ist schnell eingerichtet, während eine benutzerdefinierte Domän
</Accordion>
<Accordion title="Wie funktionieren genehmigte Zugriffsdomänen?">
Sie können genehmigte Zugriffsdomänen konfigurieren, damit Teammitglieder mit Firmen-E-Mail-Adressen Ihrem Arbeitsbereich automatisch beitreten können. Gehen Sie zu **Einstellungen → Mitglieder → Zugriff** und fügen Sie Ihre Firmendomäne hinzu (z. B. `yourcompany.com`).
Sie können genehmigte Zugriffsdomänen konfigurieren, damit Teammitglieder mit Firmen-E-Mail-Adressen Ihrem Arbeitsbereich automatisch beitreten können. Gehen Sie zu **Einstellungen → Domänen** und fügen Sie Ihre Firmendomäne hinzu (z. B. `yourcompany.com`).
</Accordion>
</AccordionGroup>
@@ -44,7 +44,7 @@ Fügen Sie Ihrem Arbeitsbereich Teammitglieder hinzu:
4. Weisen Sie geeignete Rollen zu
<Note>
Bevor Sie Ihr Team einladen, überprüfen Sie die Standardrolle unter **Einstellungen → Mitglieder → Rollen**. Neuen Mitgliedern wird diese Rolle beim Beitritt automatisch zugewiesen.
Bevor Sie Ihr Team einladen, überprüfen Sie die Standardrolle unter **Einstellungen → Rollen**. Neuen Mitgliedern wird diese Rolle beim Beitritt automatisch zugewiesen.
</Note>
## Checkliste für Arbeitsbereichseinstellungen
@@ -38,7 +38,7 @@ Sie benötigen zwei benutzerdefinierte Felder am Objekt „Opportunities“.
Wenn Benutzer diese berechneten Felder nicht manuell bearbeiten sollen:
1. Gehen Sie zu **Einstellungen → Mitglieder → Rollen**
1. Gehen Sie zu **Einstellungen → Rollen**
2. Wählen Sie die zu konfigurierende Rolle aus
3. Suchen Sie das Objekt „Opportunities“
4. Setzen Sie die Felder **Probability** und **Expected Amount** auf schreibgeschützt
@@ -61,7 +61,7 @@ Sie benötigen keine "Days in"-Felder für Closed Won und Closed Lost, da dies f
Wenn Benutzer diese berechneten Felder nicht manuell bearbeiten sollen:
1. Gehen Sie zu **Einstellungen → Mitglieder → Rollen**
1. Gehen Sie zu **Einstellungen → Rollen**
2. Rolle zum Konfigurieren auswählen
3. Suchen Sie das Objekt Opportunities
4. Setzen Sie die Felder "Last Entered" und "Days in" auf schreibgeschützt
@@ -307,5 +307,5 @@ AI Agent actions consume workflow credits based on the AI model used. See [Workf
</Note>
<Note>
AI agents respect role-based permissions. Sie können Agenten unter **Einstellungen → Mitglieder → Rollen** bestimmte Rollen zuweisen, um zu steuern, auf welche Daten sie zugreifen können. See [Permissions](/l/de/user-guide/permissions-access/capabilities/permissions) for details.
AI agents respect role-based permissions. You can assign specific roles to agents under **Settings → Roles** to control what data they can access. See [Permissions](/l/de/user-guide/permissions-access/capabilities/permissions) for details.
</Note>
@@ -8,7 +8,7 @@ description: Häufig gestellte Fragen zu Workflows in Twenty.
<Accordion title="Warum kann ich einen Workflow nicht aktivieren?">
Dies ist wahrscheinlich ein Berechtigungsproblem. Sie benötigen Zugriff auf Workflows, um sie zu erstellen und zu aktivieren.
**Lösung**: Wenden Sie sich an Ihren Workspace-Administrator, damit er Ihnen unter **Einstellungen → Mitglieder → Rollen** Zugriff auf Workflows gewährt.
**Lösung**: Wenden Sie sich an Ihren Workspace-Administrator, damit er Ihnen unter **Einstellungen → Rollen** Zugriff auf Workflows gewährt.
Wenn Sie den Bereich Workflows in Ihrer Seitenleiste überhaupt nicht sehen, bestätigt dies ein Berechtigungsproblem.
</Accordion>
@@ -37,7 +37,7 @@ Ambas estão disponíveis como REST e GraphQL. GraphQL adiciona upserts em lote
Authorization: Bearer YOUR_API_KEY
```
Crie uma chave de API em **Settings → API & Webhooks → + Create key**. Copie-a imediatamente — ela é exibida apenas uma vez. As chaves podem ser limitadas a uma função específica em **Settings → Members → Roles → Assignment tab** para restringir o que podem acessar.
Crie uma chave de API em **Settings → API & Webhooks → + Create key**. Copie-a imediatamente — ela é exibida apenas uma vez. As chaves podem ter escopo para uma função específica em **Settings → Roles → Assignment tab** para limitar o que podem acessar.
<VimeoEmbed videoId="928786722" title="Criando chave de API" />
@@ -88,7 +88,7 @@ Sua chave de API concede acesso a dados confidenciais. Não a compartilhe com se
Para maior segurança, atribua uma função específica para limitar o acesso:
1. Vá para **Configurações → Membros → Funções**
1. Vá para **Configurações → Funções**
2. Clique na função que deseja atribuir
3. Abra a aba de **Atribuição**
4. Em **Chaves de API**, clique em **+ Atribuir à chave de API**
@@ -9,7 +9,7 @@ Os agentes de IA respeitam sua estrutura de permissões existente. Isso é parti
## Atribuir uma Função a um Agente de IA
1. Vá para **Configurações → Membros → Funções**
1. Vá para **Configurações → Funções**
2. Clique na função que deseja atribuir
3. Abra a aba de **Atribuição**
4. Em **Agentes de IA**, clique em **+ Atribuir ao agente de IA**
@@ -17,7 +17,7 @@ description: Perguntas frequentes sobre recursos de IA na Twenty.
</Accordion>
<Accordion title="Os agentes de IA terão acesso a todos os meus dados?">
Os agentes de IA funcionarão de acordo com o sistema de permissões. Você pode atribuir funções específicas aos agentes de IA em **Configurações → Membros → Funções**, dando a você controle total sobre quais dados eles podem acessar e quais ações podem executar.
Os agentes de IA funcionarão de acordo com o sistema de permissões. Você pode atribuir funções específicas aos agentes de IA em **Configurações → Funções**, dando a você controle total sobre quais dados eles podem acessar e quais ações podem executar.
</Accordion>
<Accordion title="Como os créditos de IA vão funcionar?">
@@ -48,7 +48,7 @@ Amplie seus fluxos de trabalho com ações com IA e agentes autônomos.
Os agentes de IA serão gerenciados pelo sistema de permissões existente:
1. Vá para **Configurações → Membros → Funções**
1. Vá para **Configurações → Funções**
2. Configure quais dados cada agente de IA pode acessar
3. Defina permissões de leitura/gravação por objeto
@@ -214,7 +214,7 @@ Após importar os dados, complete a configuração do seu espaço de trabalho:
### Configure funções e permissões
* Configure as funções em **Definições → Membros → Funções**
* Configure as funções em **Definições → Funções**
* Atribua os utilizadores às funções apropriadas
### Ligue o e-mail e o calendário
@@ -127,7 +127,7 @@ Depois de importar os dados, recrie manualmente:
### Funções e Permissões
* Configure as funções em **Definições → Membros → Funções**
* Configure as funções em **Configurações → Funções**
* Atribua os utilizadores às funções apropriadas
### Integrações
@@ -13,7 +13,7 @@ O sistema de permissões do Twenty permite que você controle o acesso a três
Para criar uma nova função:
1. Vá para **Configurações → Membros → Funções**
1. Vá para **Configurações → Funções**
2. Em **Todas as Funções**, clique em **+ Criar Função**
3. Digite um nome para a função
4. Na aba padrão **Permissões**, [configure as permissões](#customize-permissions)
@@ -23,7 +23,7 @@ Para criar uma nova função:
Para excluir uma função:
1. Vá para **Configurações → Membros → Funções**
1. Vá para **Configurações → Funções**
2. Clique na função que deseja remover
3. Abra a aba de **Configurações** e clique em **Excluir Função**
4. Clique em **Confirmar** no modal
@@ -36,13 +36,13 @@ Se uma função for excluída, qualquer membro do espaço de trabalho atribuído
### Visualizar Atribuições Atuais
* Vá para **Configurações → Membros → Funções**
* Vá para **Configurações → Funções**
* Veja todas as funções e quantos membros estão atribuídos a cada uma
* Veja quais membros têm quais funções
### Atribuir uma Função a um Membro
1. Vá para **Configurações → Membros → Funções**
1. Vá para **Configurações → Funções**
2. Clique na função que deseja atribuir
3. Abra a aba de **Atribuição**
4. Clique em **+ Atribuir a membro**
@@ -51,7 +51,7 @@ Se uma função for excluída, qualquer membro do espaço de trabalho atribuído
### Definir Função Padrão
1. Vá para **Configurações → Membros → Funções**
1. Vá para **Configurações → Funções**
2. Na seção **Opções**, encontre **Função Padrão**
3. Selecione qual função novos membros devem receber automaticamente
4. Novos membros do espaço de trabalho serão atribuídos a essa função ao ingressar
@@ -168,7 +168,7 @@ Além dos membros do espaço de trabalho, funções também podem ser atribuída
### Atribuir uma função a uma chave de API
1. Vá para **Configurações → Membros → Funções**
1. Vá para **Configurações → Funções**
2. Clique na função que deseja atribuir
3. Abra a aba de **Atribuição**
4. Em **Chaves de API**, clique em **+ Atribuir à chave de API**
@@ -183,7 +183,7 @@ Chaves de API sem uma função atribuída usam permissões padrão. Para maior s
### Atribuir uma função a um agente de IA
1. Vá para **Configurações → Membros → Funções**
1. Vá para **Configurações → Funções**
2. Clique na função que deseja atribuir
3. Abra a aba de **Atribuição**
4. Em **Agentes de IA**, clique em **+ Atribuir ao agente de IA**
@@ -19,7 +19,7 @@ Qualquer membro do espaço de trabalho atribuído a essa função será automati
</Accordion>
<Accordion title="Como defino uma função padrão para novos membros?">
Vá para **Configurações → Membros → Funções**, encontre a opção **Função Padrão** e selecione qual função os novos membros devem receber automaticamente ao entrar.
Vá para **Configurações → Funções**, encontre a opção **Função Padrão** e selecione qual função os novos membros devem receber automaticamente ao entrar.
</Accordion>
<Accordion title="Posso atribuir várias funções a um único usuário?">
@@ -64,7 +64,7 @@ As permissões em nível de linha estarão disponíveis no plano **Organization*
</Accordion>
<Accordion title="Como deixar um campo somente leitura para determinados usuários?">
1. Vá para **Configurações → Membros → Funções**
1. Vá para **Configurações → Funções**
2. Selecione a função
3. Navegue até o objeto que contém o campo
4. Defina a permissão do campo como **Ver campo** (sem Editar campo)
@@ -3,12 +3,10 @@ title: Configurações de Domínio
description: Configure o domínio do espaço de trabalho, os domínios de acesso aprovados e os domínios públicos.
---
As configurações de domínio ficam em três lugares, dependendo do que você está configurando.
Configure as configurações de domínio em **Configurações → Domínios**.
## Domínio do espaço de trabalho
Configure em **Configurações → Geral → Domínio do workspace**.
Edite o nome do seu subdomínio ou defina um domínio personalizado para o seu espaço de trabalho.
### Personalizar domínio
@@ -21,8 +19,6 @@ Para domínios personalizados, você precisará configurar as configurações de
## Domínios Aprovados
Configure em **Configurações → Membros → Acesso**.
Qualquer pessoa com um endereço de e-mail nesses domínios pode inscrever-se neste espaço de trabalho automaticamente.
### Adicionar Domínio de Acesso Aprovado
@@ -39,16 +35,13 @@ Isso é útil para permitir que toda a sua equipe se registre por conta própria
## Domínios Públicos
Configure em **Configurações → Aplicativos → Desenvolvedor**.
Provisionar um ambiente de hospedagem completo e seguro nestes domínios. Um domínio público pode ser vinculado a um app específico — quando vinculado, somente as funções de lógica roteadas por HTTP desse app ficam acessíveis no domínio. Deixe a vinculação vazia para expor todas as rotas HTTP do workspace.
Provisionar um ambiente de hospedagem completo e seguro nestes domínios.
### Adicionar Domínio Público
1. Clique em **Adicionar Domínio Público**
2. Insira o domínio que você deseja usar
3. Opcionalmente vincule-o a um app
4. Configure as configurações de DNS conforme as instruções
5. Verifique o domínio
3. Configure as configurações de DNS conforme as instruções
4. Verifique o domínio
Os certificados SSL são provisionados automaticamente para domínios públicos.
@@ -77,7 +77,7 @@ Gerencie convites que ainda não foram aceitos:
Permita que membros da equipe ingressem automaticamente com base no domínio de e-mail:
1. Vá para **Configurações → Membros → Acesso**
1. Vá para **Configurações → Domínios**
2. Adicione o domínio da sua empresa (por exemplo, `yourcompany.com`)
3. Qualquer pessoa com esse domínio de e-mail pode ingressar sem convite
@@ -137,7 +137,7 @@ Sim, você pode conectar várias contas de e-mail. Vá para **Configurações
<AccordionGroup>
<Accordion title="Posso personalizar o domínio do meu espaço de trabalho?">
Sim! Vá para **Configurações → Geral → Domínio do espaço de trabalho** e clique em **Personalizar domínio**. Você tem duas opções:
Sim! Vá para **Configurações → Domínios** e clique em **Personalizar domínio**. Você tem duas opções:
* **Subdomínio**: Use um subdomínio do Twenty como `yourcompany.twenty.com`
* **Domínio personalizado**: Use seu próprio domínio, como `crm.yourcompany.com` (requer configuração de DNS)
@@ -146,7 +146,7 @@ Um subdomínio é rápido de configurar, enquanto um domínio personalizado ofer
</Accordion>
<Accordion title="Como funcionam os domínios de acesso aprovados?">
Você pode configurar domínios de acesso aprovados para que membros da equipe com endereços de e-mail da empresa possam ingressar automaticamente no seu espaço de trabalho. Vá para **Configurações → Membros → Acesso** e adicione o domínio da sua empresa (por exemplo, `yourcompany.com`).
Você pode configurar domínios de acesso aprovados para que membros da equipe com endereços de e-mail da empresa possam ingressar automaticamente no seu espaço de trabalho. Vá para **Configurações → Domínios** e adicione o domínio da sua empresa (por exemplo, `yourcompany.com`).
</Accordion>
</AccordionGroup>
@@ -44,7 +44,7 @@ Adicione membros da equipa ao seu espaço de trabalho:
4. Atribua funções apropriadas
<Note>
Antes de convidar a sua equipa, verifique a função padrão em **Configurações → Membros → Funções**. Novos membros recebem automaticamente essa função ao entrar.
Antes de convidar a sua equipa, verifique a função padrão em **Configurações → Funções**. Novos membros recebem automaticamente essa função ao entrar.
</Note>
## Lista de Verificação das Configurações do Espaço de Trabalho
@@ -38,7 +38,7 @@ Você precisa de dois campos personalizados no objeto Oportunidades.
Se você não quiser que os usuários editem manualmente esses campos calculados:
1. Vá para **Configurações → Membros → Funções**
1. Vá para **Configurações → Funções**
2. Selecione a função a configurar
3. Encontre o objeto Oportunidades
4. Defina os campos **Probability** e **Expected Amount** como somente leitura
@@ -61,7 +61,7 @@ Você não precisa de campos "Dias em" para Fechado Ganho e Fechado Perdido, poi
Se você não quiser que os usuários editem manualmente esses campos calculados:
1. Vá para **Configurações → Membros → Funções**
1. Vá para **Configurações → Funções**
2. Selecione a função a configurar
3. Encontre o objeto Oportunidades
4. Defina os campos "Última entrada" e "Dias em" como somente leitura
@@ -307,5 +307,5 @@ As ações do Agente de IA consomem créditos de fluxo de trabalho com base no m
</Note>
<Note>
Os agentes de IA respeitam permissões baseadas em funções. Você pode atribuir funções específicas aos agentes em **Configurações → Membros → Funções** para controlar a quais dados eles podem acessar. Veja [Permissões](/l/pt/user-guide/permissions-access/capabilities/permissions) para obter detalhes.
Os agentes de IA respeitam permissões baseadas em funções. Você pode atribuir funções específicas aos agentes em **Configurações → Funções** para controlar a quais dados eles podem acessar. Veja [Permissões](/l/pt/user-guide/permissions-access/capabilities/permissions) para obter detalhes.
</Note>
@@ -8,7 +8,7 @@ description: Perguntas frequentes sobre fluxos de trabalho na Twenty.
<Accordion title="Por que não consigo ativar um fluxo de trabalho?">
Isso provavelmente é um problema de permissões. Você precisa de acesso a fluxos de trabalho para criá-los e ativá-los.
**Solução**: Entre em contato com o administrador do seu espaço de trabalho para conceder acesso a fluxos de trabalho em **Configurações → Membros → Funções**.
**Solução**: Entre em contato com o administrador do seu espaço de trabalho para conceder acesso a fluxos de trabalho em **Configurações → Funções**.
Se você não vê a seção de fluxos de trabalho na sua barra lateral, isso confirma que é um problema de permissões.
</Accordion>
@@ -37,7 +37,7 @@ Ambele sunt disponibile ca REST și GraphQL. GraphQL adaugă upsert-uri în lot
Authorization: Bearer YOUR_API_KEY
```
Creează o cheie API în **Settings → API & Webhooks → + Create key**. Copiază-o imediat — este afișată o singură dată. Cheile pot fi limitate la un rol specific în **Settings → Members → Roles → Assignment tab** pentru a restricționa la ce pot avea acces.
Creează o cheie API în **Settings → API & Webhooks → + Create key**. Copiază-o imediat — este afișată o singură dată. Cheile pot fi limitate la un rol specific în **Settings → Roles → Assignment tab** pentru a restricționa la ce pot avea acces.
<VimeoEmbed videoId="928786722" title="Crearea unei chei API" />
@@ -88,7 +88,7 @@ Cheia dvs. API oferă acces la date sensibile. Nu o partajați cu servicii care
Pentru o securitate sporită, atribuiți un rol specific pentru a limita accesul:
1. Accesați **Setări → Membri → Roluri**
1. Accesați **Setări → Roluri**
2. Faceți clic pe rolul pe care doriți să-l atribuiți
3. Deschideți fila **Atribuire**
4. În **API Keys**, faceți clic pe **+ Assign to API key**
@@ -9,7 +9,7 @@ Agenții AI respectă structura de permisiuni existentă. Acest lucru este deose
## Atribuiți un Rol unui Agent AI
1. Accesați **Setări → Membri → Roluri**
1. Accesați **Setări → Roluri**
2. Faceți clic pe rolul pe care doriți să-l atribuiți
3. Deschideți fila **Atribuire**
4. În **Agenți AI**, faceți clic pe **+ Atribuiți agentului AI**
@@ -17,7 +17,7 @@ description: Întrebări frecvente despre funcționalitățile IA din Twenty.
</Accordion>
<Accordion title="Vor avea agenții IA acces la toate datele mele?">
Agenții IA vor funcționa conform sistemului de permisiuni. Puteți atribui agenților IA roluri specifice în **Settings → Members → Roles**, oferindu-vă control total asupra datelor la care pot avea acces și a acțiunilor pe care le pot efectua.
Agenții IA vor funcționa conform sistemului de permisiuni. Puteți atribui agenților IA roluri specifice în **Settings → Roles**, oferindu-vă control total asupra datelor la care pot avea acces și a acțiunilor pe care le pot efectua.
</Accordion>
<Accordion title="Cum vor funcționa creditele IA?">
@@ -48,7 +48,7 @@ Extinde-ți fluxurile de lucru cu acțiuni bazate pe IA și agenți autonomi.
Agenții IA vor fi gestionați prin sistemul de permisiuni existent:
1. Accesați **Setări → Membri → Roluri**
1. Accesați **Setări → Roluri**
2. Configurează la ce date poate avea acces fiecare agent IA
3. Stabilește permisiuni de citire/scriere pentru fiecare obiect
@@ -214,7 +214,7 @@ După importul datelor, finalizați configurarea spațiului de lucru:
### Configurați roluri și permisiuni
* Configurați rolurile în **Setări → Membri → Roluri**
* Configurați rolurile în **Setări → Roluri**
* Atribuiți utilizatorilor rolurile corespunzătoare
### Conectați e-mailul și calendarul
@@ -127,7 +127,7 @@ După importarea datelor, recreați manual:
### Roluri și permisiuni
* Configurați rolurile în **Setări → Membri → Roluri**
* Configurați rolurile în **Setări → Roluri**
* Atribuiți utilizatorilor rolurile corespunzătoare
### Integrări
@@ -13,7 +13,7 @@ Sistemul de permisiuni al Twenty vă permite să controlați accesul la trei dom
Pentru a crea un rol nou:
1. Accesați **Setări → Membri → Roluri**
1. Accesați **Setări → Roluri**
2. Sub **Toate Rolurile**, faceți clic pe **+ Creează Rol**
3. Introduceți un nume de rol
4. În fila implicită **Permisiuni**, [configurați permisiunile](#customize-permissions)
@@ -23,7 +23,7 @@ Pentru a crea un rol nou:
Pentru a șterge un rol:
1. Accesați **Setări → Membri → Roluri**
1. Accesați **Setări → Roluri**
2. Faceți clic pe rolul pe care doriți să-l eliminați
3. Deschideți tab-ul **Setări**, apoi faceți clic pe **Șterge Rol**
4. Faceți clic pe **Confirmă** în fereastra modală
@@ -36,13 +36,13 @@ Dacă un rol este șters, orice membru al workspace-ului alocat acestuia va fi r
### Vizualizați Atribuirile Curente
* Accesați **Setări → Membri → Roluri**
* Accesați **Setări → Roluri**
* Vedeți toate rolurile și câți membri sunt alocați fiecăruia
* Vizualizați ce membri au ce roluri
### Atribuiți un Rol unui Membru
1. Accesați **Setări → Membri → Roluri**
1. Accesați **Setări → Roluri**
2. Faceți clic pe rolul pe care doriți să-l atribuiți
3. Deschideți fila **Atribuire**
4. Faceți clic pe **+ Atribuie membrului**
@@ -51,7 +51,7 @@ Dacă un rol este șters, orice membru al workspace-ului alocat acestuia va fi r
### Setați Rolul Implicit
1. Accesați **Setări → Membri → Roluri**
1. Accesați **Setări → Roluri**
2. În secțiunea **Opțiuni**, găsiți **Rol Implicit**
3. Selectați ce rol ar trebui să primească automat noii membri
4. Noii membri ai workspace-ului vor primi acest rol când se alătură
@@ -168,7 +168,7 @@ Pe lângă membrii workspace-ului, rolurile pot fi atribuite și cheilor API și
### Atribuiți un rol unei chei API
1. Accesați **Setări → Membri → Roluri**
1. Accesați **Setări → Roluri**
2. Faceți clic pe rolul pe care doriți să-l atribuiți
3. Deschideți fila **Atribuire**
4. În **API Keys**, faceți clic pe **+ Assign to API key**
@@ -183,7 +183,7 @@ Cheile API fără un rol atribuit folosesc permisiunile implicite. Pentru o secu
### Atribuiți un rol unui agent AI
1. Accesați **Setări → Membri → Roluri**
1. Accesați **Setări → Roluri**
2. Faceți clic pe rolul pe care doriți să-l atribuiți
3. Deschideți fila **Atribuire**
4. În **AI Agents**, faceți clic pe **+ Assign to AI agent**
@@ -19,7 +19,7 @@ Orice membru al spațiului de lucru atribuit acelui rol va fi reatribuit automat
</Accordion>
<Accordion title="Cum setez un rol implicit pentru noii membri?">
Accesați **Setări → Membri → Roluri**, găsiți opțiunea **Default Role** și selectați ce rol ar trebui să primească automat noii membri când se alătură.
Accesați **Settings → Roles**, găsiți opțiunea **Default Role** și selectați ce rol ar trebui să primească automat noii membri când se alătură.
</Accordion>
<Accordion title="Pot să atribui mai multe roluri unui singur utilizator?">
@@ -64,7 +64,7 @@ Permisiunile la nivel de rând vor fi disponibile în planul **Organization** p
</Accordion>
<Accordion title="Cum fac un câmp doar pentru citire pentru anumiți utilizatori?">
1. Accesați **Setări → Membri → Roluri**
1. Accesați **Setări → Roluri**
2. Selectați rolul
3. Navigați la obiectul care conține câmpul
4. Setați permisiunea câmpului la **See Field** (fără Edit Field)
@@ -3,12 +3,10 @@ title: Setări domeniu
description: Configurați domeniul spațiului de lucru, domeniile de acces aprobate și domeniile publice.
---
Setările de domeniu se află în trei locuri, în funcție de ceea ce configurați.
Configurați setările de domeniu în **Setări → Domenii**.
## Domeniu Spațiu de lucru
Configurați în **Setări → General → Domeniu al spațiului de lucru**.
Editați numele subdomeniului sau setați un domeniu personalizat pentru spațiul de lucru.
### Personalizează Domeniul
@@ -21,8 +19,6 @@ Pentru domeniile personalizate, va trebui să configurați setările DNS la furn
## Domenii Aprobate
Configurați în **Setări → Membri → Acces**.
Oricine are o adresă de email pe aceste domenii se poate înscrie automat în acest spațiu de lucru.
### Adaugă Domeniu de Acces Aprobat
@@ -39,16 +35,13 @@ Acest lucru este util pentru a permite întregii echipe să se înregistreze sin
## Domenii Publice
Configurați în **Setări → Aplicații → Dezvoltator**.
Provisionați un mediu de găzduire complet și sigur pe aceste domenii. Un domeniu public poate fi asociat cu o anumită aplicație — când este asociat, numai funcțiile de logică rutată HTTP ale acelei aplicații sunt accesibile pe domeniu. Lăsați asocierea goală pentru a expune toate rutele HTTP ale spațiului de lucru.
Provisionați un mediu de găzduire complet și sigur pe aceste domenii.
### Adaugă Domeniu Public
1. Faceți clic pe **Adăugați domeniu public**
2. Introduceți domeniul pe care doriți să îl utilizați
3. Opțional, asociați-l unei aplicații
4. Configurați setările DNS conform instrucțiunilor
5. Verificați domeniul
3. Configurați setările DNS conform instrucțiunilor
4. Verificați domeniul
Certificatele SSL sunt furnizate automat pentru domeniile publice.
@@ -77,7 +77,7 @@ Gestionați invitațiile care nu au fost acceptate:
Permiteți membrilor echipei să se alăture automat pe baza domeniului lor de e-mail:
1. Accesați **Setări → Membri → Acces**
1. Accesați **Setări → Domenii**
2. Adăugați domeniul companiei dvs. (de ex., `yourcompany.com`)
3. Oricine are acel domeniu de e-mail se poate alătura fără invitație
@@ -137,7 +137,7 @@ Da, puteți conecta mai multe conturi de e-mail. Accesați **Setări → Conturi
<AccordionGroup>
<Accordion title="Pot personaliza domeniul spațiului meu de lucru?">
Da! Accesați **Setări → General → Domeniul spațiului de lucru** și faceți clic pe **Personalizează domeniul**. Aveți două opțiuni:
Da! Accesați **Setări → Domenii** și faceți clic pe **Personalizează domeniul**. Aveți două opțiuni:
* **Subdomeniu**: Folosiți un subdomeniu Twenty, de exemplu `yourcompany.twenty.com`
* **Domeniu personalizat**: Folosiți propriul domeniu, de exemplu `crm.yourcompany.com` (necesită configurarea DNS)
@@ -146,7 +146,7 @@ Un subdomeniu se configurează rapid, în timp ce un domeniu personalizat oferă
</Accordion>
<Accordion title="Cum funcționează domeniile de acces aprobate?">
Puteți configura domenii de acces aprobate astfel încât membrii echipei cu adrese de e-mail ale companiei să se poată alătura automat spațiului dvs. de lucru. Accesați **Setări → Membri → Acces** și adăugați domeniul companiei (de ex., `yourcompany.com`).
Puteți configura domenii de acces aprobate astfel încât membrii echipei cu adrese de e-mail ale companiei să se poată alătura automat spațiului dvs. de lucru. Accesați **Setări → Domenii** și adăugați domeniul companiei (de ex., `yourcompany.com`).
</Accordion>
</AccordionGroup>
@@ -44,7 +44,7 @@ Adăugați membri ai echipei în spațiul de lucru:
4. Atribuiți rolurile corespunzătoare
<Note>
Înainte de a vă invita echipa, verificați rolul implicit în **Setări → Membri → Roluri**. Noilor membri li se atribuie automat acest rol când se alătură.
Înainte de a vă invita echipa, verificați rolul implicit în **Setări → Roluri**. Noilor membri li se atribuie automat acest rol când se alătură.
</Note>
## Listă de verificare pentru setările spațiului de lucru
@@ -38,7 +38,7 @@ Aveți nevoie de două câmpuri personalizate pe obiectul Oportunități.
Dacă nu doriți ca utilizatorii să editeze manual aceste câmpuri calculate:
1. Accesați **Setări → Membri → Roluri**
1. Accesați **Setări → Roluri**
2. Selectați rolul pe care doriți să-l configurați
3. Găsiți obiectul Oportunități
4. Setați câmpurile **Probabilitate** și **Sumă estimată** ca numai în citire
@@ -61,7 +61,7 @@ Nu aveți nevoie de câmpuri "Zile în" pentru Închis - câștigat și Închis
Dacă nu doriți ca utilizatorii să editeze manual aceste câmpuri calculate:
1. Accesați **Setări → Membri → Roluri**
1. Accesați **Setări → Roluri**
2. Selectați rolul de configurat
3. Găsiți obiectul Oportunități
4. Setați câmpurile "Ultima intrare" și "Zile în" ca doar pentru citire
@@ -307,5 +307,5 @@ Acțiunile agentului AI consumă credite ale fluxului de lucru în funcție de m
</Note>
<Note>
Agenții AI respectă permisiunile bazate pe roluri. Puteți atribui roluri specifice agenților în **Settings → Members → Roles** pentru a controla la ce date pot avea acces. Consultați [Permisiuni](/l/ro/user-guide/permissions-access/capabilities/permissions) pentru detalii.
Agenții AI respectă permisiunile bazate pe roluri. Puteți atribui roluri specifice agenților în **Settings → Roles** pentru a controla la ce date pot avea acces. Consultați [Permisiuni](/l/ro/user-guide/permissions-access/capabilities/permissions) pentru detalii.
</Note>
@@ -8,7 +8,7 @@ description: Întrebări frecvente despre fluxurile de lucru din Twenty.
<Accordion title="De ce nu pot activa un flux de lucru?">
Este probabil o problemă de permisiuni. Aveți nevoie de acces la fluxuri de lucru pentru a le crea și activa.
**Soluție**: Contactați administratorul spațiului de lucru pentru a vă acorda acces la fluxuri de lucru în **Setări → Membri → Roluri**.
**Soluție**: Contactați administratorul spațiului de lucru pentru a vă acorda acces la fluxuri de lucru în **Setări → Roluri**.
Dacă nu vedeți deloc secțiunea Fluxuri de lucru în bara laterală, acest lucru confirmă că este o problemă de permisiuni.
</Accordion>
@@ -37,7 +37,7 @@ CRUD над записями: Люди, Компании, Сделки, ваши
Authorization: Bearer YOUR_API_KEY
```
Создайте ключ API в **Settings → API & Webhooks → + Create key**. Сразу скопируйте его — он показывается только один раз. Ключам можно задать область действия для конкретной роли в разделе **Settings → Members → Roles → Assignment tab**, чтобы ограничить их доступ.
Создайте ключ API в **Settings → API & Webhooks → + Create key**. Сразу скопируйте его — он показывается только один раз. Ключам можно задать область действия для конкретной роли в разделе **Settings → Roles → Assignment tab**, чтобы ограничить их доступ.
<VimeoEmbed videoId="928786722" title="Создание ключа API" />
@@ -88,7 +88,7 @@ Authorization: Bearer YOUR_API_KEY
Для повышения безопасности назначьте конкретную роль, чтобы ограничить доступ:
1. Перейдите в **Настройки → Участники → Роли**
1. Перейдите в **Настройки → Роли**
2. Нажмите на роль, которую хотите назначить
3. Откройте вкладку **Назначение**
4. В разделе **Ключи API** нажмите **+ Назначить ключу API**
@@ -9,7 +9,7 @@ description: Управляйте тем, к чему агенты ИИ могу
## Назначить роль агенту ИИ
1. Перейдите в **Настройки → Участники → Роли**
1. Перейдите в **Настройки → Роли**
2. Нажмите на роль, которую вы хотите назначить
3. Откройте вкладку **Назначение**
4. В разделе **Агенты ИИ** нажмите **+ Назначить агенту ИИ**
@@ -17,7 +17,7 @@ description: Часто задаваемые вопросы о функциях
</Accordion>
<Accordion title="Будут ли ИИ-агенты иметь доступ ко всем моим данным?">
ИИ-агенты будут работать в рамках системы разрешений. Вы можете назначать ИИ-агентам конкретные роли в **Настройки → Участники → Роли**, получая полный контроль над тем, к каким данным у них есть доступ и какие действия они могут выполнять.
ИИ-агенты будут работать в рамках системы разрешений. Вы можете назначать ИИ-агентам конкретные роли в **Настройки → Роли**, получая полный контроль над тем, к каким данным у них есть доступ и какие действия они могут выполнять.
</Accordion>
<Accordion title="Как будут работать кредиты ИИ?">
@@ -48,7 +48,7 @@ Twenty разрабатывает возможности ИИ, чтобы пом
ИИ-агенты будут управляться через существующую систему разрешений:
1. Перейдите в **Настройки → Участники → Роли**
1. Перейдите в **Настройки → Роли**
2. Настройте, к каким данным каждый ИИ-агент может получать доступ
3. Задайте права на чтение и запись для каждого объекта
@@ -214,7 +214,7 @@ Jane,Doe,jane@widgets.co,https://widgets.co
### Настройте роли и разрешения
* Настройте роли в **Настройки → Участники → Роли**
* Настройте роли в **Настройки → Роли**
* Назначьте пользователей на соответствующие роли
### Подключите электронную почту и календарь
@@ -127,7 +127,7 @@ Acme Corp,https://acme.com,john@yourcompany.com
### Роли и разрешения
* Настройте роли в **Настройки → Участники → Роли**
* Настройте роли в **Настройки → Роли**
* Назначьте пользователям соответствующие роли
### Интеграции
@@ -13,7 +13,7 @@ description: Управляйте доступом к объектам, поля
Чтобы создать новую роль:
1. Перейдите в **Настройки → Участники → Роли**
1. Перейдите в **Настройки → Роли**
2. В разделе **Все роли** нажмите **+ Создать роль**
3. Введите имя роли
4. На вкладке **Разрешения** по умолчанию [настройте разрешения](#customize-permissions)
@@ -23,7 +23,7 @@ description: Управляйте доступом к объектам, поля
Чтобы удалить роль:
1. Перейдите в **Настройки → Участники → Роли**
1. Перейдите в **Настройки → Роли**
2. Нажмите на роль, которую хотите удалить
3. Откройте вкладку **Настройки**, затем нажмите **Удалить роль**
4. Нажмите **Подтвердить** в модальном окне
@@ -36,13 +36,13 @@ description: Управляйте доступом к объектам, поля
### Просмотр текущих назначений
* Перейдите в **Настройки → Участники → Роли**
* Перейдите в **Настройки → Роли**
* Просмотрите все роли и количество назначенных им участников
* Просмотрите, какие роли у каких участников
### Назначить роль участнику
1. Перейдите в **Настройки → Участники → Роли**
1. Перейдите в **Настройки → Роли**
2. Нажмите на роль, которую вы хотите назначить
3. Откройте вкладку **Назначение**
4. Нажмите **+ Назначить участнику**
@@ -51,7 +51,7 @@ description: Управляйте доступом к объектам, поля
### Установить роль по умолчанию
1. Перейдите в **Настройки → Участники → Роли**
1. Перейдите в **Настройки → Роли**
2. В разделе **Опции** найдите **Роль по умолчанию**
3. Выберите, какую роль новые участники должны получать автоматически
4. Новые участники рабочего пространства будут получать эту роль при присоединении
@@ -168,7 +168,7 @@ description: Управляйте доступом к объектам, поля
### Назначить роль ключу API
1. Перейдите в **Настройки → Участники → Роли**
1. Перейдите в **Настройки → Роли**
2. Нажмите на роль, которую вы хотите назначить
3. Откройте вкладку **Назначение**
4. В разделе **Ключи API** нажмите **+ Назначить ключу API**
@@ -183,7 +183,7 @@ description: Управляйте доступом к объектам, поля
### Назначить роль AI-агенту
1. Перейдите в **Настройки → Участники → Роли**
1. Перейдите в **Настройки → Роли**
2. Нажмите на роль, которую вы хотите назначить
3. Откройте вкладку **Назначение**
4. В разделе **AI-агенты** нажмите **+ Назначить AI-агенту**
@@ -19,7 +19,7 @@ description: Часто задаваемые вопросы о ролях и р
</Accordion>
<Accordion title="Как установить роль по умолчанию для новых участников?">
Перейдите в **Настройки → Участники → Роли**, найдите параметр **Роль по умолчанию** и выберите, какую роль новые участники должны автоматически получать при присоединении.
Перейдите в **Настройки → Роли**, найдите параметр **Роль по умолчанию** и выберите, какую роль новые участники должны автоматически получать при присоединении.
</Accordion>
<Accordion title="Могу ли я назначить одному пользователю несколько ролей?">
@@ -64,7 +64,7 @@ description: Часто задаваемые вопросы о ролях и р
</Accordion>
<Accordion title="Как сделать поле доступным только для чтения для отдельных пользователей?">
1. Перейдите в **Настройки → Участники → Роли**
1. Перейдите в **Настройки → Роли**
2. Выберите роль
3. Перейдите к объекту, который содержит это поле
4. Установите для поля разрешение **Просмотр поля** (без **Редактирование поля**)
@@ -3,12 +3,10 @@ title: Настройки доменов
description: Настройте домен рабочего пространства, утверждённые домены доступа и публичные домены.
---
Настройки доменов находятся в трёх местах, в зависимости от того, что вы настраиваете.
Настройте параметры доменов в **Настройки → Домены**.
## Домен рабочей области
Настройте в **Настройки → Общие → Домен рабочего пространства**.
Измените имя своего субдомена или установите собственный домен для вашего рабочего пространства.
### Настроить домен
@@ -21,8 +19,6 @@ description: Настройте домен рабочего пространст
## Утвержденные домены
Настройте в **Настройки → Участники → Доступ**.
Любой пользователь с адресом электронной почты в этих доменах может автоматически зарегистрироваться в этом рабочем пространстве.
### Добавить утвержденный домен доступа
@@ -39,16 +35,13 @@ description: Настройте домен рабочего пространст
## Публичные домены
Настройте в **Настройки → Приложения → Разработчик**.
Подготовьте полную и безопасную хостинг-среду на этих доменах. Публичный домен можно привязать к определённому приложению — при такой привязке только функции логики с HTTP-маршрутизацией этого приложения будут доступны на домене. Оставьте привязку пустой, чтобы открыть доступ ко всем HTTP-маршрутам рабочего пространства.
Подготовьте полную и безопасную хостинг-среду на этих доменах.
### Добавить публичный домен
1. Нажмите **Добавить публичный домен**
2. Введите домен, который вы хотите использовать
3. При желании привяжите его к приложению
4. Настройте параметры DNS согласно инструкциям
5. Подтвердите домен
3. Настройте параметры DNS согласно инструкциям
4. Подтвердите домен
SSL-сертификаты автоматически выпускаются для публичных доменов.
@@ -77,7 +77,7 @@ description: Пригласите членов команды и управля
Разрешите участникам команды присоединяться автоматически на основе домена их электронной почты:
1. Перейдите в **Настройки → Участники → Доступ**
1. Перейдите в **Настройки → Домены**
2. Добавьте домен вашей компании (например, `yourcompany.com`)
3. Любой с таким доменом электронной почты сможет присоединиться без приглашения
@@ -137,7 +137,7 @@ description: Часто задаваемые вопросы о настройк
<AccordionGroup>
<Accordion title="Могу ли я настроить домен моего рабочего пространства?">
Да! Перейдите в **Настройки → Общие → Домен рабочего пространства** и нажмите **Настроить домен**. У вас есть два варианта:
Да! Перейдите в **Настройки → Домены** и нажмите **Настроить домен**. У вас есть два варианта:
* **Поддомен**: используйте поддомен Twenty, например `yourcompany.twenty.com`
* **Пользовательский домен**: используйте собственный домен, например `crm.yourcompany.com` (требуется настройка DNS)
@@ -146,7 +146,7 @@ description: Часто задаваемые вопросы о настройк
</Accordion>
<Accordion title="Как работают утвержденные домены доступа?">
Вы можете настроить утвержденные домены доступа, чтобы участники команды с корпоративными адресами электронной почты могли автоматически присоединяться к вашему рабочему пространству. Перейдите в **Настройки → Участники → Доступ** и добавьте домен вашей компании (например, `yourcompany.com`).
Вы можете настроить утвержденные домены доступа, чтобы участники команды с корпоративными адресами электронной почты могли автоматически присоединяться к вашему рабочему пространству. Перейдите в **Настройки → Домены** и добавьте домен вашей компании (например, `yourcompany.com`).
</Accordion>
</AccordionGroup>
@@ -44,7 +44,7 @@ description: Настройте рабочее пространство Twenty
4. Назначьте соответствующие роли
<Note>
Прежде чем приглашать команду, проверьте роль по умолчанию в разделе **Настройки → Участники → Роли**. Новые участники автоматически получают эту роль при присоединении.
Прежде чем приглашать команду, проверьте роль по умолчанию в разделе **Настройки → Роли**. Новые участники автоматически получают эту роль при присоединении.
</Note>
## Контрольный список настроек рабочего пространства
@@ -38,7 +38,7 @@ description: Рассчитывайте и отображайте взвешен
Если вы не хотите, чтобы пользователи вручную редактировали эти вычисляемые поля:
1. Перейдите в **Настройки → Участники → Роли**
1. Перейдите в **Настройки → Роли**
2. Выберите роль для настройки
3. Найдите объект «Сделки»
4. Установите поля **Вероятность** и **Ожидаемая сумма** как доступные только для чтения
@@ -61,7 +61,7 @@ description: Отслеживайте скорость сделок, фикси
Если вы не хотите, чтобы пользователи вручную редактировали эти вычисляемые поля:
1. Перейдите в **Настройки → Участники → Роли**
1. Перейдите в **Настройки → Роли**
2. Выберите роль для настройки
3. Найдите объект «Сделки»
4. Сделайте поля «Последний вход» и «Дней на этапе» доступными только для чтения
@@ -307,5 +307,5 @@ import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
</Note>
<Note>
ИИ-агенты соблюдают права доступа на основе ролей. Вы можете назначать агентам конкретные роли в разделе **Настройки → Участники → Роли**, чтобы контролировать, к каким данным у них есть доступ. См. [Разрешения](/l/ru/user-guide/permissions-access/capabilities/permissions) для подробностей.
ИИ-агенты соблюдают права доступа на основе ролей. Вы можете назначать агентам конкретные роли в **Настройки → Роли**, чтобы контролировать, к каким данным у них есть доступ. См. [Разрешения](/l/ru/user-guide/permissions-access/capabilities/permissions) для подробностей.
</Note>
@@ -8,7 +8,7 @@ description: Часто задаваемые вопросы о рабочих п
<Accordion title="Почему я не могу активировать рабочий процесс?">
Скорее всего, это проблема с правами доступа. Вам нужен доступ к рабочим процессам, чтобы создавать и активировать их.
**Решение**: Свяжитесь с администратором рабочего пространства, чтобы он предоставил вам доступ к рабочим процессам в разделе **Настройки → Участники → Роли**.
**Решение**: Свяжитесь с администратором рабочего пространства, чтобы он предоставил вам доступ к рабочим процессам в **Настройки → Роли**.
Если вы совсем не видите раздел "Рабочие процессы" в боковой панели, это подтверждает, что проблема в правах доступа.
</Accordion>
@@ -37,7 +37,7 @@ Her ikisi de REST ve GraphQL olarak mevcuttur. GraphQL, toplu upsert işlemleri
Authorization: Bearer YOUR_API_KEY
```
**Settings → API & Webhooks → + Create key** bölümünde bir API anahtarı oluşturun. Hemen kopyalayın — yalnızca bir kez gösterilir. Anahtarlar, erişebilecekleri alanları sınırlamak için **Settings → Members → Roles → Assignment** sekmesi altında belirli bir role bağlanabilir.
**Settings → API & Webhooks → + Create key** bölümünde bir API anahtarı oluşturun. Hemen kopyalayın — yalnızca bir kez gösterilir. Anahtarlar, erişebilecekleri alanları sınırlamak için **Settings → Roles → Assignment** sekmesi altında belirli bir role bağlanabilir.
<VimeoEmbed videoId="928786722" title="API anahtarı oluşturma" />
@@ -88,7 +88,7 @@ API anahtarınız hassas verilere erişim sağlar. Güvenilmeyen hizmetlerle pay
Daha iyi güvenlik için, erişimi sınırlamak amacıyla belirli bir rol atayın:
1. **Ayarlar → Üyeler → Roller** bölümüne gidin
1. **Ayarlar → Roller** bölümüne gidin
2. Atamak istediğiniz role tıklayın
3. **Atama** sekmesini açın
4. **API Anahtarları** altında, **+ API anahtarına ata**'ya tıklayın
@@ -9,7 +9,7 @@ Yapay zekâ ajanları mevcut izin yapınıza uyar. Bu, özellikle çalışma ala
## Bir Yapay Zekâ Ajanına Rol Atama
1. **Ayarlar → Üyeler → Roller** bölümüne gidin
1. **Ayarlar → Roller** bölümüne gidin
2. Atamak istediğiniz role tıklayın
3. **Atama** sekmesini açın
4. **Yapay Zekâ Ajanları** altında, **+ Yapay zekâ ajanına ata** seçeneğine tıklayın
@@ -17,7 +17,7 @@ description: Twenty'deki yapay zeka özellikleri hakkında sıkça sorulan sorul
</Accordion>
<Accordion title="Yapay zeka ajanlarının tüm verilerime erişimi olacak mı?">
Yapay zeka ajanları izin sistemi kapsamında çalışacaktır. **Ayarlar → Üyeler → Roller** altında yapay zeka ajanlarına belirli roller atayarak hangi verilere erişebilecekleri ve hangi işlemleri gerçekleştirebilecekleri üzerinde tam kontrol sahibi olabilirsiniz.
Yapay zeka ajanları izin sistemi kapsamında çalışacaktır. **Ayarlar → Roller** altında yapay zeka ajanlarına belirli roller atayarak hangi verilere erişebilecekleri ve hangi işlemleri gerçekleştirebilecekleri üzerinde tam kontrol sahibi olabilirsiniz.
</Accordion>
<Accordion title="Yapay zeka kredileri nasıl çalışacak?">
@@ -48,7 +48,7 @@ Bağlamınızı anlayan ve tüm Twenty verilerinize erişimi olan konuşmaya day
Yapay zeka ajanları mevcut izin sistemi aracılığıyla yönetilecektir:
1. **Ayarlar → Üyeler → Roller** bölümüne gidin
1. **Ayarlar → Roller** bölümüne gidin
2. Her bir yapay zeka ajanının hangi verilere erişebileceğini yapılandırın
3. Nesne başına okuma/yazma izinleri belirleyin
@@ -214,7 +214,7 @@ Verileri içe aktardıktan sonra çalışma alanı yapılandırmanızı tamamlay
### Rolleri ve İzinleri Yapılandırın
* Rolleri **Ayarlar → Üyeler → Roller** bölümünde yapılandırın
* Rolleri **Ayarlar → Roller** bölümünde yapılandırın
* Kullanıcıları uygun rollere atayın
### E-posta ve Takvimi Bağlayın
@@ -127,7 +127,7 @@ Verileri içe aktardıktan sonra, aşağıdakileri manuel olarak yeniden oluştu
### Roller ve İzinler
* Rolleri **Ayarlar → Üyeler → Roller** bölümünde yapılandırın
* Rolleri **Ayarlar → Roller** bölümünde yapılandırın
* Kullanıcıları uygun rollere atayın
### Entegrasyonlar
@@ -13,7 +13,7 @@ Twenty'nin izin sistemi, üç ana alana erişimi kontrol etmenizi sağlar:
Yeni bir rol oluşturmak için:
1. **Ayarlar → Üyeler → Roller** bölümüne gidin
1. **Ayarlar → Roller** bölümüne gidin
2. **Tüm Roller** altında, **+ Rol Oluştur** seçeneğine tıklayın
3. Bir rol adı girin
4. Varsayılan **İzinler** sekmesinde, [izinleri yapılandırın](#customize-permissions)
@@ -23,7 +23,7 @@ Yeni bir rol oluşturmak için:
Bir rolü silmek için:
1. **Ayarlar → Üyeler → Roller** bölümüne gidin
1. **Ayarlar → Roller** bölümüne gidin
2. Kaldırmak istediğiniz role tıklayın
3. **Ayarlar** sekmesini açın, ardından **Rolü Sil** seçeneğine tıklayın
4. Modalde **Onayla**'ya tıklayın
@@ -36,13 +36,13 @@ Bir rol silinirse, ona atanmış olan herhangi bir çalışma alanı üyesi otom
### Mevcut Atamaları Görüntüle
* **Ayarlar → Üyeler → Roller** bölümüne gidin
* **Ayarlar → Roller** bölümüne gidin
* Tüm rolleri ve her birine kaç üye atandığını görün
* Hangi üyelerin hangi rollere sahip olduğunu görün
### Bir Üyeye Rol Atama
1. **Ayarlar → Üyeler → Roller** bölümüne gidin
1. **Ayarlar → Roller** bölümüne gidin
2. Atamak istediğiniz role tıklayın
3. **Atama** sekmesini açın
4. **+ Üyeye Atama**'ya tıklayın
@@ -51,7 +51,7 @@ Bir rol silinirse, ona atanmış olan herhangi bir çalışma alanı üyesi otom
### Varsayılan Rol Ayarlama
1. **Ayarlar → Üyeler → Roller** bölümüne gidin
1. **Ayarlar → Roller** bölümüne gidin
2. **Seçenekler** bölümünde, **Varsayılan Rol**'ü bulun
3. Yeni üyelerin otomatik olarak alacağı rolü seçin
4. Yeni çalışma alanı üyeleri katıldığında bu role atanacaklardır
@@ -168,7 +168,7 @@ Genel çalışma alanı aksiyonlarına erişimi kontrol edin:
### Bir API Anahtarına Rol Atama
1. **Ayarlar → Üyeler → Roller** bölümüne gidin
1. **Ayarlar → Roller** bölümüne gidin
2. Atamak istediğiniz role tıklayın
3. **Atama** sekmesini açın
4. **API Anahtarları** altında, **+ API anahtarına ata**'ya tıklayın
@@ -183,7 +183,7 @@ Atanmış rolü olmayan API anahtarları varsayılan izinleri kullanır. Daha s
### Bir Yapay Zeka Ajanına Rol Atama
1. **Ayarlar → Üyeler → Roller** bölümüne gidin
1. **Ayarlar → Roller** bölümüne gidin
2. Atamak istediğiniz role tıklayın
3. **Atama** sekmesini açın
4. **Yapay Zeka Ajanları** altında, **+ Yapay zeka ajanına ata**'ya tıklayın
@@ -19,7 +19,7 @@ Any workspace member assigned to that role will be automatically reassigned to t
</Accordion>
<Accordion title="How do I set a default role for new members?">
**Ayarlar → Üyeler → Roller** bölümüne gidin, **Varsayılan Rol** seçeneğini bulun ve yeni üyeler katıldıklarında otomatik olarak hangi rolü alacaklarını seçin.
Go to **Settings → Roles**, find the **Default Role** option, and select which role new members should automatically receive when they join.
</Accordion>
<Accordion title="Can I assign multiple roles to one user?">
@@ -64,7 +64,7 @@ Row-level permissions will be available on the **Organization** plan by Q1 2026.
</Accordion>
<Accordion title="How do I make a field read-only for certain users?">
1. **Ayarlar → Üyeler → Roller** bölümüne gidin
1. **Ayarlar → Roller** bölümüne gidin
2. Select the role
3. Navigate to the object containing the field
4. Set the field permission to **See Field** (without Edit Field)
@@ -3,12 +3,10 @@ title: Alan Adı Ayarları
description: Çalışma alanı alan adını, onaylanmış erişim alan adlarını ve herkese açık alan adlarını yapılandırın.
---
Alan adı ayarları, neyi yapılandırdığınıza bağlı olarak üç yerde bulunur.
Alan adı ayarlarını **Ayarlar → Alan Adları** bölümünde yapılandırın.
## İş Alanı Alan Adı
**Ayarlar → Genel → Çalışma Alanı Alan Adı** altında yapılandırın.
Alt alan adınızı düzenleyin veya çalışma alanınız için özel bir alan adı ayarlayın.
### Alan adını özelleştir
@@ -21,8 +19,6 @@ Alt alan adınızı düzenleyin veya çalışma alanınız için özel bir alan
## Onaylanmış Alan Adları
**Ayarlar → Üyeler → Erişim** altında yapılandırın.
Bu alan adlarındaki bir e-posta adresine sahip olan herkes bu çalışma alanına otomatik olarak kaydolabilir.
### Onaylanmış Erişim Alanı Ekle
@@ -39,16 +35,13 @@ Bu, çalışma alanını kuruluşunuzla sınırlı tutarken tüm ekibinizin kend
## Herkese Açık Alan Adları
**Ayarlar → Uygulamalar → Geliştirici** altında yapılandırın.
Bu alan adları üzerinde eksiksiz ve güvenli bir barındırma ortamı sağlayın. Genel bir alan adı belirli bir uygulamaya bağlanabilir — bağlandığında, yalnızca o uygulamanın HTTP üzerinden yönlendirilen mantık işlevlerine bu alan adı üzerinden erişilebilir. Çalışma alanındaki tüm HTTP rotalarını dışa açmak için ilişkilendirmeyi boş bırakın.
Bu alan adları üzerinde eksiksiz ve güvenli bir barındırma ortamı sağlayın.
### Kamusal Alan Ekle
1. **Herkese Açık Alan Adı Ekle**'ye tıklayın
2. Kullanmak istediğiniz alan adını girin
3. İsteğe bağlı olarak bir uygulamaya bağlayın
4. DNS ayarlarını talimatlara uygun şekilde yapılandırın
5. Alan adını doğrulayın
3. DNS ayarlarını talimatlara uygun şekilde yapılandırın
4. Alan adını doğrulayın
Herkese açık alan adları için SSL sertifikaları otomatik olarak sağlanır.
@@ -77,7 +77,7 @@ Kabul edilmemiş davetleri yönetin:
Ekip üyelerinin e-posta alan adına göre otomatik olarak katılmasına izin verin:
1. **Ayarlar → Üyeler → Erişim** bölümüne gidin
1. **Ayarlar → Alan Adları** kısmına gidin
2. Şirketinizin alan adını ekleyin (örneğin, `yourcompany.com`)
3. Bu e-posta alan adına sahip olan herkes davet olmadan katılabilir
@@ -137,7 +137,7 @@ Evet, birden fazla e-posta hesabını bağlayabilirsiniz. **Ayarlar → Hesaplar
<AccordionGroup>
<Accordion title="Çalışma alanı alan adımı özelleştirebilir miyim?">
Evet! **Ayarlar → Genel → Çalışma Alanı Alan Adı**'na gidin ve **Alan Adını Özelleştir**'e tıklayın. İki seçeneğiniz var:
Evet! **Ayarlar → Alanlar**'a gidin ve **Alan Adını Özelleştir**'e tıklayın. İki seçeneğiniz var:
* **Alt alan adı**: `yourcompany.twenty.com` gibi bir Twenty alt alan adı kullanın
* **Özel alan adı**: `crm.yourcompany.com` gibi kendi alan adınızı kullanın (DNS yapılandırması gerektirir)
@@ -146,7 +146,7 @@ Alt alan adı kurmak hızlıdır; özel alan adı ise ekibiniz için tam markal
</Accordion>
<Accordion title="Onaylı erişim alan adları nasıl çalışır?">
Şirket e-posta adreslerine sahip ekip üyelerinin çalışma alanınıza otomatik olarak katılabilmeleri için onaylı erişim alan adlarını yapılandırabilirsiniz. **Ayarlar → Üyeler → Erişim**'e gidin ve şirket alan adınızı ekleyin (ör. `yourcompany.com`).
Şirket e-posta adreslerine sahip ekip üyelerinin çalışma alanınıza otomatik olarak katılabilmeleri için onaylı erişim alan adlarını yapılandırabilirsiniz. **Ayarlar → Alanlar**'a gidin ve şirket alan adınızı ekleyin (ör. `yourcompany.com`).
</Accordion>
</AccordionGroup>
@@ -44,7 +44,7 @@ E-posta ve takvim senkronizasyonunu ayarlayın:
4. Uygun rolleri atayın
<Note>
Ekibinizi davet etmeden önce, **Ayarlar → Üyeler → Roller** altında varsayılan rolü kontrol edin. Yeni üyeler katıldıklarında otomatik olarak bu role atanır.
Ekibinizi davet etmeden önce, **Ayarlar → Roller** altında varsayılan rolü kontrol edin. Yeni üyeler katıldıklarında otomatik olarak bu role atanır.
</Note>
## Çalışma Alanı Ayarları Kontrol Listesi
@@ -38,7 +38,7 @@ Fırsatlar nesnesinde iki özel alana ihtiyacınız var.
Kullanıcıların bu hesaplanan alanları manuel olarak düzenlemesini istemiyorsanız:
1. **Ayarlar → Üyeler → Roller** bölümüne gidin
1. **Ayarlar → Roller** bölümüne gidin
2. Yapılandırılacak rolü seçin
3. Fırsatlar nesnesini bulun
4. **Olasılık** ve **Beklenen Tutar** alanlarını salt okunur yapın
@@ -61,7 +61,7 @@ Closed Won ve Closed Lost için "Days in" alanlarına ihtiyaç yoktur; çünkü
Bu hesaplanan alanların kullanıcılar tarafından manuel olarak düzenlenmesini istemiyorsanız:
1. **Ayarlar → Üyeler → Roller** bölümüne gidin
1. **Ayarlar → Roller** bölümüne gidin
2. Yapılandırılacak rolü seçin
3. Fırsatlar nesnesini bulun
4. "Last Entered" ve "Days in" alanlarını salt okunur yapın
@@ -307,5 +307,5 @@ Yapay Zeka Aracısı eylemleri, kullanılan yapay zeka modeline bağlı olarak i
</Note>
<Note>
Yapay zeka aracıları role dayalı izinlere uyar. Temsilcilerin hangi verilere erişebileceklerini kontrol etmek için **Ayarlar → Üyeler → Roller** altında temsilcilere belirli roller atayabilirsiniz. Ayrıntılar için [İzinler](/l/tr/user-guide/permissions-access/capabilities/permissions) bölümüne bakın.
Yapay zeka aracıları role dayalı izinlere uyar. **Ayarlar → Roller** altında aracılara hangi verilere erişebileceklerini kontrol etmek için belirli roller atayabilirsiniz. Ayrıntılar için [İzinler](/l/tr/user-guide/permissions-access/capabilities/permissions) bölümüne bakın.
</Note>
@@ -8,7 +8,7 @@ description: Twenty'deki iş akışları hakkında sıkça sorulan sorular.
<Accordion title="Bir iş akışını neden etkinleştiremiyorum?">
Bu muhtemelen bir yetki sorunudur. İş akışlarını oluşturmak ve etkinleştirmek için iş akışlarına erişiminiz olmalıdır.
**Çözüm**: **Ayarlar → Üyeler → Roller** altında size iş akışı erişimi vermesi için çalışma alanı yöneticinizle iletişime geçin.
**Çözüm**: **Ayarlar → Roller** altında size iş akışı erişimi vermesi için çalışma alanı yöneticinizle iletişime geçin.
Kenar çubuğunuzda İş Akışları bölümünü hiç görmüyorsanız, bunun bir yetki sorunu olduğunu doğrular.
</Accordion>

Some files were not shown because too many files have changed in this diff Show More