Este artigo explica como transferir dados históricos de monitoramento de tempo do Everhour para o complemento nativo Planilhas de horas e orçamentos da Asana. Ao seguir estas etapas, você pode consolidar os dados de tempo da sua equipe, garantindo relatórios de projeto e acompanhamento de orçamento precisos em uma única plataforma.
A migração começa com a recuperação dos seus dados existentes. Para garantir que você tenha todos os registros históricos da sua equipe, siga estas etapas:
Para atribuir tempo aos registros corretos na Asana, os seus dados devem ser mapeados para os GIDs (identificadores globais) existentes na Asana. Em uma exportação do Everhour, as tarefas sincronizadas com a Asana geralmente incluem um prefixo.
Campo de dados | Etiqueta de exportação do Everhour (amostra) | Destino Asana necessário |
ID das tarefas | task.id (por exemplo, as:1212815283326608) | O GID numérico (p. ex.: 1212815283326608) |
ID do projeto | task.projects | GID do projeto Asana |
Tempo gasto | tempo (segundos) | Asana duration_minutes |
Nota
Ao processar a exportação, certifique-se de remover quaisquer prefixos as: dos IDs para corresponder ao formato GID interno da Asana.
Etapa 3: implementar o script de migração (Python)
O script abaixo usa a API Create Time Tracking Entry da Asana para recriar registros. A lógica usa endereços de e-mail para corresponder os usuários entre os sistemas, garantindo que o tempo seja atribuído ao membro da equipe correto.
importar asanaimportar json# Inicialize o cliente Asana client= asana.Client.access_token('YOUR_PERSONAL_ACCESS_TOKEN')workspace_gid = "SEU_GID_DO_ESPAÇO_DE_TRABALHO"def migrate_everhour_to_asana(json_file_path, user_mapping_file_path):with open(caminho_do_arquivo_json) as f:entries = json.load(f)# 1. Buscar usuários da Asana para mapear e-mails para GIDsasana_users = {u['email']: u['gid'] for u in client.users.get_users_for_workspace(workspace_gid, opt_fields=['email', 'gid'])}# 2. Load a mapping of Everhour User IDs to Emails# (por exemplo, da exportação de membros da equipe do Everhour )com open(user_mapping_file_path) as f:everhour_user_emails = {user['id']: user['email'] for user in json.load(f)}for entry in entries:everhour_user_id = entry['user']user_email = everhour_user_emails.get(everhour_user_id)# Corresponder usuário por e-mailasana_user_gid = asana_users.get(user_email)if not asana_user_gid:continue# Limpar ID das tarefas (remover o prefixo ' as:')task_gid = entry['task']['id'].replace("as:", "")# Converter segundos em minutos para a API da Asanaduration_mins = entry['time'] // 60# 3. Criar entrada na Asanatry:client.time_tracking_entries.create_time_tracking_entry(task_gid, {'created_by': asana_user_gid,'duration_minutes': duration_mins,'entered_on': entry['date'],'description': entry.get('comment', '')})print(f"Successfully migrated {duration_mins}m for Task {task_gid}")except Exception as e:print(f"Erro para o registro {entry['id']}: {e}")migrate_everhour_to_asana('time_2026_01.json', 'users.json')
Por que migrar para o monitoramento de tempo nativo da Asana?
Mover os seus dados para a Asana permite que você aproveite todo o potencial do complemento Planilhas de horas e orçamentos:
Nota
Este artigo foi traduzido por IA.
Dar feedback sobre a tradução.