メインコンテンツまでスキップ

kickflow

kickflowを業務アセットとして接続するために必要な準備と、接続後に管理できる対象を説明します。接続には、kickflowで発行したAPIトークンが必要です。

概要​

kickflowは、株式会社kickflowが提供するクラウド型の申請・承認サービスです。稟議や各種申請の起案から承認までをオンラインで進め、組織の意思決定プロセスをデジタル化します。

参照先リンク
公式Webサイトkickflow(キックフロー)
APIリファレンスkickflow Developer

管理できること​

機能対応
アカウント作成○
グループ付与—
ロール付与○
アプリ—
グループプッシュ—

接続方式は標準コネクタです。表の—は、対応していないことを表します。

管理する対象​

kickflowの対象YESODでの扱い
ユーザーアカウントとして管理します
管理者ロール割当として管理します。複数のロールを同時に付与できます
チーム割当ではなく、同期する項目で管理します
組織図チームを操作するときの前提として参照します。組織図自体は操作しません

チームを割当として扱わないのは、kickflowのチーム所属に役職ID(gradeIds)と上長フラグ(leader)の指定が必要なためです。チーム所属と役職はセットで管理します。設定方法はチーム所属の属性を参照してください。

ユーザーのステータス​

kickflowのユーザーには、次の4つのステータスがあります。

ステータス状態
invited招待済み。まだ利用者がアクセスしていない
activated有効。利用者がアクセスした状態
suspended停止中
deactivated無効化済み(論理削除)

YESODがアカウントとして取り込むのは、activatedとinvitedのユーザーだけです。

事前に必要なもの​

  • kickflowの管理画面で発行したAPIトークン
  • APIトークンを発行するユーザーの管理者ロールに付与された、次の3つの管理権限
kickflowの管理権限必要な操作
ユーザーの管理権限ユーザー・役職の参照・作成・更新・停止・再開・削除
チームの管理権限組織図・チーム・所属の参照・作成・更新・削除
管理者ロールの管理権限管理者ロール・ロールメンバーシップの参照・作成・更新・削除

接続に使う情報​

入力項目必須入力する内容
「APIトークン」必須kickflowの管理画面で発行したAPIトークン

kickflowのAPIのベースURLはhttps://api.kickflow.com/v1で固定です。接続画面で入力する項目はありません。

APIトークンは第三者へ共有せず、安全な場所で管理してください。

接続する​

「業務アセット」画面から「SaaS接続」画面を開くまでの手順は、業務アセットを追加するを参照してください。

  1. 「SaaS接続」画面で「kickflow」を選択します。 「kickflow 接続」画面が表示されます。

  2. 「APIトークン」を入力します。

  3. 「名寄せに使用する項目」を確認します。 名寄せの考え方はアカウントとメンバーの名寄せを参照してください。

  4. 「接続」ボタンをクリックします。 同期が完了すると、業務アセットが作成されます。

接続画面には「管理者権限を持ったアカウントで[接続]してください。」と表示されます。事前に必要な管理権限を持つユーザーで発行したAPIトークンを使ってください。

アカウントの作成​

アカウント作成のタスクを実行すると、YESODはメールアドレスを一意の識別子としてkickflowへ渡します。同じメールアドレスのユーザーがkickflowにあるかどうかで、動作が変わります。

kickflowの状態動作
同一メールアドレスのユーザーがkickflowに存在しないユーザーを新規作成します
同一メールアドレスの有効なユーザーが存在する(activated/invited)そのユーザーの情報を更新します
同一メールアドレスの停止中のユーザーが存在する(suspended)再有効化(reactivate)してから情報を更新します
同一メールアドレスの削除済みのユーザーが存在する(deactivated)再招待(reinvite)してから情報を更新します

ユーザーコード​

kickflowはユーザーの作成時にユーザーコード(user.code)を必須にしており、ほかのサービスと違って自動採番しません。YESODは既定で、社員番号(user.employeeNumber)の先頭の値を使います。

パスワードの扱い​

kickflowは、APIと管理者のどちらにもパスワードを操作する手段を提供していません。そのため、パスワードの管理には対応していません。パスワードリセットも利用できません。

招待メール​

アカウントの作成時には、既定で招待メールが送信されます。同期する項目のuser.sendEmailにfalseを指定すると、送信を抑制できます。この項目はアカウントの作成時だけ有効です。

アカウントの削除​

kickflowにはユーザーの停止と削除があります。業務アセット経由のアカウント削除では、kickflow上の**削除(deactivate)**が使われます。停止は使いません。

操作kickflowのAPI動作
停止(suspend)POST /users/{id}/suspendステータスがsuspendedになります。再開(reactivate)でき、チーム所属とロール所属は保持されます
削除(deactivate)DELETE /users/{id}論理削除です。ステータスがdeactivatedに変わり、deactivatedAtにタイムスタンプが設定されます。削除後もAPIから取得できます
注意

invitedのユーザーは停止できません。停止できるのはactivatedのユーザーだけです。invitedのユーザーを無効にするには、削除を使ってください。削除はinvited・activated・suspendedのどのステータスからでも実行できます。

削除するユーザーを上長とするユーザーがkickflowに残っていると、kickflowがエラーを返します。このときYESODには次のメッセージが表示されます。

上長が最低一人は必要です。kickflow 側で上長の付け替えを行ってから、再度実行してください。

ステータスの遷移​

割当種別​

割当種別名タイプ割当項目の例備考
管理者ロール複数のグループに所属させるスーパー管理者、ユーザー管理者などkickflowの管理者ロールです。複数のロールを同時に付与できます

スーパー管理者は、テナントの作成時から存在する特殊なロールで、すべての管理権限を持ちます。管理者ロールはkickflow側でカスタム作成でき、複数の権限を組み合わせて定義します。詳しくはkickflowヘルプセンターを参照してください。

同期する項目​

業務アセットの「アカウント設定」にある「同期する項目」で、YESODの項目をkickflowの項目へ対応づけます。

基本属性​

必須項目属性キー既定値型備考
✅メールアドレスuser.emailuser.emailstringkickflowのユーザーとの紐付けに使う項目です
✅姓user.lastNameuser.familyNameLocalPreferredstring—
✅名user.firstNameuser.givenNameLocalPreferredstring—
✅ユーザーコードuser.codeuser.employeeNumber.size > 0 ? user.employeeNumber[0] : nullstring一意の値です。自動採番されないため、既定では社員番号の先頭の値を使います
—社員番号user.employeeId—string / null任意の項目です
—招待メール送信user.sendEmailtruebooleanアカウントの作成時だけ有効です。falseで招待メールを抑制できます

チーム所属の属性​

kickflowのチーム所属は、チームID × 役職IDリスト × 上長フラグの3つの要素で1つのエントリを構成します。1人のユーザーは複数のチームに所属できます。そのため、属性キーにはインデックス付きの動的なキーを使います。user.teamMembership[0].*、user.teamMembership[1].*のように、Nの部分で所属を区別します。

必須項目属性キー型備考
エントリを追加するときは必須チーム識別子user.teamMembership[N].teamIdstringkickflow上のチームのUUID、またはチームのコードを指定します
エントリを追加するときは必須役職IDリストuser.teamMembership[N].gradeIdslist<string>kickflow上の役職IDのリストです。kickflow APIの仕様上、1件以上必要です
任意上長フラグuser.teamMembership[N].leaderbooleanチームの上長として所属するかどうかを指定します。省略するとfalseです

Nは0から始まる連番です。所属の数だけ並べます。

チーム識別子と役職IDを調べる​

チーム識別子には、次のどちらかを指定できます。kickflow APIがどちらも受け付けます。

  • UUID: kickflowの管理画面の各チームのページのURLの末尾から取得します。 URLの形式は次のとおりです。

    https://<テナント>.kickflow.com/admin/organizations/<組織図UUID>/teams/<チームUUID>
  • コード: チームの編集画面の「コード」欄で任意に設定する文字列です。未設定のときはkickflowが自動採番します。 人が読める識別子として運用したい場合に使います。

役職IDはkickflowの管理画面から確認できません。APIトークンを使って、APIから取得します。

curl -H "Authorization: Bearer <APIトークン>" https://api.kickflow.com/v1/grades

レスポンスは役職の配列です。各要素のidが役職IDです。

[
{
"id": "00000000-0000-0000-0000-00000000000A",
"name": "部長",
"code": "MANAGER",
"level": 10
}
]

nameやcodeで対象の役職を絞り込み、そのidをuser.teamMembership[N].gradeIdsに指定してください。詳しくは役職(listGrades) - kickflow Developerを参照してください。

属性式の書き方​

属性式はSpEL(Spring Expression Language)で評価されます。リテラルはSpELの構文に従って書いてください。

種類書き方
文字列リテラルシングルクォート'...'またはダブルクォート"..."で囲む
リストリテラル波括弧{...}で囲む
真偽値true / false(クォートは不要)
注意

リストリテラルに角括弧[...]は使えません。SpELでは[...]はプロパティのインデックスアクセス(Indexer)として解釈されます。リストのつもりで書くと、UUIDの文字列がキーとして解釈され、エラーになります。リストには必ず波括弧{...}を使ってください。

設定例​

営業チームに部長として上長で所属し、あわせて開発チームにメンバーとして所属する場合の設定例です。

次の例のUUIDは説明用のプレースホルダーです。実際にはkickflowから取得した値に置き換えてください。チームIDは管理画面のURLの末尾、役職IDはGET /v1/gradesのレスポンスから取得します。

プレースホルダー説明
00000000-0000-0000-0000-000000000001営業チームのID
00000000-0000-0000-0000-000000000002開発チームのID
00000000-0000-0000-0000-00000000000A部長の役職のID
00000000-0000-0000-0000-00000000000Bメンバーの役職のID
属性キー属性式
user.teamMembership[0].teamId'00000000-0000-0000-0000-000000000001'
user.teamMembership[0].gradeIds{'00000000-0000-0000-0000-00000000000A'}
user.teamMembership[0].leadertrue
user.teamMembership[1].teamId'00000000-0000-0000-0000-000000000002'
user.teamMembership[1].gradeIds{'00000000-0000-0000-0000-00000000000B'}

チーム所属の同期の挙動​

  • アカウントの新規作成時: 設定したチーム所属がすべて反映されます。
  • アカウントの更新時と属性の同期時: YESODの設定と現状の差分(追加・更新・削除)だけが適用されます。
  • 同一のチームIDのマージ: 同じチームIDを複数のインデックスで指定した場合、gradeIdsは和集合にマージされます。leaderは、1つでもtrueがあればtrueになります。
警告

チーム所属の同期はオプトインです。user.teamMembershipで始まるマッピングが1つも無い場合、チーム所属の同期自体をスキップし、kickflow側の現状の所属に変更を加えません。

一方、マッピングはあるものの有効なエントリが1つも無い場合は、現在のチーム所属をすべて解除する動作になります。

入力チェック​

チーム所属の属性には、次の入力チェックがあります。設定を誤ると、タスクの実行時にエラーが発生します。

  • teamIdが未設定で、gradeIdsまたはleaderに値があるとエラーになります。
  • teamIdを指定してgradeIdsが空または未設定のときも、エラーになります。kickflow APIの仕様上、役職IDが1件以上必要なためです。
  • teamIdに指定した値が、現在の組織図にあるチームのUUIDまたはコードに一致しないとエラーになります。

補足​

  • kickflowのユーザーを取得するAPIには、チームとロールの情報が含まれません。GET /users/{id}/teamsとGET /users/{id}/rolesで別途取得します。
  • 一覧のエンドポイント(GET /users)と詳細のエンドポイント(GET /users/{id})ではフィールドが違います。詳細にだけuserLineWorksAccount(LINE WORKS連携)とinvitation(招待情報)が含まれます。
  • 同期の対象は、kickflow上のcurrent = trueの組織図の配下にあるチームだけです。next・pastの組織図には同期しません。

グループプッシュ​

対応していません。

関連ページ​