コンテンツにスキップ

10. 業務の流れ(全体図)

契約から請求までを、だれが・どの順で・なぜ行うかを 1 本につないだ図です。

画面ごとの使い方は 03 画面仕様 に、 細かい決まりは 04 業務ルール に書いてあります。 この章はその間をつなぐ地図で、「いまどのあたりの話をしているのか」を 確かめるために使います。

この図は社内のポスター「シフネク Platform Blueprint」をもとにしています。 ただしいまのコードに合わせて書き直しているため、ポスターと違うところが あります。違いは最後の ポスターと違うところ に まとめました。

読み方

  • 番号は進む順番です。上から下へ進みます。
  • 同じ段に並ぶものは、状況によって分かれる別々の道です(例:確定/却下)。
  • 枝番の英字は分かれ道の枝です。X は例外、P は招待を使わない道、 R はやり直しに使っています。
  • 点線の矢印は、例外やもう一度やり直すときの流れです。
見た目 意味
青 運営者(Gipple 管理者)が行うこと
緑 クライアント(企業・事業所)が行うこと
黄 スタッフが行うこと
赤 例外(想定外の状況)
六角形 システムが自動で行うこと(人は操作しません)

カードを押すと、その画面の仕様に飛びます。 画面のない段階(システムが自動で行うものと、例外)には飛び先がありません。 仕様書サイトでだけ働きます(GitHub の画面では図は絵として出ます)。

全体図

元のポスターと同じ並びです。横に長い図なので、枠の中を横に動かして 見てください(画像だけを開く と、ブラウザの拡大縮小が使えます)。

業務の流れの全体図

この図を作っている元データ(矢印のつなぎ方)

上の図は、このページのフェーズの表(カードの文言と飛び先)と、 下の記述(矢印)から python manage.py spec_flow --write が作ります。 手で直さないでください。

flowchart TD
  subgraph P1["01 契約・初期設定"]
    direction TB
    s1["<b>1</b><br/>法人を登録する<br/>目的:契約した会社をシステムで扱<br/>えるようにするため<br/>法人番号から名前・住所を自動で入<br/>れます。URL に使う会社の識別<br/>…"]
    s2["<b>2</b><br/>事業所を登録する<br/>目的:募集や勤怠を事業所ごとに分<br/>けて管理するため<br/>1 つの法人に複数作れます"]
    s3A["<b>3A</b><br/>企業アカウントを発行する<br/>目的:会社全体を任せる担当者に使<br/>ってもらうため<br/>その法人のすべての事業所を扱えま<br/>す"]
    s3B["<b>3B</b><br/>事業所アカウントを発行する<br/>目的:決まった事業所だけを任せる<br/>ため<br/>選んだ事業所だけを扱えます"]
    s4["<b>4</b><br/>ログインする<br/>目的:自分の事業所の仕事を始める<br/>ため<br/>会社ごとの URL から入ります"]
    s5["<b>5</b><br/>初回のパスワードを変更する<br/>目的:仮パスワードを本人だけが知<br/>るものにするため<br/>変更するまで他の画面は使えません"]
    s6A["<b>6A</b><br/>事業所を選ぶ<br/>目的:どの事業所の仕事をするか決<br/>めるため<br/>扱える事業所が複数のとき"]
    s6B{{"<b>6B</b><br/>事業所が自動で決まる<br/>目的:選ぶ手間を省くため<br/>扱える事業所が 1 つのとき"}}
    s1 --> s2
    s2 --> s3A
    s2 --> s3B
    s3A --> s4
    s3B --> s4
    s4 --> s5
    s5 -->|"扱える事業所が複数"| s6A
    s5 -->|"扱える事業所が 1 つ"| s6B
  end

  subgraph P2["02 スタッフの登録"]
    direction TB
    s7["<b>7</b><br/>招待リンクを発行する<br/>目的:スタッフに自分で登録しても<br/>らうため<br/>選んでいる事業所あてに作られます"]
    s7P["<b>7P</b><br/>スタッフを代わりに登録する<br/>目的:招待を待たずにすぐ登録する<br/>ため<br/>写真も登録できます。年齢の下限は<br/>下の注を見てください"]
    s8A["<b>8A</b><br/>URL をコピーして送る<br/>目的:ふだん使っている連絡手段で<br/>届けるため<br/>QR コードを表示して読み取らせ<br/>ることもできます"]
    s8B["<b>8B</b><br/>招待メールを送る<br/>目的:システムからメールで届ける<br/>ため<br/>停止中のリンクは送れません"]
    s8P["<b>8P</b><br/>ID と仮パスワードを受け取る<br/>目的:クライアントから登録を知ら<br/>されるため<br/>伝え方は事業所との間で決めます。<br/>メールは送りません"]
    s9A["<b>9A</b><br/>送られた URL を開く<br/>目的:登録の画面に進むため<br/>スマートフォンで開けます"]
    s9B["<b>9B</b><br/>メールのリンクを開く<br/>目的:登録の画面に進むため"]
    s9P["<b>9P</b><br/>初回ログインしてパスワードを変更<br/>する<br/>目的:仮パスワードを本人のものに<br/>するため<br/>代わりに登録してもらった場合"]
    s9Q["<b>9Q</b><br/>いまのパスワードでログインする<br/>目的:別の事業所の所属を追加する<br/>ため<br/>すでに登録のあるメールアドレスの<br/>とき。11 へ進みます"]
    s10["<b>10</b><br/>自分で登録する<br/>目的:その事業所で働けるスタッフ<br/>になるため<br/>氏名・カナ・生年月日・パスワード<br/>を入れます"]
    s10X["<b>10X</b><br/>停止されたリンクと表示される<br/>目的:停止したリンクから登録させ<br/>ないため<br/>7 に戻って発行し直してもらいま<br/>す"]
    s11["<b>11</b><br/>プロフィールと口座を登録する<br/>目的:本人確認と給与の振込に必要<br/>な情報をそろえるため"]
    s7 --> s8A
    s7 --> s8B
    s7P --> s8P
    s8A --> s9A
    s8B --> s9B
    s8P --> s9P
    s9A --> s10
    s9B --> s10
    s9A -.->|"リンクが停止されている"| s10X
    s9B -.->|"リンクが停止されている"| s10X
    s10 -->|"初めてのメールアドレス"| s11
    s10 -->|"すでにあるメールアドレス"| s9Q
    s9Q --> s11
    s9P --> s11
    s10X -.->|"発行し直しを頼む"| s7
  end

  subgraph P3["03 求人の準備・公開"]
    direction TB
    s12["<b>12</b><br/>業務テンプレートを作る<br/>目的:同じ仕事を毎回入力せずに出<br/>稿するため<br/>勤務地を空にすると、事業所の所在<br/>地が使われます"]
    s13["<b>13</b><br/>お仕事を出稿する<br/>目的:必要な日時に働く人を募集す<br/>るため<br/>確定方法(手動/応募即確定)をこ<br/>こで選びます"]
    s14A["<b>14A</b><br/>全員に公開する<br/>目的:事業所のスタッフ全員に見せ<br/>るため<br/>公開範囲を指定しなかったとき"]
    s14B["<b>14B</b><br/>選んだスタッフに限定公開する<br/>目的:特定の人にだけ募集するため<br/>出稿と同時にも設定できます"]
    s15B["<b>15B</b><br/>限定公開を知らせる<br/>目的:選んだ人に募集を伝えるため<br/>いまは送った記録が残るだけで、ま<br/>だ届きません(09 参照)"]
    s16A["<b>16A</b><br/>お仕事を探す<br/>目的:働ける日の仕事を見つけるた<br/>め<br/>日付とキーワードで探します。全員<br/>に公開された分だけが出ます"]
    s16B["<b>16B</b><br/>自分あての募集を開く<br/>目的:自分あての募集に気づくため<br/>限定公開の対象のとき"]
    s12 --> s13
    s13 -->|"公開範囲を指定しない"| s14A
    s13 -->|"対象を選ぶ"| s14B
    s14B --> s15B
    s14A --> s16A
    s15B --> s16B
  end

  subgraph P4["04 応募・確定"]
    direction TB
    s17["<b>17</b><br/>お仕事の内容を確かめる<br/>目的:条件を確かめてから応募する<br/>ため<br/>時給・持ち物・勤務地"]
    s18["<b>18</b><br/>応募する<br/>目的:その仕事で働きたいと伝える<br/>ため"]
    s19["<b>19</b><br/>応募を確認する<br/>目的:誰に働いてもらうか判断する<br/>ため<br/>確定方法が「手動」のとき"]
    s19A{{"<b>19A</b><br/>応募と同時に確定する<br/>目的:確定の手間を省くため<br/>確定方法が「応募即確定」のとき"}}
    s19X["<b>19X</b><br/>応募できない<br/>目的:同じ時間に 2 つの仕事を<br/>入れないため<br/>同じ時間帯に確定済みの仕事がある<br/>とき"]
    s19W["<b>19W</b><br/>応募を辞退する<br/>目的:都合が悪くなった応募を取り<br/>消すため<br/>応募中のあいだだけ。確定後はでき<br/>ません"]
    s20A["<b>20A</b><br/>確定する<br/>目的:働く人を決めるため<br/>募集人数まで。下の注を見てくださ<br/>い"]
    s20B["<b>20B</b><br/>却下する<br/>目的:今回はお願いしないと伝える<br/>ため<br/>1 件ずつでも、まとめてでもでき<br/>ます"]
    s21{{"<b>21</b><br/>勤怠の入れ物が作られる<br/>目的:当日の打刻を受け付けられる<br/>ようにするため<br/>確定と同時。時刻は空のままです"}}
    s22A["<b>22A</b><br/>確定した予定を確認する<br/>目的:働く日時と場所を知るため<br/>予定確認の「確定」に出ます"]
    s22B["<b>22B</b><br/>不採用を確認する<br/>目的:結果を知って次を探すため"]
    s17 --> s18
    s18 -->|"確定方法が手動"| s19
    s18 -->|"確定方法が応募即確定"| s19A
    s18 -.->|"同じ時間帯に確定済みの仕事がある"| s19X
    s18 -.->|"都合が悪くなった"| s19W
    s19 --> s20A
    s19 --> s20B
    s20A --> s21
    s19A --> s21
    s21 --> s22A
    s20B --> s22B
  end

  subgraph P5["05 勤務・勤怠の記録"]
    direction TB
    s23A["<b>23A</b><br/>出勤を打刻する<br/>目的:働き始めた時刻を記録するた<br/>め<br/>予定開始の 60 分前から、予定<br/>終了まで"]
    s23B["<b>23B</b><br/>打刻し忘れる<br/>目的:(打刻漏れ)<br/>打刻できる時間を過ぎた場合も含み<br/>ます"]
    s23C["<b>23C</b><br/>出勤しない<br/>目的:(無断欠勤)<br/>連絡なく来なかったとき"]
    s24["<b>24</b><br/>退勤を打刻する<br/>目的:働き終えた時刻を記録するた<br/>め<br/>予定終了の 3 時間後まで"]
    s25["<b>25</b><br/>勤怠を確認する<br/>目的:打刻が正しいか確かめるため<br/>日ごとの一覧で見ます"]
    s25B["<b>25B</b><br/>時刻を手で入れる<br/>目的:打刻漏れを正しい記録に直す<br/>ため<br/>夜勤は翌日扱い。手で入れたあとは<br/>打刻できません"]
    s25C["<b>25C</b><br/>無断欠勤として記録する<br/>目的:来なかったことを残すため<br/>誤りなら取り消せます"]
    s26["<b>26</b><br/>勤怠を承認する<br/>目的:給与と請求のもとになる時間<br/>を確定させるため"]
    s26R["<b>26R</b><br/>承認したあとに直す<br/>目的:誤りを正すため<br/>承認待ちに戻ります。課金を確定し<br/>た月はできません"]
    s23A --> s24
    s24 --> s25
    s23B -.-> s25B
    s23C -.-> s25C
    s25 --> s26
    s25B --> s26
    s25C --> s26
    s26 -.->|"誤りに気づいた"| s26R
    s26R -.->|"もう一度承認する"| s26
  end

  subgraph P6["06 締め・請求"]
    direction TB
    s27["<b>27</b><br/>月次課金を確定する<br/>目的:その月の利用料金を決めるた<br/>め<br/>稼働したスタッフの人数で計算しま<br/>す。確定した月は変えられません"]
    s28["<b>28</b><br/>請求書を発行する<br/>目的:利用料金を請求するため"]
    s29A["<b>29A</b><br/>入金を記録する<br/>目的:回収を終わらせるため<br/>状態が 入金済 になります"]
    s29B["<b>29B</b><br/>支払期限を過ぎる<br/>目的:未入金に気づいて対応するた<br/>め<br/>状態が 期限超過 になります"]
    s29C["<b>29C</b><br/>請求書を取り消す<br/>目的:誤った請求をなくすため<br/>28 に戻って発行し直します"]
    s27 --> s28
    s28 --> s29A
    s28 -.->|"期限までに入金がない"| s29B
    s28 -.->|"誤って発行した"| s29C
    s29C -.->|"発行し直す"| s28
  end

  s6A --> s7
  s6B --> s7
  s6A --> s7P
  s6B --> s7P
  s11 --> s12
  s16A --> s17
  s16B --> s17
  s19X -.-> s16A
  s19W -.-> s16A
  s22B -.-> s16A
  s22A --> s23A
  s22A -.->|"打刻を忘れた"| s23B
  s22A -.->|"連絡なく来なかった"| s23C
  s26 --> s27

  %% フェーズの帯は無彩色にする。帯に色を付けると、立場 (青・緑・黄) の
  %% 違いが読めなくなる。元のポスターも帯は白地で、色はカードだけ。
  classDef phase fill:#fbfbfa,stroke:#d9d7d2,color:#4a4843
  class P1,P2,P3,P4,P5,P6 phase

  classDef admin fill:#e4ecf7,stroke:#41618f,color:#13233a
  classDef client fill:#e3efe7,stroke:#2f6b4c,color:#12271b
  classDef staff fill:#fbf0dd,stroke:#9c6f28,color:#33240c
  classDef exception fill:#f9e4e4,stroke:#9d4040,color:#331313
  classDef auto fill:#ece6f7,stroke:#604290,color:#1f1433

  class s1,s2,s3A,s3B,s27,s28,s29A,s29C admin
  class s4,s5,s6A,s7,s7P,s8A,s8B,s12,s13,s14A,s14B,s15B,s19,s20A,s20B,s25,s25B,s25C,s26,s26R client
  class s8P,s9A,s9B,s9P,s9Q,s10,s11,s16A,s16B,s17,s18,s19W,s22A,s22B,s23A,s24 staff
  class s10X,s19X,s23B,s23C,s29B exception
  class s6B,s19A,s21 auto

01 契約・初期設定

運営者が会社を受け入れて、クライアントが使い始められる状態にするまでです。

番号 だれが 何をする なぜ 条件・補足
1 運営者 法人を登録する 契約した会社をシステムで扱えるようにするため 法人番号から名前・住所を自動で入れます。URL に使う会社の識別名もここで決めます
2 運営者 事業所を登録する 募集や勤怠を事業所ごとに分けて管理するため 1 つの法人に複数作れます
3A 運営者 企業アカウントを発行する 会社全体を任せる担当者に使ってもらうため その法人のすべての事業所を扱えます
3B 運営者 事業所アカウントを発行する 決まった事業所だけを任せるため 選んだ事業所だけを扱えます
4 クライアント ログインする 自分の事業所の仕事を始めるため 会社ごとの URL から入ります
5 クライアント 初回のパスワードを変更する 仮パスワードを本人だけが知るものにするため 変更するまで他の画面は使えません
6A クライアント 事業所を選ぶ どの事業所の仕事をするか決めるため 扱える事業所が複数のとき
6B システム 事業所が自動で決まる 選ぶ手間を省くため 扱える事業所が 1 つのとき

できることの違いは 06 権限一覧、 初回パスワードの決まりは 02 共通ルール にあります。

02 スタッフの登録

働く人をその事業所のスタッフにするまでです。2 通りの道があります。

  • 招待リンクを使う道(7 → 8A/8B → 9A/9B → 10 → 11) スタッフが自分で入力します。
  • クライアントが代わりに登録する道(7P → 8P → 9P → 11) 招待を待たずにその場で登録できます。
番号 だれが 何をする なぜ 条件・補足
7 クライアント 招待リンクを発行する スタッフに自分で登録してもらうため 選んでいる事業所あてに作られます
7P クライアント スタッフを代わりに登録する 招待を待たずにすぐ登録するため 写真も登録できます。年齢の下限は下の注を見てください
8A クライアント URL をコピーして送る ふだん使っている連絡手段で届けるため QR コードを表示して読み取らせることもできます
8B クライアント 招待メールを送る システムからメールで届けるため 停止中のリンクは送れません
8P スタッフ ID と仮パスワードを受け取る クライアントから登録を知らされるため 伝え方は事業所との間で決めます。メールは送りません
9A スタッフ 送られた URL を開く 登録の画面に進むため スマートフォンで開けます
9B スタッフ メールのリンクを開く 登録の画面に進むため
9P スタッフ 初回ログインしてパスワードを変更する 仮パスワードを本人のものにするため 代わりに登録してもらった場合
9Q スタッフ いまのパスワードでログインする 別の事業所の所属を追加するため すでに登録のあるメールアドレスのとき。11 へ進みます
10 スタッフ 自分で登録する その事業所で働けるスタッフになるため 氏名・カナ・生年月日・パスワードを入れます
10X 例外 停止されたリンクと表示される 停止したリンクから登録させないため 7 に戻って発行し直してもらいます
11 スタッフ プロフィールと口座を登録する 本人確認と給与の振込に必要な情報をそろえるため

年齢の下限について

満 15 歳に達した日より後の、最初の 3 月 31 日が終わるまでは登録できません。 労働基準法が、そこまでを原則として働けない期間としているためです。 7P(クライアントが代わりに登録する)と 10(スタッフが自分で登録する)の どちらも同じ扱いです。くわしくは 02 共通ルール にあります。

03 求人の準備・公開

募集を作って、スタッフに見える状態にするまでです。

番号 だれが 何をする なぜ 条件・補足
12 クライアント 業務テンプレートを作る 同じ仕事を毎回入力せずに出稿するため 勤務地を空にすると、事業所の所在地が使われます
13 クライアント お仕事を出稿する 必要な日時に働く人を募集するため 確定方法(手動/応募即確定)をここで選びます
14A クライアント 全員に公開する 事業所のスタッフ全員に見せるため 公開範囲を指定しなかったとき
14B クライアント 選んだスタッフに限定公開する 特定の人にだけ募集するため 出稿と同時にも設定できます
15B クライアント 限定公開を知らせる 選んだ人に募集を伝えるため いまは送った記録が残るだけで、まだ届きません(09 参照)
16A スタッフ お仕事を探す 働ける日の仕事を見つけるため 日付とキーワードで探します。全員に公開された分だけが出ます
16B スタッフ 自分あての募集を開く 自分あての募集に気づくため 限定公開の対象のとき

04 応募・確定

スタッフが手を挙げて、働く人が決まるまでです。

番号 だれが 何をする なぜ 条件・補足
17 スタッフ お仕事の内容を確かめる 条件を確かめてから応募するため 時給・持ち物・勤務地
18 スタッフ 応募する その仕事で働きたいと伝えるため
19 クライアント 応募を確認する 誰に働いてもらうか判断するため 確定方法が「手動」のとき
19A システム 応募と同時に確定する 確定の手間を省くため 確定方法が「応募即確定」のとき
19X 例外 応募できない 同じ時間に 2 つの仕事を入れないため 同じ時間帯に確定済みの仕事があるとき
19W スタッフ 応募を辞退する 都合が悪くなった応募を取り消すため 応募中のあいだだけ。確定後はできません
20A クライアント 確定する 働く人を決めるため 募集人数まで。下の注を見てください
20B クライアント 却下する 今回はお願いしないと伝えるため 1 件ずつでも、まとめてでもできます
21 システム 勤怠の入れ物が作られる 当日の打刻を受け付けられるようにするため 確定と同時。時刻は空のままです
22A スタッフ 確定した予定を確認する 働く日時と場所を知るため 予定確認の「確定」に出ます
22B スタッフ 不採用を確認する 結果を知って次を探すため

勤務日を過ぎた応募について

勤務日を過ぎていても確定できます。 確定の処理が見ているのは 「応募中であること」「同じ時間帯に確定済みでないこと」「募集人数を超えないこと」の 3 つだけで、勤務日も応募の締切も見ていません。 画面には 勤務日を過ぎています と添えて知らせるだけです。 この挙動の経緯は 04 業務ルール にあります。

05 勤務・勤怠の記録

実際に働いて、働いた時間を確定させるまでです。

番号 だれが 何をする なぜ 条件・補足
23A スタッフ 出勤を打刻する 働き始めた時刻を記録するため 予定開始の 60 分前から、予定終了まで
23B 例外 打刻し忘れる (打刻漏れ) 打刻できる時間を過ぎた場合も含みます
23C 例外 出勤しない (無断欠勤) 連絡なく来なかったとき
24 スタッフ 退勤を打刻する 働き終えた時刻を記録するため 予定終了の 3 時間後まで
25 クライアント 勤怠を確認する 打刻が正しいか確かめるため 日ごとの一覧で見ます
25B クライアント 時刻を手で入れる 打刻漏れを正しい記録に直すため 夜勤は翌日扱い。手で入れたあとは打刻できません
25C クライアント 無断欠勤として記録する 来なかったことを残すため 誤りなら取り消せます
26 クライアント 勤怠を承認する 給与と請求のもとになる時間を確定させるため
26R クライアント 承認したあとに直す 誤りを正すため 承認待ちに戻ります。課金を確定した月はできません

打刻を受け付ける時間帯の決まりは 04 業務ルール にあります。

06 締め・請求

その月の利用料金を決めて、回収するまでです。

番号 だれが 何をする なぜ 条件・補足
27 運営者 月次課金を確定する その月の利用料金を決めるため 稼働したスタッフの人数で計算します。確定した月は変えられません
28 運営者 請求書を発行する 利用料金を請求するため
29A 運営者 入金を記録する 回収を終わらせるため 状態が 入金済 になります
29B 例外 支払期限を過ぎる 未入金に気づいて対応するため 状態が 期限超過 になります
29C 運営者 請求書を取り消す 誤った請求をなくすため 28 に戻って発行し直します

状態の変わり方は 05 状態の移り変わり にあります。

ポスターと違うところ

社内のポスター(シフネク Platform Blueprint)を見ている人のために、 この章がポスターと違う 3 点を残します。いずれもポスターを作ったあとに コードが変わった部分で、この章の方が新しいです。

番号 ポスターの書き方 いまの実装
7P 「15 歳未満は不可」 満 15 歳に達した日より後の、最初の 3 月 31 日が終わるまで登録できません(上の注を参照)
8A 「QR コードでの案内は現状なし」 QR コードを表示できます(C-16 招待リンク)
19W 「応募を取り下げる」 画面の言い方は 辞退 に統一しました

また、ポスターの 20A「勤務日経過は確認あり」は、 実際には「確定を止める」ではなく「画面に注意を添える」だけです (上の 勤務日を過ぎた応募について を参照)。