見出し画像

SaaS間のデータのやり取りなんて、Zapierに任せよう - 国内SaaSもZapierに任せる方法


ライター 秦

今、情シス・業務効率化推進者といった多くの日本企業の担当者はこんな悩みやニーズを抱えています。

💡「自社で使っているSaaSを連携して業務を効率化したい」
😣「少ない開発リソースで業務を効率化したい」
😓「自社で使っているSaaSをタスク自動化ツールに組み込みたいけど、SaaSが非対応」

実際弊社でも、タスク自動化を検討しているというご相談を受けますし、自動化にiPaaS製品を検討しているが「世のiPaaSは海外SaaSばかりで国内SaaSにほとんど対応していない」「国内iPaaSもあるが対応しているサービスが少ない」といった声を聞きます。事実、IntegromatZapierといった海外iPaaSは国内SaaSとの連携はあまり多くありません(Anyflowという国内初のiPaaSが最近立ち上がっていて、色々拡張してくれないか応援しています!)。

ご相談をいただいたらお答えしているのが「実はZapierでもAPIさえ公開されていれば非対応の国内SaaSを自動化フローに組み込める」ということです。具体的にはZapier Platform UIを用いて独自部品を作成し、Zapierが非対応かつAPIが提供されている国産クラウドサービスをフローに組み込む、という手法です。

本記事では以下の2点について解説しています。

① タスク自動化ツールZapierの紹介
② 国産のクラウドサービスをZapierに対応する方法

Zapierの画面は全て英語ですが、本記事では日本語の注釈を入れてわかりやすく説明しています。

[対象読者]
情シス:情報システム管理部門の方
業務効率化推進者:業務効率化に取り組んでいる方
Zapier学習者:iPaaS製品やZapierについて学習されている方

1. タスクの自動化

クラウドサービス(SaaS)同士を連携し自動化フローを構築するiPaaS
昨今、多くの組織では規模を問わず、会計・勤怠管理・人事労務など様々な業務に対応するためにクラウドサービスを使うようになりました。それらはSaaSとも呼ばれAPIを提供していることが多くなりました。SaaSの単純な人手による定型業務を自動化し非効率な業務の最適化をするためには、SaaS同士のAPIを連携しタスク自動化のフローを構築する方法が有効です。それを実現するのがiPaaSです。

画像1

タスクを自動化する2つの方法
業務タスクを自動化しフローを構築するためには大きく2つの方法があります。本記事で紹介するのは2の方法です。

1. プログラミングによってタスクを自動化する方法
2. iPaaSでタスクを自動化する方法

1の方法について、APIを操作するにはプログラミングの知識などエンジニアリングスキルが求められます。情シス部門などで内製するか外注することが考えられますが、それなりの開発期間と開発コストがかかってしまいます。

2の方法について、様々なSaaSを連携してノーコードまたはローコードで簡単に短期間でタスク自動化のフローを構築することができるのがiPaaSです。iPaaS製品にはエンタープライズ向けだとBoomi、Informatica、MuleSoft、Workato、Microsoft Power Automate、それ以外ではZapier、IFTTT、Integromat、Anyflow、Claris Connectなどがあります。GUIベースで簡単にAPIを操作してSaaSから情報を抜き出したり情報を登録したりすることができます。

2. Zapier - タスク自動化ツール

本記事ではZapierというツールを取り扱います。Zapierは海外製のタスク自動化ツールのひとつです。

Zapierが取り扱っているSaaSは2021年2月時点で3,800を超えており世界でも最大規模の数を有しています。弊社では2021年2月時点でZapierが対応しているSaaSのデータベースを独自に作成しています。以下のリンクからご覧いただけます。

Zapier対応サービス(2021年2月時点)

この数でさえ全てのSaaS製品を網羅することは叶いません。他のツールにはあってもZapierにはないSaaSが多々あります。また、Zapierはどちらかと言うと海外のサービスをターゲットにしているため、国内のサービスにはあまり対応していません。

せっかく自社でSaaSを使っていて更にAPIも提供されているのに、タスク自動化ができないのは宝の持ち腐れです。しかし冒頭で述べた通り本記事の方法を使えばZapierで国内SaaSも対応することができます。

2-1. Zap - フロー

Zapierでは様々なクラウドサービス(App)や処理を組み合わせてフローを構築します。1フローはZap(ザップ)という単位として扱います。

Zapは主に「認証」「トリガー」「アクション」から構成されています。出来事(イベント)をきっかけ(=トリガー)に、何かを起こす(=アクション)というのがタスク部品の主成分です。つまり「〜の時、〜をする」という構成です。ただし、トリガーとアクションはどちらか一方でも構いません。クラウドサービスのAPIを実行する時に必要な認証を設定することができます。

トリガーとアクションを組み合わせた自動化フローの例を挙げます。これらの例は「レシピ」と呼ばれます。ここでは製品名などは記載せず抽象化したレシピを挙げ、後ほど具体化して説明します。

自動化レシピの例

例1) 人事労務システム + グループウェア + チャットツール
トリガー
:人事労務システムに従業員が新規登録された時
アクション1:グループウェアへ新規アカウントを発行する
アクション2:チャットツールへ通知する
例2) 勤怠管理システム + ヘルプデスクシステム
トリガー
:勤怠管理システムに出勤が登録された時
アクション:ヘルプデスクシステムのステータスをオンラインに変更する
例3) 会計システム + チャットツール
トリガー
:会計システムの登録口座に入金があった時
アクション:チャットツールへ通知する
例4) メールクライアント + クラウドストレージ
トリガー
:特定の件名のメールを受信した時
アクション:メールの添付ファイルをストレージにアップロードする

これ以外にも様々なアイデアが考えられますが、通常これらの処理を行う際には手作業で行われ、ツールとツールを行ったり来たりする必要がありますが、それが全て自動化されるのは大変魅力的です。

以下、Zapierでのフロー構築をご紹介するために、例4のZapを掲載します。メールクライアントはGmailを、クラウドストレージはGoogleドライブを使用します。

例4) Gmail + Googleドライブ
トリガー
:特定の件名のメールを受信した時
アクション:メールの添付ファイルをドライブにアップロードする

画像5

[Zapの構成]
1. トリガー:Gmailで新着メールを受信した時
2. アクション:件名に「請求書」を含む場合のみ次へ
3. アクション:メールが添付ファイルを含む場合のみ次へ
4. アクション:全ての添付ファイルをドライブの指定場所へアップロード

という処理を行っています。これらは全てZapierのGUIで完結することができ、フローの構築には30分もかかりません。

設定の内訳は以下のようになっています。

[Zapの設定] (T)...トリガー、(A)...アクション
1. (T) Gmailで新着メールを受信した時
 ・メールを受信するGoogleアカウントを選択し、認証
 ・新着メールを受信した時に次のアクションを実行
 ・受信トレイを対象とする
2. (A) 件名に「請求書」を含む場合のみ次へ
 ・1の受信メールの件名に「請求書」という言葉を含む場合のみ次へ
  含まれない場合はフロー終了
3. (A) メールが添付ファイルを含む場合のみ次へ
 ・1の受信メールに添付ファイルがあれば次へ
  なければフロー終了
4. (A) 全ての添付ファイルをドライブの指定場所へアップロード
 ・ファイルアップロードを選択
 ・ドライブを操作するGoogleアカウントを選択し、認証
 ・アップロード先のフォルダID、アップロードするファイルを選択

上記の設定内容について抜粋して掲載します。

1) 新着メールを受信した時

画像6

メール受信を行うGoogleアカウントを選択して認証します。

画像7

新着メールを検知するラベル/メールボックスを選択します。

画像8

--

2) 件名に「請求書」を含む場合のみ次へ

画像9

画像10

--

3) メールが添付ファイルを含む場合のみ次へ

画像11

画像12

--

4) 全ての添付ファイルをドライブの指定場所へアップロード

画像13

ドライブを操作するGoogleアカウントを選択して認証します。

画像14

画像15

設定内容はこれだけで、特に難しい操作や設定はありません。

ちなみに、プログラミング言語でこのフローを実装すると以下のようになるでしょう。

[プログラミングでの実装内容]
1-1. Gmail APIで新着メールを監視
1-2. 新着メールの情報を取得する
2. メールの情報から件名を取得し「請求書」が含まれているかを判定
3. メールの情報に添付ファイルが含まれているかを判定
4. Drive APIを使って添付ファイルを全てアップロード

実装に使うものにもよりますが、認証・監視の処理はそれなりに実装コストがかかるのが通常です。その点においてはかなり楽です。一瞬です。

ここまではZapierに用意されている既存のAppを使ってフローを構築しました。次より独自のZapを作成してフローを構築する方法について解説します。

2-2. Zapier Platform UI - カスタムZap作成ツール

Zapier Platform UIは、Zapを独自に作ることができるサービスです。Zapierでは独自のZapを作ることをZapier Integration(統合)と呼んでいます。

Zapierで取り扱っていない国産クラウドサービスでもAPIが提供されていればZapを自作してフローに組み込むことができます。

本記事では前述の例1を具体例として、フローの作り方を解説します。

2-3. タスク自動化フローの具体例

クラウド人事労務システムのSmartHRに従業員が新規登録された時に、Google Workspaceに新規アカウントを発行し、さらにSlackへと通知する、というフローを例とします。

例1) 人事労務システム + グループウェア + チャットツール
トリガー:人事労務システムに従業員が新規登録された時
アクション1:グループウェアへ新規アカウントを発行する
アクション2:チャットツールへ通知する

手動でこのフローを処理する場合は以下の操作が必要となります。

1. SmartHRを操作する人の手動タスク

1-1. ブラウザを開く
1-2. SmartHRのログイン画面を開く
1-3. ログイン情報を入力してログインする
1-4. 従業員の新規登録(手入力)画面を開く
1-5. 従業員情報を入力し登録する

2. Google管理コンソールを操作する人の手動タスク

2-1. ブラウザを開く
2-2. Google管理コンソールを開く
2-3. Google Workspaceの管理者アカウントでログインする
2-4. ユーザー管理画面を開く
2-5. 新しいユーザーの登録画面を開く
2-6. ユーザー情報を入力し登録する

3. Slackへ通知する人の手動タスク

3-1. Slackを起動する/開く
3-2. チャンネルを選択する
3-3. メッセージを入力し、送信する

さらに、複数名でこれらの作業を行う場合、1〜3の間には各担当者へ作業開始/完了の通知をする作業が入ります。

これらは全て定型作業であり従業員数が多いほどマンパワーが必要になります。また、連絡時の転記ミス、Googleアカウント登録時の転記ミス、Slackへの通知漏れ...など様々な人為的ミスが発生するリスクを抱えています。自動化してしまえばそのような悩みからもおさらばです。

例1) 人事労務システム + グループウェア + チャットツールのフローの完成形です。

画像5

[Zapの構成]
トリガー:SmartHRに従業員が新規登録された時
アクション1:Google Workspaceへ新規アカウントを発行する
アクション2:Slackチャンネルに通知する

以下のZAPを組み合わせてフローを構築しています。

1) SmartHR 従業員が作成された時
Zapier Platform UIで作成したカスタムZapです。SmartHRのAPIを使用します。

[Zapの内容]
認証:SmartHR API アクセストークン認証
トリガー:SmartHR API 従業員リストに新しい従業員が作成された時
アクション:なし

2) Googleアカウントを発行する
Zapier Platform UIで作成したカスタムZapです。Google Workspace Admin SDKのDirectory APIを使用します。

[Zapの内容]
認証:Google OAuth 2.0 クライアントID認証
トリガー:なし
アクション:Googleアカウントを発行する

3) Slackチャンネルに通知する
Zapierに用意されているZapです。そのまま利用します。

3. ここまでのまとめ

✔️ タスク自動化にはiPaaSが便利
✔️ Zapierはノーコードで簡単にクラウドサービスを連携できるiPaaS
✔️ Zapier Platform UIで独自の部品を作成でき、非対応のクラウドサービスもフローに組み込める

次からが本題です。上記フローの独自ZapをZapier Platform UIで作成するための手順を詳しく解説します。

画像43

4. Zapier Platform UIでZapを作成する手順

以下の5つが基本ステップです。2〜4の有無は作りたいものによって変動します。

画像69

Zapier Platform UIを開いてZapを作成して行きます。以下のページにアクセスします。

「Start a Zapier integration」を押下して新しいZapを作成します。

画像16

4-1. SmartHR 従業員が作成された時

画像97

「SmartHR従業員が作成された時」のZapを作成して行きます。

画像75

画像95

[Zapの内容]
認証:SmartHR API アクセストークン認証
トリガー:SmartHR API 従業員リストに新しい従業員が作成された時
アクション:なし

4-1-1. 基本設定

画像95

まず、以下の基本項目を設定します。

画像17

通常、Zapier App(ここで言うIntegration(統合))はGoogle、Slackなどクラウドサービスの提供元が作成し、公開しています。今回だとSmartHRになるわけですが、もしSmartHRのメンバーあるいは業務委託先がIntegrationを作成する場合は、公開設定にし、役割も雇用されているか委託されたかを選択することになるでしょう。以下、Google翻訳で日本語に翻訳したものです。

画像18

今回、我々は提供されているクラウドサービスを使ってIntegrationを開発する立場であるため、非公開・非雇用関係を選択しています。

4-1-2. 認証の設定

画像95

認証(Authentication)の設定を行います。SmartHRのAPIを実行するために必要です。認証方式はSmartHRのAPI仕様に従い、アクセストークン認証方式で行います。

[手順の概要]
(0) 事前準備としてSmartHRでアクセストークンを発行しておく
(1) APIキーの認証を作成
(2) テナントID、アクセストークンを入力する認証アカウントを作成
(3) 認証のテスト

(0) 事前準備
SmartHRでAPIを使用するためのアクセストークンを発行(※)しておきます。

※ SmartHRはサンドボックス環境を提供しています。会社で使っている環境で従業員を作成してしまうと、正規のデータにテストデータが混在してしまい、現行運用に支障を来す場合があります。そのため、サンドボックス環境で一連の設定および動作確認を行うことを推奨します。

ヘッダー部分にあるメニューから「共通設定」 > 「アプリケーション連携」 > 「アクセストークン」の順に選択して行きます。

「新規発行」からアクセストークンを発行します。

画像34

画像35

機能の制限は、全てOFFにしてから、必要なもののみをチェックするのがセキュリティ面では望ましいです。今回のフローでは「従業員情報の参照」だけあれば事足ります。

アクセストークンを発行されますので、控えておいてください。一度しか発行されません。
※これが漏洩すると意図せずAPIが操作されてしまうので厳重に管理

画像36

ここまでで事前準備は完了です。

(1) APIキー認証を作成

APIキー認証を作成して行きます。

画像19

APIキーを選択します。

画像20

(2) 認証アカウントの設定
SmartHR APIのエンドポイントURLの一部となる「テナントID」と認証に必要な「アクセストークン」をZapの認証時に入力できるようにフィールドを追加します。

〜SmartHR API Specificationsより抜粋〜

画像24

画像25

それぞれ以下のように設定を行います。

画像21

Zapの作成時、「Choose an account」で認証アカウントを設定すると以下のような認証画面が表示されます。

画像23

画像22

ここに入力するための器を用意するのが先ほどのFieldsです。フィールドは「Add Fields」で追加します。

・テナントIDの設定

画像26

・アクセストークンの設定

画像27

(3) 認証のテスト
上記で作成した認証が正常に動作するかテストします。テストにはSmartHRのAPIを使います。情報の取得系(GET)がベストで、今回は「従業員リストの取得」でテストを設定します。

SmartHRのAPI仕様書から従業員リスト取得の仕様を確認します。

画像24

画像29

「エンドポイント + APIのURI」が各機能のエンドポイントURLになります。今回の場合は「https://*.smarthr.jp/api」 + 「/v1/crews」なので、「https://*.smarthr.jp/api/v1/crews」に対してGETリクエストを送信することになります。

エンドポイントの「*」は変数です。ここには(2)の手順で設定した認証アカウントの作成で入力される「テナントID」が入ります。入力されたFieldsはbundle.authDataに格納されます。テナントIDのキー名は「tenant_id」としたので、bundle.authData.tenant_idに格納されることになります。

変数を埋め込んだ以下のURLをTestのURL欄に設定します。変数は{{ }}で括ります(太字部分)。それ以外は固定文字列です。

https://{{bundle.authData.tenant_id}}.smarthr.jp/api/v1/crews

画像28

 「Show Options」を開くとデフォルトで設定がされていますが、これをAPIの仕様に合わせて変更します。変更後の設定は以下の通りです。

画像31

画像32

「Save & Continue」で保存し、認証してみます。

画像33

SmartHRのテナントIDとアクセストークンを入力します。

画像37

「✅ Request Successful」となれば認証成功です。「Save & Finish」で認証の設定を完了します。

画像38

4-1-3. トリガーの作成

画像95

次にトリガーを作成して行きます。

[手順の概要]
(1) トリガーを作成
(2) 従業員リスト取得のAPIを実行・監視する設定
(3) 次のステップへデータを渡すためのアウトプットの設定

(1) トリガーの作成
Triggersから新規にトリガーを作成します。

画像39

トリガーの基本設定を行います。

画像40

「Save and Continue」でForm Editorの画面が表示されますが、特に入力データはないのでスキップします。「API Configuration」を選択してください。

(2) 従業員リスト取得のAPIを実行・監視する設定
以下のように従業員リスト取得のAPIを定期的に実行して、リストに新しい従業員が追加されたかどうかを監視します。

APIのリクエスト設定は認証テストの時とほぼ同様ですが、従業員リスト取得が返却する1ページ当たりデータ数は上限があるため、ページングの設定を行い全てのデータを取得するよう設定を行います。

画像41

画像42

トリガーをテストします。「✅ Request Successful」となれば完了です。「Finish Testing & Continue」で次の手順へ進みます。

画像44

(3) アウトプットの設定
フローの次のステップである「Google Workspaceへ新規アカウントを発行するアクション」を実行するためには、アカウント作成に必要な氏名、メールアドレスといったデータを渡す必要があります。

従業員リストの取得 APIからのレスポンスデータを、このZapのアウトプットの項目として定義することで、次のステップへとデータを渡すことができます。

「Use Response from Test Data」で設定したAPIのレスポンスからデータ構造を自動抽出して生成してくれます。

画像45

画像46

「Generate Output Field Definitions」で上記のデータ構造からアウトプットのFieldsを自動生成します。

画像47

こんな感じで従業員リストから取得できる全項目がズラーっとFieldsとして作成されます。ここではGoogleアカウント発行に必要な項目だけに絞ります。(機微な情報も含まれますので、他のフローを作成する際に必要な項目を追加して行く運用が望ましいです)

画像48

「Save Output & Finish」で完成です。

4-1-5. 動作テスト

画像95

このZapはトリガーのみでアクションは作成しません。スキップしてテストに進みます。

ワークフロー作成に戻り、Triggerに上記のZapを設定します。「Test trigger」まで設定し、従業員のデータが取得できたらOKです。

画像96

---

4-2. Googleアカウントを発行する 

画像98

「Googleアカウントを発行する」のZapを作成して行きます。

画像76

画像99

[Zapの内容]
認証:Google OAuth 2.0 クライアントID認証
トリガー:なし
アクション:Googleアカウントを発行する

4-2-1. 基本設定

画像99

4-1と同様に新しいZapを作成して基本設定を入力します。

画像50

4-2-2. 認証の設定

画像99

認証設定を行います。Google Workspace Admin SDKのDirectory APIを使用しますが、認証方式はGoogle OAuth 2.0ですので、「OAuth v2」を選択します。

画像51

4-2-2-1. Step1 - Fields(入力項目)の設定

認証に必要な入力項目を設定します。Google Workspaceのドメインは認証時に入力させ可変としています。

画像68

4-2-2-2. Step2 - Google Cloud Platformの設定

OAuth 2.0で認証するにはGoogle Cloud Platform(GCP)の設定が必要となります。以下よりGCPコンソールを開きます。

(1) ライブラリの有効化
新規にプロジェクトを作成し、メニュー > 「APIとサービス」 > 「ライブラリ」の順に選択します。「Admin SDK API」を検索し、有効化してください。

画像52

画像53

(2) OAuth 同意画面の設定
次に、OAuth同意画面で設定を行います。今回は「内部」で設定します。

画像54

画像55

承認済みドメインには「zapier.com」を入力します。Zapからの認証はこのドメインから行われるためです。

画像56

「保存して次へ」で次のステップへ進みます。

スコープの設定を行います。Googleアカウントの発行はAPIは以下のAPIで行います。

必要なスコープは以下のように記されています。

画像58

https://www.googleapis.com/auth/admin.directory.user

これを追加します。

画像57

(3) クライアントIDの作成
「認証情報」からOAuth 2.0 クライアントIDを作成します。今回は「ウェブアプリケーション」で作成します。「認証情報を作成」 > 「OAuth クライアントID」を選択します。

画像60

アプリケーションの種類は「ウェブ アプリケーション」を選択します。

画像61

任意の名前を付けて、承認済みのJavaScript生成元に「https://zapier.com」を設定、承認済みのリダイレクトURIにはZapier Platform UIで発行されたリダイレクトURLを設定します。

4-2-2-1で「OAuth v2」を選択して次に進むと以下の画面が表示されます。Step 2のセクションにリダイレクトURLが記載されていますので、そのURLをコピーしてGCPの方に貼り付けます。

・Zapier Platform UI - Authentication

画像62

・GCP  - OAuthクライアントIDの設定

画像62

4-2-2-3. Step3 - Credentials(クレデンシャル)の設定

OAuth クライアントIDを作成後、認証情報画面の「名前」の部分から詳細画面を開くと「クライアントID」と「クライアントシークレット」が表示されます。

・認証情報画面

画像65

・詳細画面

画像63

これらの情報をZapのCredentialsに設定します。

画像64

4-2-2-4. Step4 - OAuth v2 Endpointの設定

OAuth 2.0認証のエンドポイントを設定して行きます。OAuth 2.0のフローについての詳細は割愛しますが、ポイントだけ記載します。

1. 認可:操作の権限(スコープ)に対するユーザーの承諾
2. トークンの発行:アクセストークン(有効期限付き)の発行
3. トークンの更新:有効期限が切れたらリフレッシュトークンで新しいアクセストークンを発行

詳しくは以下の記事を参照ください。

 各エンドポイントURLやリクエストパラメータについては以下のドキュメントに記載されています。

(1) Authorization URL
認可を行うためのリクエストを設定します。

HTTPメソッド: GET
エンドポイントhttps://accounts.google.com/o/oauth2/auth
URL Params:
- client_id: {{process.env.CLIENT_ID}}
- state: {{bundle.inputData.state}}
- redirect_url: {{bundle.inputData.redirect_uri}}
- response_type: code
- access_type: offline
- prompt: consent
- include_granted_scopes: true

画像66

スコープの設定をします。次からのトークン関連のリクエストに使用します。以下の値を設定します。

画像68

https://www.googleapis.com/auth/admin.directory.user

(2) Access Token Request
アクセストークンを発行するためのリクエストを設定します。

HTTPメソッド: POST
エンドポイントhttps://oauth2.googleapis.com/token
HTTP Headers:
- content-type: application/x-www-form-urlencoded
- accept: application/json
Request Body:
- code: {{bundle.inputData.code}}
client_id: {{process.env.CLIENT_ID}}
client_secret: {{process.env.CLIENT_SECRET}}
grant_type: authorization_code
- access_type: offline

画像80

画像81

画像82

(3) Refresh Token Request
リフレッシュトークンを発行するためのリクエストを設定します。

HTTPメソッド: POST
エンドポイントhttps://oauth2.googleapis.com/token
HTTP Headers:
- content-type: application/x-www-form-urlencoded
- accept: application/json
Request Body:
- refresh_token: {{bundle.authData.refresh_token}}
grant_type: refresh_token
- access_type: offline

画像84

画像85

画像86

アクセストークンが期限切れした際に自動的にリフレッシュするよう設定します。

画像83

(4) Test
認証のテスト設定を行います。正しく認証設定が行われているかのチェックを認証後に使用するAPIを実行して行いますが、そのための設定です。ここではGoogle Workspaceのドメイン内に登録されているユーザーの一覧を表示するAPIを使用します。

認証時に入力されたドメインをdomainに、OAuth 2.0認証で得られたアクセストークンをAuthorizationヘッダーに設定します。

HTTPメソッド: GET
エンドポイントhttps://www.googleapis.com/admin/directory/v1/users
URL Params:
- domain: 
{{bundle.inputData.domain}}
HTTP Headers
:
- Authorization: Bearer {{bundle.authData.access_token}}

画像87

画像88

(5) Test your Authentication
ここで実際に認証の設定が正しく行われているかをテストします。①認証するアカウントを選択し、②認証をテストします。「Request Successful」になれば認証設定は完了です。

画像89

4-2-4. アクションの設定

画像99

アクションの設定を行います。

サイドメニューから「Actions」を選択し、「Add Action」でアクションを作成します。

画像92

[手順の概要]
(1) アクションの基本設定
(2) アクションへの入力情報を設定
(3) アクションからのAPIリクエストを設定

(1) アクションの基本設定
アクションの基本情報を設定します。

画像93

(2) アクションへの入力情報を設定
アクションに入力する項目を設定します。新規Googleアカウントに必要な以下の情報を設定します。

画像94

[入力項目]
Family Name: 姓
Given Name: 名
Password: パスワード
Primary Email: メインのメールアドレス

ここで設定した入力項目がZapのワークフローを作る際の入力項目になります。(以下の「Set up action」の項目)

画像95

Family Nameだけ設定内容を記載します。他の項目も同様に設定します。

画像99

(3) アクションからのAPIリクエストを設定
このアクションではGoogleアカウントを発行するためのAPIリクエストを行います。具体的にはDirectory APIのusers.insertを実行します。

HTTPメソッド: POST
エンドポイントhttps://admin.googleapis.com/admin/directory/v1/users
HTTP Headers
:
- Content-Type: application/json
- Accept: application/json
- Authorization: Bearer {{bundle.authData.access_token}}
Request Body: (JSONオブジェクト)
- password: {{bundle.inputData.password}}
- primaryEmail: {{bundle.inputData.primary_email}}
- name:
{
  familyName: {{bundle.inputData.family_name}},
  givenName: {{budle.inputData.given_name}}
}

上記のように設定するのですが、ここでひとつ問題があります。Zapier Platform UIのGUIエディタ上ではネストしたJSONオブジェクトの設定ができないようです。仕方なく、ここだけコードを編集して設定しました。「Switch to Code Mode」でコードエディタに切り替え、以下を貼り付けます。

const options = {
 url: 'https://admin.googleapis.com/admin/directory/v1/users',
 method: 'POST',
 headers: {
   'Content-Type': 'application/json',
   'Accept': 'application/json',
   'Authorization': `Bearer ${bundle.authData.access_token}`
 },
 params: {

 },
 body: {
   'password': bundle.inputData.password,
   'primaryEmail': bundle.inputData.primary_email,
   'name': {'familyName':bundle.inputData.family_name,'givenName':bundle.inputData.given_name}
 }
}

return z.request(options)
 .then((response) => {
   response.throwForStatus();
   const results = response.json;

   // You can do any parsing you need for results here before returning them

   return results;
 });

APIリクエストの設定をテスト(※)します。

※Googleアカウントを作成すると、Google Workspaceに課金が発生してしまうのでご注意ください。(契約状況によります)

画像100

 次の「Define your Output」は、このZapからは何も出力する項目がないのでスキップします。(必要に応じてAPIからのレスポンスなどを設定してください)

4-2-5. 動作テスト

画像99

単体でテストする場合には新規にZapを作成し、時限実行など適当なトリガーを設定し、アクションにGoogleアカウントを発行するのZapを指定して実行します。

画像101

5. おわりに

最後に今回作った2つのZapを繋げて以下のフローを作成し、Zapの実行状態を有効にします。実際にSmartHRの画面から従業員を作成し、Googleアカウントの作成、Slackへの通知が確認できれば完成です。

画像5

各タスクの設定内容を記載します。

設定内容 - 1. SmartHR 従業員が作成された時

画像103

画像104

設定内容 - 2. Googleアカウントを発行する

画像105

画像106

画像107

設定内容 - 3. Slackチャンネルに通知する

画像108

画像109

画像110

画像111

最近では国内産のiPaaSも台頭して来ていますが、ワークフロー部品を独自で作れるサービスは海外含めても多くはありません。Zapierは拡張性も高く、柔軟にフローを作成できます。ノーコードないしはローコードで簡単に作成できるのは非常に有益です。

丁寧に解説しましたので長くなりましたが、最後まで読んでいただき、ありがとうございました。

--

弊社は業務効率化・自動化など、仕組みで解決するお手伝いをさせていただいております。お問い合わせの際「このnoteを読んだ」とお伝えください。お仕事のご依頼はコチラ↓までお願いいたします。

note: Visionary Base編集部
Twitter: @visionary_base


いいなと思ったら応援しよう!