LINE WORKS 複数組織を一括追加

LINE WORKSの標準機能では出来ないあれやこれやを、
LINE WORKS API 2.0 x GASを使ってサクッと解決するシリーズ

今回は、組織の一括追加です。

組織はLINE WORKSの管理画面からCSVファイルをアップロードして一括追加できます。
しかし、公開/非公開の設定や、メーリングリスト、トークやノートなどの利用可否は、手動で１つずつ設定する必要があります。

そこで、GAS x LINE WORKS API2.0 を使って、複数の組織データ追加とプロパティの設定を一括で行えるようにします。


#### 実行イメージ

Google Sheetに組織情報を入力し、「組織をインポート」ボタン押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/882b919e-9417-469a-1f2b-93ab915e79df.png)



件数を確認し、OK
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/f70cec89-2aee-5fd3-a363-c5dffec79467.png)



インポート完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/6b78f133-beb5-a4a0-27d4-7410ebf88594.png)



実行結果をログで確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/60781b6e-a021-094b-926b-0925591a824a.png)




:::note info
GASはスクリプトの実行時間が最大6分という上限があるため、
一回の処理で流し込める組織数はだいたい300ほどです
それ以上の数を実行する場合は、処理が止まった時点から続けて実行してください。
:::

## 必要なもの
* Googleアカウント（無償でもOK）
* LINE WORKS Developers Consoleへのアクセス権限を持つID
* [LINE WORKS 便利ツール](https://qiita.com/nonattonolife/items/16181d666b8246e3f28d)


## 事前準備


以下の記事を参考に、LINE WORKS 便利ツールを使うための事前準備をしてください。
すでに完了している場合はスキップしてください

https://qiita.com/nonattonolife/items/16181d666b8246e3f28d


## 組織を一括追加する

### 1. 組織情報を入力する

LINE WORKS便利ツールの「importOrg」シートを、隠しフィールドから選択して開きます

<img width="600" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/267c2b98-fc4e-92f8-c6f9-342454cb13a5.png">


「記入例」や下図「プロパティ一覧」に従って組織データの各種プロパティを入力していきます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/9b7794fd-9439-8e4a-9461-703ddf7afd0e.png)

プロパティ一覧
<table>
  <caption></caption>
  <thead>
    <tr>
      <th>項目</th> <th>説明</th> 
    </tr>
  </thead>
  <tr>
    <td> 組織名 </td> <td>必須</td>
  </tr>
  <tr>
    <td> 組織名 English </td> <td>任意。多言語設定した場合の英語表記名</td>
  </tr>
  <tr>
    <td> 組織External Key </td> <td>任意。追加した組織をAPIで扱えるようExternal Keyを設定
  </tr>
  <tr>
    <td> 組織の公開/非公開 </td> <td>公開の場合は"yes",
非公開の場合は空白</td>
  </tr>
  <tr>
    <td> 組織の説明 </td> <td>任意。アドレス帳に表示する組織の紹介文</td>
  </tr>
  <tr>
    <td> 上位組織のExternal Key </td> <td>上位組織。指定しない場合は第一階層に登録される</td>
  </tr>
  <tr>
    <td> 組織の表示順 </td> <td>任意。アドレス帳に表示する組織の並び順</td>
  </tr>
  <tr>
    <td> チームトーク利用 </td> <td>組織に紐づくトークルーム機能の利用有無。<br>
使用する場合は"yes"、 使用しない場合は空白</br></td>
  </tr>
  <tr>
    <td> ノート利用 </td> <td>組織に紐づくノート機能の利用有無。<br>
使用する場合は"yes"、 使用しない場合は空白</br></td>
  </tr>
  <tr>
    <td> チームカレンダー利用 </td> <td>組織に紐づくカレンダー機能の利用有無。<br>
使用する場合は"yes"、 使用しない場合は空白</br></td>
  </tr>  <tr>
    <td> チームタスク利用 </td> <td>組織に紐づくタスク機能の利用有無。<br>
使用する場合は"yes"、 使用しない場合は空白</br></td>
  </tr>
  <tr>
    <td> チームフォルダ利用 </td> <td>組織に紐づくフォルダ機能の利用有無。<br>
使用する場合は"yes"、 使用しない場合は空白</br></td>
  </tr>
</table>




### 2. インポート開始


データが準備できたら、「組織をインポート」ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/341ec5e6-f7ae-1e98-f69c-418e2bcf2b20.png)



ポップアップの確認で「OK」します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/f70cec89-2aee-5fd3-a363-c5dffec79467.png)


インポート完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/6b78f133-beb5-a4a0-27d4-7410ebf88594.png)

１件あたりの実行に約１秒を要します
処理が完了、または途中で失敗したら、その時点で処理を中止して、ポップアップが表示されます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/23df98a0-e2eb-6026-7445-e7318423d0df.png)



### 3. 実行結果の確認

「log」シートを開きます
タイムスタンプ、実行結果、削除した組織名と組織ExternalKeyが記録されます。
失敗して途中で処理が止まった場合は、どこまでのデータがインポートできているかログから確認し、
続きのデータからインポート再開できるようimportOrgシートを修正した上で再実行しましょう。

実行結果をログで確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727469/60781b6e-a021-094b-926b-0925591a824a.png)


今回は一括組織インポートを紹介しました。

一括でインポートしたら、一括で削除もしたくなると思います。
次回は組織の一括削除ツールも紹介します。

-----------------------------------

LINE WORKSの標準機能では出来ないあれやこれやを解決するLINE WORKS便利ツール
今後はこんなツールを予定しています

* ユーザを一括削除したい
* 組織を一括追加したい
* グループを一括追加したい
* ID名を一括変更したい
* メッセージを一斉配信したい
* 監査ログを自動保存したい
* SNSのコメントやメッセージをLINE WORKSへ通知したい
etc...

今後なにかご要望があればお知らせください
作ってみるかもしれないです。