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

Togglとの連携は2つの部分で構成されています:
- ウェブブラウザにTogglプラグインをインストールします。 その結果、ターゲットプロセスエンティティの詳細ビューに特別な開始/停止タイマーボタンが表示されます。 記録された時間がTogglアカウントに投稿されます。
- Togglに送信された時間をTargetprocessに自動的に投稿するZapier Zapを設定する。
このガイドは、単一ユーザーの設定手順を説明しています。 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で新しい時間記録を送信し、その後Zapierでテストを実行してください。

ステップ3(任意)Zapierで「フィルター」を設定する。
ターゲットプロセス外でTogglを使用する場合、非ターゲットプロセス関連の時間記録が作成されるたびにZapierはエラーを受信します。これらのエラーを迅速に減らす方法として、Zapierに「フィルター」ステップを追加し、Togglの記録「説明」欄が「#」で始まらない限りZapを続行しないように設定します(下図参照)。
ステップ4: コードアクションを使用してエンティティIDと残り時間を取得する
新しいアクションを追加する。 アクションアプリとして「Code by Zapier」を選択してください:

「Code by Zapier」アクション Run Javascript を選択
テンプレートを編集する :

以下のスクリーンショットのように入力データを編集してください:
| :---------- | :------------------------ | | description | Step 1 Description | | spent | Step 1 Duration Hours |

以下のコードをコピーして貼り付けてください。 と access_token の値をあなたの個人 accountUrl 用のもので置き換えてください。
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アクションを選択:POSTテンプレートを
編集: 
以下のようなテンプレートを使用してください。
| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------- | | 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 | |
データ:| :--------------- | :------------------------ | :---------------------------------------------------------------------- | | 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でこのように表示されます:自動的に送信
された時間エンティティはTargetprocessのエンティティ詳細ビューでこのように表示されます:送信先のエンティティに「割り当て」領域で労力を
含む役割が1つだけ存在する場合、残り時間の値は自動的に更新されます。 それ以外の場合は、自動投稿される残り時間値は0に設定されます。