snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s

This commit is contained in:
upstream-mirror
2026-09-17 23:28:13 +05:00
commit e7da97194a
32688 changed files with 4208681 additions and 0 deletions

View File

@@ -0,0 +1,123 @@
---
title: フィールド
description: フィールドの役割とその管理方法を理解しましょう。
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## フィールドについて
フィールドはスプレッドシートの列のようなものです。 テキスト、数字、日付などの異なるデータタイプを保存します。 フィールドには、標準(ビルトイン)とカスタム(ユーザー作成)があります。
### 標準フィールド
Twenty には、一般的な業務ニーズに対応する標準フィールドがビルトインされています。
たとえば、「名」および「姓」は「人物」オブジェクトの標準フィールドです。 それらは個々の名前のテキストデータを保存します。
標準フィールドは削除できませんが、必要がない場合は無効化できます。
標準の `SELECT` 型フィールドのオプションもカスタマイズできます。たとえば、商談の `Stage` のオプションです。
<img src="/images/user-guide/fields/standard-fields.png" style={{width:'100%'}} />
### カスタムフィールド
カスタムフィールドは任意のオブジェクトに追加できます。 テキスト、数字、日付、ドロップダウンの選択肢などを保存できます。 カスタムフィールドを使用して、ビジネスに特化した情報を追跡します。
たとえば、SpaceX用のカスタムフィールドとして「ロケットの運用状況」を設定できます。これはロケットが稼働中かどうかを示します。
<img src="/images/user-guide/fields/custom-fields.png" style={{width:'100%'}} />
## フィールドタイプ
Twenty はさまざまなフィールドタイプをサポートしています。
| タイプ | 説明 | 例 |
| ------ | --------------------------- | ---------------- |
| 住所 | 通り、都市、州、国、郵便番号を含む構造化された住所 | オフィス住所 |
| Array | テキスト値のリスト | タグ |
| ブール型 | 真偽値のチェックボックス | アクティブ |
| 通貨 | 通貨コード付きの金額 | 商談金額(USD) |
| 日付 | 日付の値 | 締切日 |
| 日付と時間 | 時刻付きの日付 | ミーティング時刻 |
| ドメイン | Web サイトのドメイン(Companies で使用) | acme.com |
| メール | メールアドレス(主要+追加) | 連絡先メール |
| JSON | 構造化された JSON データ | カスタムメタデータ |
| リンク | ラベル付きの URL(主要+サブ) | Web サイト、LinkedIn |
| 長文テキスト | 複数行テキスト | 説明、メモ |
| マルチ選択 | あらかじめ定義されたリストから複数選択 | タグ、カテゴリ |
| 数 | 数値(整数または小数) | 数量、スコア |
| 電話 | 国番号付きの電話番号 | 勤務先電話 |
| 評価 | 星評価(1〜5) | 優先度、スコア |
| リレーション | 他のオブジェクト内のレコードへのリンク | Company → People |
| 選択 | あらかじめ定義されたリストからの単一選択 | ステージ、ステータス |
| テキスト | 1 行のテキスト | 名前、タイトル |
## カスタムフィールドを作成する
任意のオブジェクトにカスタムフィールドを追加するには、次の手順に従います。
1. 左サイドバーの「設定」に移動します。
2. 「データモデル」に移動し、カスタマイズしたいオブジェクトを選択します。
3.
3. `+ New Field`をクリックして続行します。
4. 要件に合ったフィールド名とタイプを選択してください。 より良い理解のためにフィールドの説明を追加することを検討してください。 より良い理解のためにフィールドの説明を追加することを検討してください。 より良い理解のためにフィールドの説明を追加することを検討してください。
作成したフィールドはアプリケーションのフィールド内で利用できるようになります。 特定のビューに表示するには、オプションメニューをクリックして「フィールド」を選択します。 特定のビューに表示するには、オプションメニューをクリックして「フィールド」を選択します。
<VimeoEmbed videoId="927628219" title="動画デモ" />
**簡単な方法:** 任意のオブジェクトテーブルの右上の **+** ボタンをクリックし、「フィールドをカスタマイズ」を選択します。 これにより、データモデルの設定に直接アクセスできます。
<img src="/images/user-guide/fields/quick-new-field.png" style={{width:'100%'}} />
## フィールドを無効にする
データを失わずにアプリからフィールドを隠すには、フィールドを無効にすることができます。 これはフィールドを削除するのではなく、隠すようなものです。 これはフィールドを削除するのではなく、隠すようなものです。 これはフィールドを削除するのではなく、隠すようなものです。
以下に方法を示します。
1. オブジェクト設定で無効化したいフィールドを見つけます。
2. フィールドの横にある三点リーダー`⋮`をクリックしてメニューを開きます。
3. ドロップダウンメニューから「無効化」を選択します。
<img src="/images/user-guide/fields/deactivate-field.png" style={{width:'100%'}} />
フィールドを無効にするとどうなりますか?
1. **アプリ内では:** フィールドが消え、新しい値を追加することができなくなります。
2. **既存の関係:** それがリレーションフィールドである場合、既存の接続は維持されますが、新しいものを作成することはできません。
3. **APIアクセス:** フィールドとそのデータには引き続きAPI経由でアクセスできます。
標準フィールドとカスタムフィールドを再アクティブ化することができます。また、それらを永久に削除するオプションがあります。
## フィールドをユニークにする
異なるレコードが同じ値を持つことがないように、フィールドをユニークにします。 例えば、メールアドレスは各人物に対してユニークです。 例えば、メールアドレスは各人物に対してユニークです。 例えば、メールアドレスは各人物に対してユニークです。
ユニーク性を設定する際にエラーが発生した場合、データ内の重複した値(削除されたレコードも含む)を確認してください。
## インデックス(上級)
データベースインデックスは自動的に管理されるため、自分で追加する必要があるケースはまれであり、また間違えやすい作業でもあります。 上級モードをオンにすると、インデックスが必要だと分かっている場合に備えて、各オブジェクトの `Settings → Data Model → <object>` の下に **Indexes** セクションが追加されます。
## フィールド構成のベストプラクティス
### 命名規則と制限
* **単数形と複数形の名前は区別されていなければなりません**:私たちの GraphQL API では、mutation に対して異なる名前が必要です
* **保護されたフィールド名**:一部の名前はシステムで使用するために予約されています(例:`Type`、`Application`)
### 通貨フィールドと電話フィールド
* **デフォルト通貨**:データモデルを介して設定できます
* **デフォルト国コード**:データモデルを介して電話フィールドに設定できます
### 選択フィールド
* **各選択フィールドにデフォルトオプションを選択できます**
### レコードテキストフィールド
* **各オブジェクトには**1つのメイン表示フィールドがあります。このフィールドは左側の列に表示され、他のオブジェクトにリンクされたときにレコードを表します。 これはテキストフィールドである必要があります。 たとえば、Peopleは「名前」をメインフィールドとして使用しているため、人物を会社にリンクすると、会社のビューにその名前が表示されます。 これはテキストフィールドである必要があります。 たとえば、Peopleは「名前」をメインフィールドとして使用しているため、人物を会社にリンクすると、会社のビューにその名前が表示されます。 これはテキストフィールドである必要があります。 たとえば、Peopleは「名前」をメインフィールドとして使用しているため、人物を会社にリンクすると、会社のビューにその名前が表示されます。

View File

@@ -0,0 +1,92 @@
---
title: オブジェクト
description: Twenty の標準オブジェクトとカスタムオブジェクトについて学びます。
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## 標準オブジェクト
標準オブジェクトは、作業を開始するためのワークスペースに予め定義されているエンティティです。 これらは、Twentyの全ユーザーがアクセスできる共有データモデルの一部です。 そのまま使用することも、カスタマイズすることも、無効化することもできます。
<img src="/images/user-guide/objects/standard-objects.png" style={{width:'100%'}} />
### "人"
`People` オブジェクトは連絡先を保存します。 連絡先の詳細とやり取りの履歴が含まれており、すべての顧客とのやり取りを一か所で確認できます。
### 会社
`Companies` オブジェクトはビジネスアカウントを保存します。 業界、規模、所在地などの詳細が含まれます。 `People` および `Opportunities` オブジェクトに接続します。
### 商談
`Opportunities` オブジェクトは、取引関連のデータを保存します。 見込み客から成約までの販売の進捗を追跡し、ステージ、取引規模、関連するアカウント、予想終了日に関する記録を残します。 カンバン形式で販売パイプラインを表示できます。
### ノート
`Notes` オブジェクトは、People、Companies、Opportunities などのレコードに添付できる自由形式のメモを保存します。 メモを使用して、会議の要約、重要な詳細、その他のコンテキスト情報を記録します。
### タスク
`Tasks` オブジェクトは、To-Do やアクション項目を保存します。 タスクは、People、Companies、Opportunities などのレコードに関連付けできます。 期限、担当者、完了状況を追跡して、フォローアップを的確に管理します。
## カスタムオブジェクト
カスタムオブジェクトを使用すると、標準オブジェクトでは対応できない組織独自の情報を保存できます。 例えば、SpaceXであれば、ロケットや打ち上げ用にカスタムオブジェクトを作成することが考えられます。 例えば、SpaceXであれば、ロケットや打ち上げ用にカスタムオブジェクトを作成することが考えられます。 例えば、SpaceXであれば、ロケットや打ち上げ用にカスタムオブジェクトを作成することが考えられます。
<img src="/images/user-guide/objects/custom-objects.png" style={{width:'100%'}} />
### 新しいカスタムオブジェクトの作成
新しいカスタムオブジェクトを作成するには:
1. 左側のサイドバーの設定に移動します。
2. ワークスペースの下で、データモデルに移動します。 ここでは、既存の標準オブジェクトとカスタムオブジェクト(アクティブオブジェクトと非アクティブオブジェクトの両方)の概要を確認できます。
<VimeoEmbed videoId="926288174" title="デモ動画" />
3. 上部の `+ 新しいオブジェクト` をクリックします。 カスタムオブジェクトの名前(単数形と複数形の両方)、アイコンを選択し、説明を追加し、[保存](右上)をクリックします。 上部の `+ 新しいオブジェクト` をクリックします。 カスタムオブジェクトの名前(単数形と複数形の両方)、アイコンを選択し、説明を追加し、[保存](右上)をクリックします。 カスタムオブジェクトの例として、Listingを使用し、単数形は "listing" 、複数形は "listings" 、説明は "ホストがプロパティを紹介するために作成したリスティング" となります。
4. カスタムオブジェクトが作成され、サイドバーに表示されます。 すぐにレコードを追加できます。
## オブジェクトの管理
### オブジェクトの無効化
標準オブジェクトまたはカスタムオブジェクトが不要な場合:
1. 設定 → データモデル に移動
2. 無効にしたいオブジェクトを見つけてクリックします
3. オブジェクトの **設定** タブに移動
4. 「停止」ボタンをクリックしてください
5. オブジェクトはワークスペースから非表示になりますが、データは保持されます。
### オブジェクトの再有効化
無効化したオブジェクトを再有効化するには:
1. 設定 → データモデル に移動
2. 「無効」フィルタを有効にする
3. 無効化されたオブジェクトを探します(名前の隣に`無効化された`があります)。
4. `⋮` をクリックしてから `Activate` をクリックして再有効化します
5. オブジェクトとそのすべてのデータが復元されます。
## ベストプラクティス
### カスタムオブジェクトを作成するタイミング
* **独自のビジネスエンティティ**: 業界やプロセスに特有のもの
* **複雑なリレーションシップ**: 複数のエンティティ間の関係を追跡する必要がある場合
* **スケーラブルなデータ**: 多数のインスタンスが発生する可能性がある場合
### 代わりにフィールドを使用するタイミング
* **シンプルな属性**: 既存のオブジェクトを記述するプロパティ
* **カテゴリやラベル**: 既存のレコードを分類する方法
* **単一の値**: 独自のライフサイクルを必要としない情報
### オブジェクトの命名
* **明確で説明的な名前を使う**: オブジェクトが何を表すかを一目でわかるようにする
* **規約に従う**: オブジェクト名は単数形、コレクションは複数形を使用する
* **チームを考慮する**: 全員が理解できる名前を選ぶ

View File

@@ -0,0 +1,94 @@
---
title: リレーションフィールド
description: リレーションフィールドを使用して、異なるオブジェクト間でレコードをリンクします。
---
## リレーションの種類
### 1対多
オブジェクトAの1件のレコードは、オブジェクトBの複数のレコードにリンクできます。
**例:** 1つの会社には多数の連絡先(従業員)がいます。
### 多対1
オブジェクトAの複数のレコードは、オブジェクトBの1件のレコードにリンクできます。
**例:** 多数の連絡先は1社に所属できます。
### 複数のオブジェクトタイプへのリレーション
一部のオブジェクトは、リレーションの片側で複数のオブジェクトタイプにリンクできます。
**例:** メモは、連絡先1件、会社1社、商談1件に同時にリンクできます。 メモは"多"の側にあり、複数の"1"の側にリンクしています。
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
同様に、プロジェクト("1"の側)は、複数の連絡先、複数の会社、複数のメモからリンクを受け取ることができます。
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**インポート/エクスポートの制限**: 複数のオブジェクトタイプを指すリレーションは、CSV のインポート/エクスポートにはまだ対応していません。 これはロードマップに含まれています。
</Warning>
### 多対多
オブジェクトAの複数のレコードは、オブジェクトBの複数のレコードにリンクできます。
**例:** 多数の連絡先は多数のプロジェクトにリンクでき、その逆も可能です。
多対多のリレーションでは、両側を接続する中間オブジェクトを用いる**ジャンクションオブジェクト**パターンを使用します。 ジャンクションリレーション機能により、Twenty は最終的にリンクされたレコードを直接表示し、中間オブジェクトを UI から隠します。
<Warning>
**ベータ機能**: 使用前に **Settings → Community → Features** でジャンクションリレーションを有効化する必要があります。
</Warning>
完全なステップバイステップのガイドについては、[多対多リレーションの作成方法](/l/ja/user-guide/data-model/how-tos/create-many-to-many-relations) を参照してください。
## リレーションフィールドの作成
1. **設定 → データモデル** に移動
2. リレーションを追加したいオブジェクトを選択します
3. **+ 新規フィールド** をクリックしてください
4. フィールドタイプとして **Relation** を選択
5. 関連付け先のオブジェクトを選択します
6. リレーションの設定を行います:
* **ソースオブジェクト上のフィールド名**: 編集しているオブジェクト上のリレーションフィールドの名前
* **対象オブジェクト上のフィールド名**: 対象オブジェクトに表示されるリレーションフィールドの名前
* リレーションタイプ(1対多、多対1)
7. **保存**をクリック
## 標準リレーション
Twenty には標準オブジェクト間のあらかじめ用意されたリレーションがあります:
| 元オブジェクト | 宛先オブジェクト | リレーションタイプ |
| ------- | -------- | --------- |
| 人物 | 会社 | 多対1 |
| 商談 | 会社 | 多対1 |
| 商談 | 人物 | 多対1 |
## ベストプラクティス
### リレーションの計画
* **データモデルをマッピング**: 作成前にリレーションを計画する
* **方向性を検討**: どのオブジェクトがそのリレーションを"所有"するかを考える
* **循環依存を避ける**: データモデルをクリーンに保つ
### リレーションの命名
* **明確な名前を使う**: リレーションが何を表すかが一目でわかるようにする
* **一貫性を保つ**: リレーション全体で似た命名パターンを使用する
* **両側を考慮する**: リレーションの両側に適切な名前を付ける
### パフォーマンス
* **リレーションの作りすぎに注意**: リレーションが多すぎるとワークスペースが遅くなる可能性があります
## 制限事項
* **リレーションを削除**するとリンクは削除されますが、関連レコード自体は削除されません。
* **循環リレーション**はデータの整合性のため避けるべきです