コード不要でドキュメントワークフローを自動化:ONLYOFFICE DocSpaceとn8nの連携

2026年06月30日著者:Denis

概要

ONLYOFFICE DocSpaceは、公式n8nノードを活用することで、コードを一切書かずに自動化できます。これにより、DocSpaceと他のツールを連携するワークフローを作成でき、アカウントのプロビジョニング、ドキュメントのアップロード、通知などの反復作業を自動化し、ドキュメント管理プロセスを効率化することが可能になります。

会社の文書管理の中心としてONLYOFFICE DocSpaceを活用しているなら、同じ作業を手動で繰り返していることに気づいたことがあるでしょう。新規クライアントが契約を結んだとき、DocSpaceを開いてルームを作成し、契約テンプレートをアップロードして招待する。新入社員が入社したとき、アカウントを作成して適切なルームに追加し、ウェルカムメールを送る。フォームが届いたとき、適切なフォルダに転送してチームに通知する。これらの作業は複雑ではありませんが、かなり手間がかかります。嬉しいことに、これらはすべて自動化できるようになりました。

ONLYOFFICE DocSpaceが、オープンソースのワークフロー自動化プラットフォームであるn8nの公式ノードに対応しました。DocSpaceをGmail、Slack、HubSpot、Airtable、人事システム、CRMなど、チームがすでに使用しているツールと連携させ、これらの作業を手動で行う必要がなくなります。

Automate ONLYOFFICE DocSpace with n8n: build document workflows without writing a line of code

n8nとは?

n8nは、ZapierやMakeに似たワークフロー自動化ツールですが、オープンソースで自社インフラ上で実行できます。データ管理を目的にセルフホストしているDocSpaceユーザーにとって、これは非常に価値のある特徴です。

n8nはノードを繋ぎ合わせるビジュアルキャンバスを提供します。各ノードはサービス上のアクションを表します。トリガーが発火すると(新しいメールが届く、フォームが送信される、スケジュールが実行されるなど)、ワークフローが自動的に実行され、作業が完了するまでノードからノードへデータが受け渡されます。400以上のインテグレーションにより、チームがすでに使用しているほとんどのツールと連携できます。

DocSpaceノードのカバー範囲

このパッケージには2つのノードが含まれています:

  • ONLYOFFICE DocSpaceDocSpace APIを通じて操作を実行するアクションノード
  • ONLYOFFICE DocSpace Trigger:DocSpaceで何かが発生したときにワークフローを起動するイベントノード

アクションノードの操作

  • ファイル:アップロード、ダウンロード、移動、コピー、更新、削除、作成、情報取得、共有リンクの生成
  • ルーム:作成、更新、情報取得、検索、アーカイブ、ユーザーの招待・削除、アクセスロールの更新、共有リンクの取得
  • ユーザー:招待、取得、検索、ロール更新、アカウントの有効化・無効化、削除
  • フォルダ:作成、情報取得、コンテンツ取得、履歴取得、共有リンク取得、移動、コピー、更新、削除

トリガーノードのイベント

トリガーノードはポーリングなしにDocSpaceのアクティビティに反応してワークフローを起動します。サポートされているイベントは以下の通りです:

  • ファイル:作成、アップロード、更新、コピー、移動、ゴミ箱へ移動、削除、復元
  • フォルダ:作成、更新、コピー、移動、ゴミ箱へ移動、削除、復元
  • ルーム:作成、更新、コピー、アーカイブ、削除、復元
  • ユーザー:作成、招待、更新、削除
  • グループ:作成、更新、削除

例えば、ファイルのアップロードでSlack通知を送信したり、新しいルームの作成で承認ワークフローを開始したり、ユーザーの削除で連携システムのアクセスを自動的に無効化したりできます。

今日から使える5つのワークフロー

すぐに構築できる5つのワークフローを紹介します。

1. 商談成立時にクライアントのコラボレーションルームを自動作成

CRMで商談が成立としてマークされると、このワークフローはクライアント向けに名前付きのDocSpaceコラボレーションルームを作成し、ライブラリから契約テンプレートをダウンロードしてルームにアップロード、クライアントを招待し、共有可能なルームリンクを含むウェルカムメールを送信します。

ステップバイステップの手順
  1. <ここにお使いのCRMシステムのトリガーノードを追加してください>
  2. ONLYOFFICE DocSpace:Create a room
    • ONLYOFFICE DocSpaceのクレデンシャルを設定します(このドキュメントを参照)
    • クライアント名の変数をTitleパラメーターに入力することでルーム名をパーソナライズできます(例:「{{ $json.client_name }} — Client Room」)
    • Typeパラメーターで作成するルームの種類を選択します(このワークフローではコラボレーションルームタイプを推奨)
  3. ONLYOFFICE DocSpace:Download a file
    • クライアントのルームにアップロードする契約テンプレートのIDをFile IDパラメーターに入力します(DocSpaceに保存されているファイルのURLで確認できます:例 https://***.com/doceditor?fileId=69313
  4. ONLYOFFICE DocSpace:Upload a file
    • 前のステップで作成したルームのIDを格納する変数をParent IDパラメーターに挿入します(例:{{ $('Create a room').item.json.id }}
    • File Nameパラメーターでファイル名をパーソナライズできます(例:{{ $('Edit Fields').item.json.client_name }}_contract.docx)
    • Binary Fileパラメーターがオンになっていることを確認してください
  5. ONLYOFFICE DocSpace:Invite a user to a room
    • Room IDパラメーターをManualに設定し、INPUTからの変数で入力します:{{ $('Create a room').item.json.id }}
    • User IDパラメーターをfixedManualに変更し、User Emailパラメーターにクライアントのメールアドレスを入力します
    • User Access -> From listでクライアントの権限を選択します
  6. ONLYOFFICE DocSpace:Get the shared link of a room
    • Room IDパラメーターを変数で入力します:{{ $('Create a room').item.json.id }}
  7. Gmail:Send a message
    • Gmailのクレデンシャルを選択します
    • Toパラメーターにクライアントのメールアドレスを入力します
    • Subjectパラメーターを設定します
    • 前のステップからの変数を使用してメールテンプレートを作成します

トリガーはCRMイベント(HubSpot、Pipedrive、Salesforce)、Webhook、または手動実行のいずれでも構いません。チームの誰かが考える前に、クライアントルームが準備されています。

2. AIを活用したドキュメント受信パイプライン

このワークフローはGmailの受信トレイで添付ファイル付きのメールを監視します。届いたファイルを指定のDocSpaceフォルダにアップロードし、テキストを抽出してAIモデル(デフォルトはGPT-4o mini)に渡します。モデルはドキュメントの種類を特定し、送信者、日付、金額などを抽出して1文のサマリーを作成します。全情報をまとめたSlackメッセージがチームに届きます。

ステップバイステップの手順
  1. Gmail Trigger
    • Gmail OAuth2クレデンシャルを設定します
    • フィルターは添付ファイル付きのメールのみで起動するよう`has:attachment`にあらかじめ設定されています
    • ポーリング間隔はデフォルトで1分ごとに設定されています。必要に応じてトリガー設定で調整してください
  2. Gmail:Get Message
    • OptionsセクションでDownload Attachmentsを有効にすると、添付ファイルが次のステップのバイナリデータとして利用できるようになります
  3. ONLYOFFICE DocSpace: Upload a file
    • ONLYOFFICE DocSpaceのクレデンシャルを設定します(このドキュメントを参照)
    • Parent IDパラメーターを受信ドキュメントを保存するDocSpaceフォルダのIDに設定します(フォルダを開いたときのDocSpace URLでフォルダIDを確認できます)
    • File Nameパラメーターでファイル名をパーソナライズします。例えば`{{ $json.from.text }}: {{ $json.subject }}`とすると送信者とメールの件名でファイル名が付けられます
  4. Extract from File
    • OperationExtract From PDFに設定して、アップロードされたPDF添付ファイルからプレーンテキストを抽出します
  5. OpenAI Chat Model(Information Extractorのサブノード)
    • OpenAI APIクレデンシャルを設定します
    • モデルはデフォルトでgpt-5-miniに設定されています。OpenAIアカウントでサポートされている他のモデルに変更できます
  6. Information Extractor
    • Textパラメーターは前の抽出ステップの`{{ $json.text }}`にあらかじめ設定されています
    • 5つの属性があらかじめ設定されています:document_typesender_namedocument_datetotal_amountsummary。チームのニーズに合わせて追加、削除、名称変更できます
  7. Slack: Send a message
    • Slack OAuth2クレデンシャルを設定します
    • Channelパラメーターをチームが通知を受け取るSlackチャンネルに設定します
    • メッセージテンプレートには5つの抽出フィールドすべてがあらかじめ設定されています。好みのフォーマットに合わせてテキストを編集してください

DocSpaceに直接ファイルがアップロードされたときにこのワークフローを起動するDocSpace Triggerノードを使用することもでき、メールのポーリングを完全にスキップできます。

受信したすべてのドキュメント(請求書、契約書、NDA、発注書)が整理・要約されます。チームは添付ファイルを一つも開くことなく、届いた内容を把握できます。

3. 新入社員入社時のDocSpaceアカウント自動作成

人事システムがWebhookで新規採用イベントを送信すると、このワークフローは従業員のDocSpaceアカウントを作成し、ITチームにSlackで通知し、新入社員にDocSpaceリンクを含むウェルカムメールを送信します。

ステップバイステップの手順
  1. Webhook Trigger
    • ノードからWebhook URLをコピーし、新入社員が作成されたときにそのURLにPOSTするよう人事システムを設定します
    • 期待されるペイロードフィールドはnameemaildepartmentです。ワークフローはフラットJSON(`{ "name": "..." }`)とボディでラップされたペイロード(`{ "body": { "name": "..." } }`)の両方を自動的に処理します

    注意:人事システムにn8n用の公式トリガーがある場合は、それを使用することをお勧めします。

  2. Edit Fields
    • このステップは受信ペイロードをfullNameemaildepartmentの3つのフィールドに正規化します
    • 人事システムが異なるフィールド名を送信する場合は、それに合わせてこのノードの式を更新してください
  3. ONLYOFFICE DocSpace: Invite User
    • ONLYOFFICE DocSpaceのクレデンシャルを設定します(このドキュメントを参照)
    • EmailFirst NameLast Nameパラメーターは前のステップから自動的に入力されます
    • Typeはデフォルトで`Room Admin`に設定されています。新入社員に別のロールを割り当てる場合は変更してください
  4. Slack: Send a message
    • Slack OAuth2クレデンシャルを設定します
    • チャンネルIDのプレースホルダーをITチームのSlackチャンネルIDに置き換えます
    • 通知には前のステップからの変数を使用して、新入社員の名前、メール、部署をあらかじめ入力してください
  5. Gmail: Send a message
    • Gmail OAuth2クレデンシャルを設定します
    • Toパラメーターは正規化されたメールフィールドから自動的に入力されます
    • 会社のオンボーディングのトーンに合わせてメールの件名と本文をカスタマイズしてください

フラットJSONとボディでラップされたペイロードの両方に対応しているため、Webhookを送信できるほとんどの人事システムで動作します。一度設定すれば、新入社員が初めてログインする前にアカウントが準備されています。

4. 非アクティブなコラボレーションルームの週次クリーンアップ

プロジェクトが終了しクライアントが去るにつれて、ルームは蓄積される傾向がありますが、クリーンアップする人はほとんどいません。このワークフローは毎週月曜日の午前9時に実行され、DocSpaceからすべてのルームを取得し、90日以上非アクティブなルームをフィルタリングしてアーカイブし、Slackにサマリーを投稿します。

ステップバイステップの手順
  1. Schedule Trigger
    • トリガーは毎週月曜日の午前9時に実行されるようにあらかじめ設定されています。チームのスケジュールに合わせてトリガー設定で曜日、時間、頻度を調整してください
  2. ONLYOFFICE DocSpace: Get All Rooms
    • ONLYOFFICE DocSpaceのクレデンシャルを設定します(このドキュメントを参照)
    • Search Room操作はアカウントがアクセスできるすべてのルームを取得します。追加パラメーターは不要です
  3. コード:90日以上非アクティブなルームをフィルタリング
    • このJavaScriptノードは各ルームの`updatedAt`タイムスタンプを今日の日付と比較します(下記のコードスクリプトを参照)
    • 非アクティブ期間のしきい値を変更するには、コード内の数値`90`を希望の日数に置き換えてください
    • フィルターに一致しないルームは除外されます。ワークフローの残りの部分は条件を満たすルームに対してのみ実行されます
  4. ONLYOFFICE DocSpace: Archive Inactive Room
    • Room IDパラメーターは`{{ $json.id }}`に設定されており、フィルタリングされた各アイテムからルームIDを自動的に取得します
    • このノードはルームごとに一度実行されます。12のルームが非アクティブな場合、12回実行されます
  5. Slack: Send Archive Report
    • Slack OAuth2クレデンシャルを設定します
    • チャンネルIDのプレースホルダーを管理者または運用チームのSlackチャンネルに置き換えます
    • 前のステップからの変数を使用してテンプレートを作成します
    • このノードはすべてのルームが処理された後に一度だけ実行されるよう設定されており、アーカイブされたすべてのルームをリストした単一メッセージを投稿します

ステップ3のJavaScript:

<code class="language-javascript">const cutoff = new Date();
cutoff.setDate(cutoff.getDate() - 90);
return items.filter(item => {
const updated = new Date(item.json.updatedAt || item.json.updated || 0);
return updated < cutoff;
});</code>

非アクティブ期間のしきい値はコードノード内の単一の数値です。必要に応じて90を60または180に変更してください。アーカイブするものがない場合、ワークフローは静かに実行されます。

5. クライアントプロジェクト受付フォームからDocSpaceルームを自動作成

このワークフローはn8nがホストするフォームから始まります:プロジェクト名、クライアント名、メール、説明。送信されると、DocSpaceルームを作成して共有リンクを取得し、クライアントにワークスペースのURLを直接メールで送り、チームにSlackで通知します。

ステップバイステップの手順
  1. n8n Form Trigger
    • フォームにはあらかじめ4つのフィールドが設定されています:Project Name(必須)、Your Name(必須)、Email Address(必須)、Project Description(任意)
    • ノードからフォームURLをコピーしてクライアントに共有してください。フォームはn8nが直接ホストするため、外部サービスは不要です
    • 送信後に表示される確認メッセージはあらかじめ入力されています。トリガーノードのOptionsセクションで編集できます
  2. ONLYOFFICE DocSpace: Create a room
    • ONLYOFFICE DocSpaceのクレデンシャルを設定します(このドキュメントを参照)
    • Titleパラメーターは`{{ $json.project_name }} — {{ $json.client_name }}`に設定されており、各ルームがプロジェクトとクライアント名で自動的に命名されます
    • ルームのTypeCollaboration Roomに設定されています。別のルームタイプが用途に合う場合は変更してください
  3. ONLYOFFICE DocSpace: Get the shared link of a room
    • Room IDパラメーターは`{{ $json.id }}`に設定されており、前のステップで作成されたルームのIDを自動的に取得します
  4. Gmail: Send a message
    • Gmail OAuth2クレデンシャルを設定します
    • Toパラメーターはフォームのメールフィールドからの変数で入力する必要があります
    • Subjectはステップ1のProject NameYour Nameなどの変数を含むテキストテンプレートにしてください
    • 前のステップのルームリンクをメール本文に`{{ $("Get Room Shared Link").item.json.sharedLink }}`として埋め込みます
  5. Slack: Send a message
    • Slack OAuth2クレデンシャルを設定します
    • チャンネルIDのプレースホルダーを、新プロジェクトの通知を受け取るチームのSlackチャンネルに置き換えます
    • 通知にはプロジェクト名、クライアント名、メールアドレス、新しいDocSpaceルームへの直接リンクの変数を含めてください

使い方

n8nインスタンス(クラウドまたはセルフホスト)とONLYOFFICE DocSpaceアカウントが必要です。DocSpaceノードをインストールするには、ノード検索で「ONLYOFFICE DocSpace」と検索してください。

オンラインで始める              オンプレミスでインストール

認証は4つの方法をサポートしています:APIキー(推奨)、Basic Auth、OAuth2、Personal Access Token。設定後、クレデンシャルはインスタンス内のすべてのDocSpaceノードで共有されます。設定の詳細については、ONLYOFFICE DocSpaceクレデンシャルドキュメントをご覧ください。

上記の説明に従って5つのワークフローテンプレートのいずれかを再作成し、クレデンシャルを接続して適切なフォルダとチャンネルIDを設定し、有効化してください。

次に構築できること

上記のワークフローは一般的なケースをカバーしています。これらに加えて、同じノードで以下のようなことも実現できます:

  • 期限リマインダー:スケジュールで契約フォルダをスキャンし、ファイル名やメタデータの日付を確認して、期限が切れる前に更新リマインダーを送信します
  • アクセス監査:すべてのルーム、そのメンバー、アクセスレベルの週次レポートを管理チャンネルに送信します
  • イベント駆動型アーカイブ:Triggerノードを使用して、ファイルが特定の状態に達したときに自動的に移動またはアーカイブします
  • ユーザーライフサイクル管理:Triggerイベントを使用して、DocSpaceアカウントをディレクトリサービスと同期させます

ノードはDocSpaceインターフェースで行うほとんどの操作をAPI操作として提供します。n8nはそれらをスタックの他の部分と接続します。

まとめ

上記のワークフローのいずれかが現在手動で行っていることに当てはまる場合、セットアップは簡単です。ノードをインストールし、クレデンシャルを接続し、テンプレートをインポートして有効化するだけです。その後はDocSpaceが定型作業を自動的に処理します。

ONLYOFFICEの無料アカウントを登録する

オンラインでドキュメント、スプレッドシート、スライド、フォーム、PDFファイルの閲覧、編集、共同作業