Loading

トピック

この記事では、過去のタイムトラッキングデータを Everhour から Asana のネイティブのタイムシートと予算アドオンに移行する方法について説明します。以下の手順に従ってチームの時間データを統合することで、単一のプラットフォームで正確なプロジェクトレポートと予算の追跡を実現できます。

関連記事

ステップ 1: Everhour から時間データをエクスポートする

移行は、既存のデータを取得することから始まります。チームの履歴ログをすべて取得するには、以下の手順に従います。

  1. オーナーまたは管理者として、Everhour アカウントにログインします。
  2. https://app.everhour.com/#/account/teamにアクセスして、「チーム設定」ページを開きます。
  3. 「エクスポート」セクションに移動し、チームのタイムログがすべて含まれるZIP ファイルをダウンロードします。
  4. ZIP ファイルを解凍します。移行スクリプトには通常、JSONエクスポートを使用します。

ステップ 2: タスクとプロジェクトの識別子をマッピングできることを確認する

Asana で時間を正しいレコードに割り当てるには、データを既存の Asana GID (グローバル識別子) にマッピングする必要があります。Everhour のエクスポートでは、Asana と同期されたタスクにプレフィックスが含まれていることがよくあります。

データフィールド

Everhour エクスポートラベル (サンプル)

必要な Asana のターゲット

タスク ID

task.id (例: as:1212815283326608)

数値の GID (例: 1212815283326608)

プロジェクト ID

task.projects

Asana プロジェクトの GID

所要時間

時間 (秒)

Asana duration_minutes

ノート iconノート

エクスポートを処理する際は、Asana の内部 GID 形式に一致するように、ID から as: のプレフィックスを削除してください。

ステップ 3: 移行スクリプトを実装する (Python)

以下のスクリプトでは、Asana のタイムトラッキングエントリー作成 APIを使用してログを再作成します。ロジックでは、メールアドレスを使用してシステム間でユーザーを照合し、適切なチームメンバーに時間が割り当てられるようにします。

Python

import   Asana  

import json



# Asana クライアントを初期化する

client = asana.Client.access_token('YOUR_PERSONAL_ACCESS_TOKEN')

workspace_gid = "YOUR_WORKSPACE_GID"



def migrate_everhour_to_Asana(json_file_path, user_mapping_file_path):

with open(json_file_path) as f:

entries = json.load(f)



# 1. メールアドレス GIDマッピングするために Asana ユーザー取得する

asana_users = {u['email']: u['gid'] for u in client.users.get_users_for_workspace(workspace_gid, opt_fields=['email', 'gid'])}



# 2. Everhour ユーザー ID メールアドレスマッピング読み込む

# (例: Everhour のチームメンバーエクスポートから)



with open(user_mapping_file_path) as f:

everhour_user_emails = {user['id']: user['email'] for user in json.load(f)}



エントリエントリ場合:

everhour_user_id = entry ['user']

user_email = everhour_user_emails.get(everhour_user_id)



# メールアドレスユーザーを照合

asana_user_gid = asana_users.get(user_email)

if not asana_user_gid:

continue                
        
        
        
                                # タスク ID クリーンアップ (' as:' のプレフィックスを削除)

task_gid = entry['task']['id'].replace("as:", "")



# Asana API のために秒数分数変換する

duration_mins = entry['time'] // 60



# 3. Asana エントリ作成する

try:                        
            
                                                client.time_tracking_entries.create_time_tracking_entry(task_gid, {

'created_by': Asana_user_gid,

'duration_minutes': duration_mins,

'entered_on': entry['date'],

'explanation': entry.get('comment', '')

})                        
            
                                                print(f"タスク {task_gid} {duration_mins} 分正常に移行しました")

例外除く例外:

print(f"エントリー {entry['id']} エラー: {e}")



migrate_everhour_to_asana('time_2026_01.json', 'users.json')

Asana のネイティブタイムトラッキングに移行する理由

データを Asana に移行するとタイムシートと予算アドオンの機能をフル活用できます。

  • 統合レポート:推定時間と実際の時間を直接 Asana ダッシュボードで確認できます。
  • 予算の自動化:チームメンバーが時間を記録するとリアルタイムで更新されるプロジェクト予算を設定できます。
  • 一元化されたワークフロー:作業を行う場所で時間ログを管理することで、ツールの切り替えを減らせます。
  • Asana APIについて詳しく見る
  • タイムシートと予算について詳しく見る。
Note iconノート

この記事は AI によって翻訳されています。

翻訳に関するフィードバックを送る。
読み込み中
Everhour から Asana への時間追跡データの移行方法 | Asana ヘルプセンター