人間処理が不可欠な入金確認の業務プロセス

2012年3月19日
銀行口座に入金があった際に「入金通知」がメールで届く、、、
と言うサービスはある。でも、発行済み請求書との付き合わせ作業(入金消し込み)を無人化するには、この「入金通知」の情報だけではゼンゼン足りない。

まぁ、そもそも『振込元の名義表記』が想定と違ったり、『振込元の電話番号』が登録内容と異なったり…。入金確認については、「人間が融通を利かさないと処理できない入金」が多いと言うのも現実なので、キッチリと人手をかけてチェックするのは正しい。 銀行口座との「API連携」なんて、現実的にはマダ先の話だ。

※ 特に日本では、請求書は「漢字」でも、入金名義は「カタカナ」だったり「ローマ字」だったり・・・。

しかし、
しかししかし、
それでも、この「入金消し込み作業」を少しは工夫改善したい。やはり無駄が多すぎる。何より、ミス・ヌケ・モレの発生が起きない様な業務プロセスを考察したい。

そう、
ミス・ヌケ・モレを担当者の責任にするのではなく、ミス・ヌケ・モレは業務プロセスの問題と捉えたい。

[入金確認フロー]


上記ワークフローは「有料イベント」の入金確認フローだ。

「参加申込」はWebサイトを通じて行えるが、入金方法はPayPalや銀行振込など、様々な方法を選択できる。事務局側は、申込者からの入金が確認できれば、未納者一覧を消し込み、いつでも入金済者一覧や未入金者一覧を作成したい。

この例ではWeb申込受付に Google Docs の「フォーム」を使っている。Webフォームに入力があると、Google 側からワークフロー側(もちろんQuestetra)にデータが送信され、『参加申込者の氏名』(例:「鈴木一郎」)がタイトルとしてセットされた新しいプロセスが起動する。※ Google Apps Script の設定が必要(下記参照)

ワークフロー側でプロセスが起動すると、直後に、(1)自動的に『受付完了メール』が送信される。後日、(2)経理担当が口座入金を確認し、その直後に、(3)『入金御礼メール』が自動的に送信される、と言う流れだ。

なお、『受付完了メール』の中に、参加申込者に対する「申込受付ID」を発行しておきたい。例えば電話での問合を受ける際にも「申込受付ID」を言ってもらえば、スグにプロセスデータを確認できる。ここでは「申込受付ID」を少し複雑にするために「ワークフローシステム全体の管理ID(プロセスID)」+「業務プロセス内でユニークな連番(4桁のプロセス連番)」を結合させた数字とした。(プロセス起動時に自動生成される)

『申込受付ID』の初期値設定: #{processInstanceId}#{#sformat('%04d', processInstanceSequenceNumber)}
(例:9130012)

ちなみに、この様に設定しておくと、「申込受付IDが9130012の鈴木ですけど…」と言う問い合わせにも、即座に対応できるようになる。すなわち「参加申込者名」だけでなく「プロセスID」でも簡単に探し出せる。

<Questetra BPM Suite の『マイタスク一覧』の表示例>
件名:鈴木一郎 プロセスID:913

単なる消し込み作業も「工夫の余地」は大きい。

[入金確認フロー 「2.口座入金を確認&消込」画面]


[プロセスデータ設定画面]


[「1.受付完了」設定画面]


▼Questetra側にフォーム入力データを送信する Google Apps Script の例▼
function startWorkflow(e) {
try{
var longurl = "https://s.questetra.net/●●●●●●●●/System/Event/MessageStart/start";
var payload = "processModelInfoId=●&nodeNumber=●&key=●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●";
payload += '&title=' + encodeURIComponent(e.values[1]);
payload += '&data[1].input=' + encodeURIComponent(e.values[2]);
payload += '&data[2].input=' + encodeURIComponent(e.values[3]);
payload += '&data[3].input=' + encodeURIComponent(e.values[6]);
payload += '&data[4].input=' + encodeURIComponent(e.values[7]);
payload += '&data[5].input=' + encodeURIComponent(e.values[9]);
var params = {
method: 'post',
payload: payload
};
UrlFetchApp.fetch(longurl, params);
} catch (ex) {
MailApp.sendEmail("SouthPole@questetra.com", "script error", ex.message);
}
}

<類似プロセス>


≪関連記事≫


0 件のコメント :

コメントを投稿