🔰中国駐在初心者社長の業務革新奮闘記Vol.1「店舗納品時間の連絡ツール」の作成

## 「業務革新」ってそんなに簡単なものじゃないよね:thinking:
私はグループ中国小売事業への商品供給をする物流機能会社の経営をしています。
コロナ真っ盛りの時期に社長として中国駐在となってもうすぐ2年、やるからには業務を「革新」しよう！と高い志と意気込みで乗り込んだものの、現実はそんなに簡単でないですよね。

https://note.com/agscm_ono/n/n1fcfe369beda

👆私と業務のご紹介です。よろしければお立ち寄りください！

### まずは「こころの壁」を取り除こう！

業務を革新していこう！という私の意気込みとはうらはらに、なかなか自社のメンバーの気持ちが盛り上がっていないのはなんでなんだろう？そこで、今当社が抱える問題点を分析してみました。
<img width="300" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/39af49f2-c931-e025-1d94-565374a77906.jpeg">
誰もが分かっている問題も指摘がなければ放置してしまう。できない理由を探してしまう。こんな仕事の仕方は楽しくないですよね。
私はこんな事例が起きてしまう理由を、長年の物流センターから店舗への商品配送という重要ではありますが、ルーチン化した業務習慣が、今を変えていくということに前向きに、素直に立ち向かうことができなくなる「こころの壁」をつくっているのでは？と考えました。
どんな業務でも、主体的に取り組むことで、成長はしていけるはず。それならば業務革新とは言えないまでも、まずは身近な小さな業務改善をボス自らからがやってみせましょう！！ということで、プロトタイプ作りの苦行？の道を歩み始めました:sweat:

今回取り組んだ、小さな業務改善は、「店舗納品時間の連絡ツール」の作成です。
スーパーマーケットなどリアルの小売業で最も大きな固定費は人件費です。昨今の人件費高騰は中国も同じです。
オペレーションを改善して少しでも、人件費を抑えたい。オペレーションの標準化と計画的に実施することによる効率化が重要になります。リアル小売業にとってオペレーションの中でも商品の陳列というのはかなり大きな比重を占める業務になります。ですので、商品陳列を開始するにあたって商品の納品時間がしっかり計画されていることは店舗の陳列作業をする従業員にとって重要な問題になります。
ところが！！その陳列作業開始のトリガーとなる商品の納品時間が店舗に連絡されていないという驚愕の事実が。。。
思うことはたくさんありますが、それはさておきこの状態をなんとかしなければなりません。
そこで、私の記念すべき業務改善ツール作成第一弾は物流センターから、店舗陳列オペレーション担当者への<dl> <dt>「店舗納品時間の連絡ツール」作成 </dt></dl>とすることにしました！


## 店舗納品時間の連絡ツールの完成品
納品時間の連絡は二つの問い合わせに方法による区分と二つの温度帯の区分で実施することにしました。

<dt>問い合わせ区分</dt>

1. 店舗から問い合わせに対し自動回答（プル型）
2. 定時に全店に対しメール配信（プッシュ型）

また、店舗への商品配送は商品の特性に応じて常温と低温に区分されているため、常温便と低温便に分けて情報発信することにしました。

<dt>温度帯区分</dt>

![常温低温0727-2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/893b650d-9ea2-c155-6e5f-c318df914c94.jpeg)
　
定時配送と当日の配送時間を比較し、納品時間内に配送できている「正常」か時間に遅れている「遅延」かを判定し、併せて記述をします。

<dt>店舗から問い合わせに対し自動回答（プル型）の完成映像</dt>

https://x.com/agscmo63102/status/1814542675787587981?s=46

店舗からの問い合わせに自動回答できました！


<dt>定時に全店に対しメール配信（プッシュ型）の完成画像</dt>

・常温：常温トラック配送　　　　　　　 12：00～13：00にメール自動配信
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/38cb7c74-0d3d-b4d3-aecd-c7024fa32bca.jpeg">
・低温：低温（冷蔵・冷凍）トラック配送　4：00～ 5：00にメール自動配信
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/0d00d47c-4649-d6c8-1e27-94a1b8110e67.jpeg">

指定時間帯でメール一斉送信ができました！

:::note info
インフォメーション　
便宜上
・仮の店舗A～D店を設定しています。
・送信先メールアドレスは同一連絡先にしています。
:::

## 使用ツール
・[LINE Developers](https://developers.line.biz/ja/)
・[Make](https://www.make.com/en/)
・Google Spread Sheets
・Google Apps Script
・[ChatGPT](https://openai.com/chatgpt/)

## 店舗納品時間の連絡ツールの構造
<img width="800" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/357cfc72-2261-7ec5-f126-b7ae54bbd73e.jpeg">

## 作成工程
1. 店舗納品時間の連絡ツールの企画
2. データテーブルを作成
Google DriveのGoogle Spread Sheetsを利用してデータテーブルを作成します。
3. 店舗からの問い合わせに対し自動回答（プル型）機能するの作成
4. 定時に全店に対しメール配信（プッシュ型）する機能の作成
・ データテーブルからメール配信データの作成
・ メール自動配信の設定
・ トリガー機能の設定

### 1. 店舗納品時間の連絡ツールの企画
<dt>「店舗納品時間の連絡ツール」の作成</dt>

店舗からの問い合わせへの即時対応と、毎日の定時連絡の両方に対応するため、納品時間の連絡は二つの方法で実施することにしました。
1. 店舗から問い合わせに対し自動回答（プル型）
LINE Botを利用します。LINEで「常温/低温」+「店舗番号」を入力すると、納品時間と遅延の有無を回答します。

2. 定時に全店に対しメール配信（プッシュ型）
Google Spread SheetsのApps ScriptでJavascriptによるメール自動送信を指示します。
同様にApps Scriptのトリガー機能を利用し、指定の時間帯に上記メール自動配信を指示します。

1.2．のデータはともにGoogle Spread Sheetsに作成した納品時間テーブルを利用します。
### 2. データテーブルの作成
Google DriveのGoogle Spread Sheetsを利用してデータテーブルを作成します。
各種情報は店舗増加時などのメンテナンスを考慮し、シートを分けて作成し、シート1～４の情報をシート５、シート６で出力用に集計する形をとりました。

| シート | シートの内容 |
|:-:|:-|
| １  | 定時配送時刻一覧  |
|  ２ | 店別納品時間予定一覧  |
|  ３ | 店舗、メールアドレス一覧  |
|   ４| コメント一覧（配送正常・遅延時のコメント）  |
|   ５| <dt>納品時間一覧（シート1、2、4の情報より作成）|
|   ６| <dt>メール送信情報のまとめ（シート3と5より作成）  |

シート5は「1. 店舗から問い合わせに対し自動回答（プル型）」用
シート6は「2. 定時に全店に対しメール配信（プッシュ型）」用
として作成します。

シート5：「1. 店舗から問い合わせに対し自動回答（プル型）」用
![シート5 0720.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/5eb13405-479f-5ca2-a00b-57d6a901aec3.jpeg)
シート1、2、4の情報よりExelと同じ要領で関数を使ってA列のIDをキーに、必要な情報が抽出可能なように同じ行に同じ店舗の情報が入るように表をまとめます。

シート6：「2. 定時に全店に対しメール配信（プッシュ型）」用
![シート6 0720.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/da1b4906-cb89-0f80-fac6-49da1aec27b2.jpeg)
画像は常温A店用ですが、同様にシート6内に常温B、C、D店、低温A、B、C、D店についてそれぞれ作成しています。
（本文の作成方法は後述します）

### 3. 店舗からの問い合わせに対し自動回答（プル型）する機能の作成
Makeを利用し店舗からの問い合わせに対する自動回答の機能を作成していきます。

・Google Sheets モジュールでGoogle Spraed Sheetsから情報取得の設定をします。
![Google Sheetsモジュール0720.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/c44dcf22-968e-c530-6a3d-6808b2c3a287.jpeg)

・LINE モジュールで回答出力情報の選択をし、出力情報の体裁を整えます。
![LINEモジュール0720.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/03e549ea-0e5b-3473-deb3-327b7b2ede06.jpeg)
・出力された内容
<img width="300" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/93d01d8d-1ae6-acd8-5d78-d8152854bb51.jpeg">
イメージ通りの回答が出力されました。遅延情報も記載されています。
「1. 店舗から問い合わせに対し自動回答（プル型）」はこれで完成です:v:

### 4. 定時に全店に対しメール配信（プッシュ型）する機能の作成
#### ・データテーブルからメール配信データの作成
Google Spread Sheetsのシート6に配信するメールの「件名」「本文」「メールアドレス」の表を作成します。

「件名」：シートに直接入力　
「メールアドレス」：シート3を参照
「本文」：関数を使いシート5を参照。下図のとおり関数を使って作成します。

<img width="800" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/7d0ba112-9e46-bd71-f869-b18073d06c56.jpeg">

:::note info
インフォメーション
時間情報を関数で参照し何も処理をせずに＆＆で他の情報と結合すると、時間表示から数値（小数点）表示に変わってしまいます。
Text関数で時間をテキスト情報にした上で、”H:mm”で○：○○という時間表示の形式に再変換します（上図参照）。
:::
#### ・ メール自動配信の設定
Google Spread SheetsのApps Scriptのエディタを利用し、メールの自動配信を指示します。
<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/c99cea9a-b32c-9463-b4eb-3f37682e4001.jpeg">

ChatGPTにメール情報を取得して、自動配信指示するGASをJavaScriptで作成する指示をします。

ChatGPT用プロンプト（常温便用）
<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/19b2ab9a-2d53-ac65-5f82-f30bff0f4b62.jpeg">

ChatGPTが生成したGAS（常温便用）
![ChatGPTGAS0720.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/51815553-0ad9-f72a-de06-56a72b952a47.jpeg)

生成したGASをApps Scriptに張り付けます。
![Apps Script0720.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/d06fc52e-7878-3641-cbc6-d462f3baefdd.png)
常温用をSendEmails１、低温用をSendEmails2とします。
#### ・ トリガー機能の設定
メール自動配信をするきっかけとなる”トリガー”を設定します。
下図矢印部分クリックしトリガーを開きます。
![トリガー0720.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/e1219cc1-508f-d3d3-d4ca-fc825a5015be.jpeg)

トリガーの編集を行います。
常温配送は午後12時～1時の配信とします。同様に低温は午前4時～5時の配信としました。
<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/0429cfdf-6aab-6323-a09c-3287725761f5.jpeg">

:::note warn
注意
・　トリガーは様々な形で設定ができますが、時間設定はピッタリ○○時送信ということはできないようです（あくまで○○時から○○時の間に送信ということのようです）。
・　トリガーは「一時停止」のような機能がありません。設定した時刻になるたびにトリガー機能が発動するので、止めるためにはトリガー自体を削除する必要があるようです。
:::
![納品連絡メール0722.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/1ec9dc76-ebd5-7d8a-0a61-60ec5446a73f.jpeg)
「2. 定時に全店に対しメール配信（プッシュ型）」はこれで完成です:v:
朝起きて、メールがちゃんと時間通り配信されているのを確認したときは、かなりの達成感です！！
## 苦労した点:tired_face:
#### ・ メールの書式設定
Google Spread Sheets上で作成したメール本文のレイアウトをメール上でも同様のレイアウトになるように調整するのに試行錯誤しました。

![メール書式崩れ0722.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/e131dbb9-0fc2-d215-42d0-3656a25d921b.jpeg)

結論、ChatGPTへ指示するプロンプトに下線部の内容を加えることで解決しました。

![ChatGPTプロンプト0722.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/6b4b0149-a38d-79c7-1c5c-7a4a02ea4c24.jpeg)

プロンプト修正後の配信メール
![プロンプト修正後のメール0720.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/3c4a28e7-7dc6-f336-a020-75320c74a9b4.jpeg)
改行がイメージどおりなされ、レイアウトが整いました。

## 店舗納品時間の連絡ツールの企画の改善・改良点:slight_smile:
機能面ではほぼ企画どおりアウトプットできました。
今後の改良点としては、店舗数が増加した場合、店舗納品時間の連絡ツールのメンテナンスのしやすさを考慮した Google Spread Sheets上のシート6のメール送信情報のまとめとGASの内容の整理が必要かと考えています。

・ シート6のメール送信情報を店舗別、常温・低温別に作成するのではなく、一つのフレームから繰り返し情報の書き換えと取得をすることで対応できないか？
・上記が可能になることで、GASもシンプルになり、店舗数など環境が変化した場合のGASのメンテナンスが容易になるのでは？
（上記2点はChatGPTのプロンプトを何回か書き換えてトライしましたが、今回は良い回答が得られませんでした）

## ChatGPTを利用することで何が変わった？

・今の自分ではとても手に負えないGASの利用が可能になり、Google Spread Sheets上の情報を編集してメールの自動発信が可能になりました！
・大幅に作成時間短縮が可能になったことで、今回は「プッシュ型」と「プル型」の二つのアイデアを両方とも実装させる時間が生まれました！
・いろんなアイデアを実現するハードルが下がると同時に、アイデアの幅が大きく広がったように思います！
・中国の「百度（バイドゥ）」のAI「文心一言」でもChatGPTと同じようにGASの作成を指示してみたら、しっかり作成してくれました！これで中国でもかなりやれそうな予感です:grin:


<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/d3524872-5b27-167e-976a-880c9e05d1f3.jpeg">

## 初めての「小さな業務改善」を終えて:laughing:
業務改革に向けての小さな業務改善の1回目はなんとかやりたいことが出来そうな見通しが立ってきた実感があります！（中国で実用化するためにはまだWeChatに”移植”する作業が残っていますが:sweat_smile:バイドゥのAIでGASが作成できるのはかなり心強い発見でした）

さっそく情報の受け手側である小売事業会社の社長に今私がプロトタイプ作成の勉強をしている状況の説明をしつつ、LINE Botのアウトプットを見ていただきました。

<dt>「こんなのできるんだったら、すぐやってよ！というか、うちのメンバーにも教えていろいろ改善させてよ！！」</dt>
期待以上のお言葉、ありがとうございます！こんな風に言っていただけたら、誰だって嬉しいし、やるきになりますよね！！

私は自社のメンバーにそんな気持ちにぜひなってほしいのです。
そして小さな改善をスピード感をもって積み重ね、やがては大きな改革へとつなげていきたいです！！

こんな機能があったらいいね、使えるねというアイデアがありましたら是非教えてください！
最後までお付き合いいただき、ありがとうございました！！

![agile.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3812519/61515a35-ac47-17da-8ae3-b5d889554ce6.png)
<dt>拙速不如巧迟！　スピードが命！！