お世話になっております。 Smartsheetの自動ワークフローについて質問があります。
現在、自動化ワークフローで承認のリクエストを行っています。
承認する際に氏名を入力する設定以外で、承認者の氏名やメールアドレスなどを該当行に自動で記録する方法はありますでしょうか?
また、複数の承認者がいる場合に、それぞれの名前を別々に記録したいです。
Bridgeなどのツールを活用し、解決方法があれば教えていただきたいです。
よろしくお願いいたします。
@Marina_123 さん、お疲れ様です。
自動化ワークフローで複数の承認者に承認を求める場合、複数連絡先を使うと、それぞれの連絡先に承認リクエストが送付され、最初に承認した人の承認ステータスが回答保存場所に保存されます。
したがって、それぞれの承認者とその結果を確認するには、複数連絡先でなく単一連絡先を複数用い、また、ワークフローも個別に設けると良いと思います。
上の例では、シートサマリーのフィールドに承認者を連絡先フィールドに設定しておき、列関数で参照しています。
下のように複数の承認リクエストワークフローがあるので、それぞれにリクエストが送付され、その結果がそれぞれの指定回答保存場所に列に記録されます。
上の例で言えば、1行目のテスト1に関してはjmiyazakiは承認、 demo cloudsmartは却下しています。
以上を下に、どの回答保存場所列に承認が記録されたかにより、数式を用いて、承認者を決定することが可能でしょう。
Bridgeなどのツールの活用に関しては、まず、承認者が記録されているのは、セル履歴とアクティブティーログの2箇所です。
この内、レス履歴はSmartsheet APIを用い取得することができます。(List Cell Histryを用います。)
https://developers.smartsheet.com/api/smartsheet/openapi/cells/cellhistory
https://developers.smartsheet.com/api/smartsheet/openapi/cells/cellhistory-get
ただし、BridgeのSmartsheet インテグレーションのモジュールではList Sheetはサポートされていません。
https://help.smartsheet.com/articles/2482022-smartsheet-reference-guide-bridge
したがって、Smartsheetの固有の機能以外のツールで自動的に承認者を書き込むためにはHTTPでGet, Postのできるツール(私の場合は、GoogleのFunctionをよく用います。)を使用することをおすすめします。
なお、BridgeはWebhookの設定がとても簡単なので、Bridgeをご利用できるのならトリガー用に用いて、BridgeのCall APIにより、あとの処理はPythonなどの言語が使えるツールで行うのがおすすめです。
@jmyzk_cloudsmart_jp ご回答ありがとうございます。 一部門(複数人)全員に承認依頼を送り、承認ステータスが反映される一番最初に回答した人の名前や情報を取得することは可能ですか?
@Marina_123
はい、上に説明したように、Cell Historyで取得可能です。
ただ、自動化するためには、まず、シートの承認結果列を対象としたWebhookを作成し、それがトリガーされたら、その変更された列とセルを見に行き、セル履歴を取り、承認者をとり、行のアップデートにより、特定の列に承認者の値を書き込む必要があります。
やや複雑なロジックなので、きちんと動作するのを作るには、二、三日はかかると思います。
@jmyzk_cloudsmart_jp demo cloudsmart と jmiyazaki のどちらが承認したか知ることは可能ですか?
はい、可能です。
以下がList Cell History のサンプル出力ですが、modifiedBy をチェックしてAutomationでない最新のものが承認者となります。
{ "pageNumber": 1, "pageSize": 50, "totalPages": 25, "totalCount": 136, "data": [ { "modifiedAt": "2019-08-24T14:15:22Z", "modifiedBy": { … }, "columnId": 0, "columnType": "string", "conditionalFormat": "string", "displayValue": "string", "format": "string", "formula": "string", "hyperlink": { … }, "image": { … }, "linkInFromCell": { … }, "linksOutToCells": [ … ], "objectValue": { … }, "overrideValidation": true, "strict": true, "value": "string" } ] }
@jmyzk_cloudsmart_jp
難しそうですね、、、ご回答ありがとうございます。
Webhookのところが面倒なので、定期実行にすれば少し楽になると思ます。
Cell Historyはなくなるものでないので、想定されている利用ケースは、後から承認者を確認するといった監査などの目的でないかと推察されれ、一日に一回、実行する、といった形にすればよいかと思います。
必要であればお手伝いしますので、私のプロフィールにあるメールアドれるにご連絡ください。
ref must be one of: categoryID, siteSectionID, category, category/categoryID, category/name, category/description, category/url, category/allowedDiscussionTypes, locale, siteSection, siteSection/basePath, siteSection/contentLocale, siteSection/sectionGroup, siteSection/sectionID, siteSection/name, siteSection/description, siteSection/apps, siteSection/attributes, layoutViewType, discussionID, commentID, page, sort, discussion, discussion/name, tags, breadcrumbs, discussionApiParams, serverDraftID, serverDraft.