Intégration avec le minuteur personnel Toggl

Toggl Button est une extension pour le navigateur Chrome qui vous permet de suivre le temps passé sur différentes applications en ligne. Heureusement, Targetprocess en fait partie!

bouton toggl

L'intégration avec Toggl comprend deux parties :

  • Installation du plugin Toggl sur le navigateur web. En conséquence, un bouton spécial de démarrage/arrêt du minuteur apparaît dans les vues détaillées de vos entités Targetprocess. Le temps enregistré est publié sur votre compte Toggl.
  • Configurez un zap Zapier pour envoyer automatiquement les temps enregistrés dans Toggl vers Targetprocess.
Avertissement : inscription à Zapier requise Vous devrez vous inscrire au service Zapier pour utiliser cette intégration. La configuration comprend 3 étapes du côté de Zapier, c'est pourquoi le forfait For Work est nécessaire.

Le guide décrit la configuration pour un utilisateur unique. Vous devez créer un Zap distinct dans votre compte Zapier et répéter les étapes 1 à 4 pour chaque utilisateur Targetprocess qui soumet son temps via Toggl.

Étape 1 : Installez le bouton Toggl

Installez le bouton Toggl à partir du Chrome Web Store.

Des instructions détaillées sont disponibles à l'adresse support.toggl.com.

Autorisez l'accès à votre compte Targetprocess sous l'onglet Autorisations. Ajoutez une autorisation d'URL de domaine personnalisé pour votre domaine Targetprocess.

Onglet Autorisations

Ensuite, connectez-vous à votre compte Toggl dans votre navigateur web Chrome. Le bouton de connexion s'affiche dans le menu des extensions Chrome.

Une fois terminé, le bouton Toggl apparaît à côté du nom de l'entité dans Targetprocess :

bouton à bascule

Appuyez une fois sur le bouton pour démarrer le minuteur. Appuyez à nouveau dessus pour arrêter le chronomètre et envoyer l'enregistrement de temps vers votre compte Toggl.

Nous sommes désormais prêts à transférer les enregistrements de temps de Toggl vers Targetprocess à l'aide de Zapier!

Étape 2 : Configurer Toggl Trigger dans Zapier

Connectez-vous à votre compte Zapier.

Créer un nouveau Zap. Sélectionnez Toggl comme application déclencheuse :

application déclencheur

Sélectionnez « Nouvelle saisie horaire » pour le déclencheur Toggl :

Nouvelle saisie de temps

Connectez votre compte Toggl à Toggl Trigger. Créez un nouveau compte dans Zapier si les informations relatives à votre compte Toggl n'y figurent pas encore.

basculer la connexion

Récupérez votre jeton API Toggl dans les détails de votre compte Toggl > section « Mon profil ». Connectez votre compte Toggl à Toggl trigger dans Zapier à l'aide du jeton.

Jeton API Toggl

Tester la connexion.

Test du compte Toggle Trigger

Pour tester l'ensemble du processus, veuillez soumettre une nouvelle saisie de temps dans Toggl, puis effectuer un test dans Zapier.

une nouvelle saisie de temps dans Toggl

Étape 3 (facultative) : configurez « Filtrer par » dans Zapier.

Si vous utilisez Toggl en dehors du processus cible, Zapier recevra une erreur chaque fois qu'une entrée de temps non liée au processus cible sera créée. Un moyen rapide de réduire ces erreurs consiste à ajouter une étape « Filtrer par » dans Zapier, qui empêche le Zap de continuer à moins que la description de l'entrée Toggl ne commence par « # » (voir l'image ci-dessous).

Filtrer par

Étape 4 : Extraire l'ID de l'entité et le temps restant à l'aide de l'action de code

Ajouter une nouvelle action. Sélectionnez « Code by Zapier » comme application d'action :

Code par Zapier

Choisissez Run Javascript pour l'action « Code by Zapier »

Modifier le modèle :

Modifier le modèle

Modifiez les données d'entrée comme indiqué dans la capture d'écran ci-dessous :

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

données d'entrée

Copiez et collez le code suivant. Remplacez les access_token valeurs accountUrl et par vos valeurs personnelles.

Avertissement : le jeton d'accès est généré sous l'onglet Mon profil > Jetons d'accès de votre compte 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 };
Testez cette étape. tester l'étape

Étape 5 : Publier l'enregistrement du temps dans Targetprocess

Ajoutez une action supplémentaire « Webhook by Zapier » avec l'option POST : Webhook par Zapier Sélectionnez Webhooks by Zapier Action : POST Webhooks par Zapier Action POST Modifier le modèle : Modèle de webhook

Utilisez un modèle comme celui ci-dessous.

| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------- | | 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 | |

action-url-charge utile Données :

| :--------------- | :------------------------ | :---------------------------------------------------------------------- | | 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. |

Pour récupérer votre identifiant utilisateur Targetprocess, veuillez effectuer l'appel API REST suivant vers l'application Targetprocess dans votre navigateur Web :

GET /api/v1/Users/LoggedUser?include=[Id]&format=json
Exemple de sortie valide :
{"ResourceType":"User","Kind":"User","Id":1234}
données d'action En-têtes :

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

Testez cette étape.

test de webhook Activez ce Zap et profitez de la publication automatique des temps! Zap et profitez de la publication automatique des temps Voici à quoi ressemble l'historique des tâches de Zap dans Zapier : Historique des tâches de Zap Voici comment les entités Temps soumises automatiquement s'affichent dans la vue des détails de l'entité Targetprocess : La valeur Entité Targetprocess Temps restant est mise à jour automatiquement lorsque l'entité à laquelle vous soumettez le temps n'a qu'un seul rôle avec Effort dans la zone Affectations. Sinon, la valeur « Temps restant » affichée automatiquement est définie sur 0.