この記事では、過去のタイムトラッキングデータを Everhour から Asana のネイティブのタイムシートと予算アドオンに移行する方法について説明します。以下の手順に従ってチームの時間データを統合することで、単一のプラットフォームで正確なプロジェクトレポートと予算の追跡を実現できます。
移行は、既存のデータを取得することから始まります。チームの履歴ログをすべて取得するには、以下の手順に従います。
Asana で時間を正しいレコードに割り当てるには、データを既存の Asana GID (グローバル識別子) にマッピングする必要があります。Everhour のエクスポートでは、Asana と同期されたタスクにプレフィックスが含まれていることがよくあります。
データフィールド | Everhour エクスポートラベル (サンプル) | 必要な Asana のターゲット |
タスク ID | task.id (例: as:1212815283326608) | 数値の GID (例: 1212815283326608) |
プロジェクト ID | task.projects | Asana プロジェクトの GID |
所要時間 | 時間 (秒) | Asana duration_minutes |
ノート
エクスポートを処理する際は、Asana の内部 GID 形式に一致するように、ID から as: のプレフィックスを削除してください。
ステップ 3: 移行スクリプトを実装する (Python)
以下のスクリプトでは、Asana のタイムトラッキングエントリー作成 APIを使用してログを再作成します。ロジックでは、メールアドレスを使用してシステム間でユーザーを照合し、適切なチームメンバーに時間が割り当てられるようにします。
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 に移行すると、タイムシートと予算アドオンの機能をフル活用できます。
ノート
この記事は AI によって翻訳されています。
翻訳に関するフィードバックを送る。