個人用Togglタイマーとの連携

Toggl Button は、さまざまなオンラインアプリから時間を追跡できるChromeブラウザ拡張機能です。 幸いなことに、Targetprocessもその一つです!

トグルボタン

Togglとの連携は2つの部分で構成されています:

  • ウェブブラウザにTogglプラグインをインストールします。 その結果、ターゲットプロセスエンティティの詳細ビューに特別な開始/停止タイマーボタンが表示されます。 記録された時間がTogglアカウントに投稿されます。
  • Togglに送信された時間をTargetprocessに自動的に投稿するZapier Zapを設定する。
警告: Zapierへの登録が必要ですこの連携機能をご利用いただくには、 Zapier サービスへの登録が必要となります。 設定にはZapier側で3つのステップが含まれるため、 For Work 料金プランが必要です。

このガイドは、単一ユーザーの設定手順を説明しています。 Zapierアカウントで個別のZapを作成し、Toggl経由で時間を提出する各Targetprocessユーザーに対して手順1~4を繰り返す必要があります。

ステップ1: Togglボタンをインストールする

Chrome ウェブストアから Toggl ボタンをインストールしてください。

詳細な手順は で確認できます support.toggl.com

権限タブで、Targetprocessアカウントへのアクセスを許可してください。 ターゲットプロセスドメインにカスタムドメインURLの許可を追加してください。

権限タブ

その後、ChromeウェブブラウザでTogglアカウントにログインしてください。 ログインボタンはChrome拡張機能のメニューに表示されます。

完了すると、TogglボタンがTargetprocess内のエンティティ名の横に表示されます:

トグル・ボタン

ボタンを1回押すと、タイマーが開始されます。 もう一度押すとタイマーが停止し、記録された時間がTogglアカウントに送信されます。

さあ、Zapierを使ってTogglからTargetprocessへタイムレコードを転送する準備が整いました!

ステップ2: ZapierでToggl Triggerを設定する

Zapierアカウントにログインしてください。

新しいZapを作成する。 Togglをトリガーアプリとして選択:

トリガーアプリ

Togglトリガーには「新規時間入力」を選択してください:

新しい時間入力

TogglアカウントをTogglトリガーに接続してください。 Togglアカウントの詳細がまだ登録されていない場合は、Zapierで新規アカウントを作成してください。

接続の切り替え

Togglアカウントの詳細> 「マイプロフィール」 セクションからToggl APIトークンを取得してください。 トークンを使用して、ZapierでTogglアカウントをTogglトリガーに接続してください。

Toggl API トークン

接続テスト。

トグルトリガーアカウントテスト

全手順をテストするには、Togglで新しい時間記録を送信し、その後Zapierでテストを実行してください。

Togglでの新しい時間記録

ステップ3(任意)Zapierで「フィルター」を設定する。

ターゲットプロセス外でTogglを使用する場合、非ターゲットプロセス関連の時間記録が作成されるたびにZapierはエラーを受信します。これらのエラーを迅速に減らす方法として、Zapierに「フィルター」ステップを追加し、Togglの記録「説明」欄が「#」で始まらない限りZapを続行しないように設定します(下図参照)。

フィルター条件

ステップ4: コードアクションを使用してエンティティIDと残り時間を取得する

新しいアクションを追加する。 アクションアプリとして「Code by Zapier」を選択してください:

Zapierによるコード

「Code by Zapier」アクション Run Javascript を選択

テンプレートを編集する

テンプレートの編集

以下のスクリーンショットのように入力データを編集してください:

| :---------- | :------------------------ | | description | Step 1 Description | | spent | Step 1 Duration Hours |

入力データ

以下のコードをコピーして貼り付けてください。 と access_token の値をあなたの個人 accountUrl 用のもので置き換えてください。

警告: アクセストークンは、 Targetprocessアカウントの「マイプロフィール」>「アクセストークン」タブで生成されます。
var match = input.description.match(/[\w\s]*#(\d+)\s(.*)/i);
var id = match ? match[1] : 0;
var accountUrl = 'https://myaccount.tpondemand.com';
var access_token = 'MjkwMDI6c1RHczJaUWsrRWpKZkpEUWlNeXFibjdkajM2M3ppY2ZIaWhIS0owUEVDMD9=';
var url = accountUrl + '/api/v1/assignables/' + id + '?access_token=' + access_token + '&include=[TimeRemain,RoleEfforts]&format=json';

fetch(url)
  .then(function(res) {
    return res.json();
  })
  .then(function(json) {
    var newRemain = 0;
    var roleEffortsCount = Object.keys(json.RoleEfforts.Items).length;
    if (roleEffortsCount == 1) {
      newRemain = json.TimeRemain - input.spent;
      if (newRemain < 0) {
        newRemain = 0;
      }     
    }
    var output = { id: id, remain: newRemain };
    callback(null, output);
  })
  .catch(callback);
return { id: id, remain : 0 };
このステップをテストしてください。 ステップのテスト

ステップ5: タイムレコードをTargetprocessに投稿する

「Webhook by Zapier」アクションをもう1つ追加し、POSTオプションを選択:Webhooks by ZapierによるWebhook Zapierアクションを選択:POSTテンプレートを ZapierによるWebhooks POSTアクション 編集: Webhookテンプレート

以下のようなテンプレートを使用してください。

| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------- | | URL | https://myaccount.tpondemand.com/api/v1/times?access_token=MjkwMDI6c1RHczJaUWsrRWpKZkpEUWlNeXFibjdkajM2M4ppY2ZIaWhIS0owUEVDMD9= | Replace account URL and access token with your own values. | | Payload Type | Json | | | Wrap Request In Array | no | | | Unflatten | yes | |

アクションURLペイロード データ:

| :--------------- | :------------------------ | :---------------------------------------------------------------------- | | Assignable__Id | Step 2 Id | Two underscore symbols are used. | | User__Id | 1234 | Two underscore symbols are used. Paste your Targetprocess User ID here. | | Spent | Step 1 Duration Hours | | | Remain | Step 2 Remain | | | Description | Time submitted via Toggl | Any text can be inserted here. |

TargetprocessのユーザーIDを取得するには、ウェブブラウザでTargetprocessアプリケーションに対し以下のREST API呼び出しを行ってください:

GET /api/v1/Users/LoggedUser?include=[Id]&format=json
有効な出力の例:
{"ResourceType":"User","Kind":"User","Id":1234}
アクションデータ ヘッダー:

| :----------- | :--------------- | | Content-type | application/json |

このステップをテストしてください。

ウェブフックテスト このZapを有効にして、自動タイム投稿をお楽しみください! タップするだけで自動タイム記録を楽しもう Zapのタスク履歴はZapierでこのように表示されます:自動的に送信 Zapのタスク履歴 された時間エンティティはTargetprocessのエンティティ詳細ビューでこのように表示されます:送信先のエンティティに「割り当て」領域で労力を ターゲットプロセスエンティティ 含む役割が1つだけ存在する場合、残り時間の値は自動的に更新されます。 それ以外の場合は、自動投稿される残り時間値は0に設定されます。