API de Phrase TMS

webhook (TMS)

Le contenu est traduit de l’anglais par Phrase Language AI.

Disponible pour

  • Plans Team, Professional, Business, Enterprise et Software UI/UX

Contactez le service commercial pour toute question relative aux licences.

Les webhook sont des URL arbitraires qui gèrent les requêtes HTTP POST permettant la notification de systèmes tiers concernant des événements spécifiés.

Phrase surveille si un rappel de webhook a été reçu avec succès. Si une réception de webhook échoue 3000 fois, il est désactivé avec une notification envoyée aux administrateurs du compte et l'échec est noté sur le webhook spécifique sur la page webhook. Le mécanisme de nouvelle tentative a un maximum de 10 tentatives, l'intervalle entre les tentatives étant calculé jusqu'à une valeur maximale de 30 minutes.

Les webhook peuvent être désactivés/activés, afficher l'historique, testés ou supprimés depuis la page webhook en sélectionnant le webhook individuel pour afficher la barre d’outils. La fonction Historique fournit un aperçu des appels sur les 14 jours précédents et les webhook ayant échoué peuvent être rejoués.

Important

La liste blanche des connexions webhook par adresses IP a été dépréciée et a été remplacée par des jetons de sécurité webhook.

Les webhook peuvent être sélectionnés pour les événements suivants :

  • État de tâche changé

  • Tâche créée

  • Tâche assignée

  • Date d'échéance de la tâche modifiée

  • Source de la tâche mise à jour

  • Cible de tâche mise à jour (fait référence à l'action mettre à jour cible sur tâches)

  • Tâche continue mise à jour

  • Projet créé

  • L’état du projet a été modifié

  • Date d'échéance du projet modifié

  • Modèle de projet créé

  • modèle* de projet modifié

  • Modèle de projet supprimé

  • Projet partagé assigné

  • Mise à jour des métadonnées du projet

  • Pré-traduction terminée

  • Analyse créée

  • Tâche supprimée

  • Projet supprimé

  • Tâche exportée

  • Tâche non exportée

  • Import Language AI terminé

  • Traduction Language AI terminée

Configurer les webhook

Pour configurer les webhook, suivez ces étapes :

  1. À partir de la page Setup_gear.png paramètres, faites défiler vers le bas jusqu'à la section Intégrations et cliquez sur webhook.

    La page webhook s'ouvre.

  2. Cliquez sur ajouter webhook ou Nouveau.

    La page créer nouveau webhook s'ouvre.

  3. Fournissez un nom, une URL et un jeton de sécurité si nécessaire.

    Spécifiez une valeur à inclure dans l'en-tête x-memsource-token ou l'en-tête Authorization, qui permet à l'utilisateur de choisir sa méthode préférée pour authentifier l'expéditeur du webhook.

  4. Sélectionner les événements.

  5. Cliquez sur Aperçu du schéma pour voir la réponse du webhook lors de l'exécution.

  6. Cliquez sur Créer webhook.

    Le webhook est ajouté à la liste sur la page Webhooks.

Exemples d'utilisation de webhook

Un site web appelé RequestBin fournira une URL à utiliser lors de la création d'un webhook.

La prochaine fois qu'un statut de tâche est modifié ou qu'une tâche est créée dans le compte, l'URL reçoit la réponse appropriée du système. L'utilisation réelle peut être plus complexe et la réception de la réponse doit être considérée comme un signal pour que l'application connectée effectue certaines actions.

Événements

Exemples de changement de statut de tâche, d'assignation de tâche, de création de tâche et de modification de la date d'échéance d'une tâche.

Statut de la tâche modifié

{
"jobParts": [
  {
    "id": 9,
    "uid": "ipmdz5p0sagqcOYaijTZU2",
    "internalId": "4",
    "task": "SEfSaenvqFgctE1I0_dc1",
    "fileName": "en.txt",
    "targetLang": "af",
    "workflowLevel": 1,
    "status": "NEW",
    "wordsCount": 2,
    "beginIndex": 0,
    "endIndex": 1,
    "isParentJobSplit": false,
    "dateDue": null,
    "dateCreated": "2016-11-02T17:06:54Z",
    "project": {
      "id": 2,
      "uid": "4RvyVbwX00KerkomA7kpT9",
      "lastWorkflowLevel": 1
    },
    "assignedTo": [
      {
        "vendor": {
          "id": 1,
          "name": "Abc",
          "vendorToken": "4-ifos0-CAqPo"
        }
      },
      {
        "linguist": {
          "id": 3,
          "firstName": "Admin",
          "lastName": "Admin",
          "userName": "admin",
          "email": "admin@example.com",
          "role": "ADMIN",
          "timezone": "Europe/London",
          "active": true,
          "deleted": false,
          "terminologist": false,
          "dateCreated": "2016-10-11T07:43:22Z"
        }
      }
    ]
  }
],
"event": "JOB_STATUS_CHANGED"
}

Tâche assignée

{
"jobParts": [
  {
    "id": 9,
    "uid": "ipmdz5p0sagqcOYaijTZU2",
    "internalId": "4",
    "task": "SEfSaenvqFgctE1I0_dc1",
    "fileName": "en.txt",
    "targetLang": "af",
    "workflowLevel": 1,
    "status": "NEW",
    "wordsCount": 2,
    "beginIndex": 0,
    "endIndex": 1,
    "isParentJobSplit": false,
    "dateDue": null,
    "dateCreated": "2016-11-02T17:06:54Z",
    "project": {
      "id": 2
      "uid": "4RvyVbwX00KerkomA7kpT9",
      "lastWorkflowLevel": 1
    },
    "assignedTo": [
      {
        "vendor": {
          "id": 1,
          "name": "Abc",
          "vendorToken": "4-ifos0-CAqPo"
        }
      },
      {
        "linguist": {
          "id": 3,
          "firstName": "Admin",
          "lastName": "Admin",
          "userName": "admin",
          "email": "admin@example.com",
          "role": "ADMIN",
          "timezone": "Europe/London",
          "active": true,
          "deleted": false,
          "terminologist": false,
          "dateCreated": "2016-10-11T07:43:22Z"
        }
      }
    ]
  }
],
"event": "JOB_ASSIGNED"
}

Tâche créée

{
 "jobParts": [
   {
     "id": 9,
     "uid": "ipmdz5p0sagqcOYaijTZU2",
     "internalId": "4",
     "task": "SEfSaenvqFgctE1I0_dc1",
     "fileName": "en.txt",
     "targetLang": "af",
     "workflowLevel": 1,
     "status": "NEW",
     "wordsCount": 2,
     "beginIndex": 0,
     "endIndex": 1,
     "isParentJobSplit": false,
     "dateDue": null,
     "dateCreated": "2016-11-02T17:06:54Z",
     "project": {
       "id": 2,
       "uid": "4RvyVbwX00KerkomA7kpT9",
       "lastWorkflowLevel": 1
     },
     "assignedTo": [
       {
         "vendor": {
           "id": 1,
           "name": "Abc",
           "vendorToken": "4-ifos0-CAqPo"
         }
       },
       {
         "linguist": {
           "id": 3,
           "firstName": "Admin",
           "lastName": "Admin",
           "userName": "admin",
           "email": "admin@example.com",
           "role": "ADMIN",
           "timezone": "Europe/London",
           "active": true,
           "deleted": false,
           "terminologist": false,
           "dateCreated": "2016-10-11T07:43:22Z"
         }
       }
     ]
   }
 ],
 "event": "JOB_CREATED"
}

Date d'échéance de la tâche modifiée

{
  "jobParts": [
    {
      "id": 127865777,
      "uid": "ElTXvXnNIHEN2xgL5sU2L2",
      "internalId": "1",
      "task": "LvkAHilgobApeoVm_dc4",
      "fileName": "EU White Paper Edited.doc",
      "targetLang": "de",
      "workflowLevel": 1,
      "status": "NEW",
      "wordsCount": 204,
      "beginIndex": 0,
      "endIndex": 16,
      "isParentJobSplit": false,
      "dateDue": "2018-09-11T22:00:00Z",
      "dateCreated": "2018-09-10T06:25:41Z",
      "project": {
        "id": 12277756,
        "uid": "4RvyVbwX00KerkomA7kpT9
        "lastWorkflowLevel": 1
      },
      "assignedTo": []
    }
  ],
  "event": "JOB_DUE_DATE_CHANGED"
}

Tableau de statut

Lorsque vous travaillez avec des API, des Webhooks et l'interface utilisateur, le statut peut être nommé légèrement différemment.

API REST

Webhook

UI

NEW

NEW

NOUVEAU

ACCEPTED

ASSIGNED

ACCEPTÉ (par le fournisseur)

DECLINED

DECLINED_BY_LINGUIST

REFUSÉ (par le fournisseur)

REJETÉ

REJECTED_BY_LINGUIST

REJETÉ (par le fournisseur)

DELIVERED

COMPLETED

LIVRÉE

EMAILED

EMAILED

ENVOYÉ PAR E-MAIL (par le fournisseur)

COMPLETED

COMPLETED_BY_LINGUIST

TERMINÉ (par le fournisseur)

CANCELLED

CANCELLED

CANCELLED

Cet article vous a-t-il été utile ?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.