Phrase TMS API

Webhooks (TMS)

Inhalte werden von Phrase Language AI maschinell aus dem Englischen übersetzt.

Verfügbar für

  • Team-, Professional-, Business-, Enterprise- und Software UI/UX-Pläne

Kontaktiere Vertrieb für Fragen zur Lizenzierung.

Webhooks sind beliebige URLs, die HTTP POST-Anfragen verarbeiten und die Benachrichtigung von Drittsystemen über bestimmte Ereignisse ermöglichen.

Phrase überwacht, ob ein Webhook-Callback erfolgreich empfangen wurde. Wenn ein Webhook-Empfang 3000 Mal fehlschlägt, wird er deaktiviert, eine Benachrichtigung an die Administratoren des User-Kontos gesendet und der Fehler auf dem spezifischen Webhook auf der Seite Webhooks vermerkt. Der Wiederholungsmechanismus hat ein Maximum von 10 Wiederholungsversuchen, wobei das Intervall zwischen den Wiederholungen bis zu einem Maximalwert von 30 Minuten berechnet wird.

Webhooks können auf der Webhook-Seite deaktiviert/aktiviert, im Verlauf angezeigt, getestet oder gelöscht werden, indem der individuelle Webhook ausgewählt wird, um die Symbolleiste anzuzeigen. Die Funktion Verlauf bietet einen Überblick über Aufrufe der letzten 14 Tage und fehlgeschlagene Webhooks können erneut ausgeführt werden.

Wichtig

Das Whitelisting von Webhook-Verbindungen nach IP-Adressen wurde als veraltet markiert und durch Webhook-Sicherheits-Token ersetzt.

Webhooks können für die folgenden Ereignisse ausgewählt werden:

  • Job status changed

  • Job erstellt

  • Job assigned

  • Fälligkeitsdatum des Jobs geändert

  • Job-Quelle aktualisiert

  • Job-Zielsprache aktualisiert (bezieht sich auf die Aktion Zielsprache aktualisieren bei Jobs)

  • Kontinuierlicher Job aktualisiert

  • Projekt erstellt

  • Projektstatus geändert

  • Fälligkeitsdatum des Projekts geändert

  • Projektvorlage erstellt

  • Projektvorlage geändert

  • Projektvorlage gelöscht

  • Shared project assigned

  • Projektmetadaten aktualisiert

  • Vorübersetzung abgeschlossen

  • Analyse erstellt

  • Job gelöscht

  • Projekt gelöscht

  • Job exportiert

  • Export von Job rückgängig gemacht

  • Language AI importieren abgeschlossen

  • Language AI-Übersetzung abgeschlossen

Webhooks konfigurieren

Um Webhooks zu konfigurieren, befolge diese Schritte:

  1. Scrolle auf der Seite „Einstellungen“ Setup_gear.png nach unten zum Abschnitt Integrationen und klicke auf Webhooks.

    Die Seite Webhooks öffnet sich.

  2. Klicke auf Webhook hinzufügen oder Neu.

    Die Seite Webhook erstellen öffnet sich.

  3. Gib bei Bedarf einen Namen, eine URL und ein Sicherheits-Token an.

    Geben Sie einen Wert an, der entweder im X-memsource-Token-Header oder im Authorization-Header enthalten sein soll, damit der User seine bevorzugte Methode zur Authentifizierung des Webhook-Senders auswählen kann.

  4. Events auswählen.

  5. Klicken Sie auf Vorschau Schema, um die Webhook-Antwort bei der Ausführung anzuzeigen.

  6. Klicken Sie auf Webhook erstellen.

    Der Webhook wird der Liste auf der Webhooks-Seite hinzugefügt.

Webhook-Verwendungsbeispiele

Eine Website namens RequestBin stellt eine URL bereit, die Sie beim Erstellen eines Webhooks verwenden können.

Wenn das nächste Mal ein Job-Status geändert oder ein Job im User-Konto erstellt wird, erhält die URL die entsprechende Antwort vom System. Die tatsächliche Verwendung kann komplexer sein und der Empfang der Antwort sollte als Signal für die verbundene Anwendung betrachtet werden, bestimmte Aktionen auszuführen.

Veranstaltungen:

Beispiele für eine Statusänderung eines Jobs, eine Job-Zuweisung, Job-Erstellung und wenn das Fälligkeitsdatum eines Jobs geändert wird.

Status des Jobs hat sich geändert

{
"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"
}

Job zugewiesen

{
"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"
}

Job erstellt

{
 "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"
}

Fälligkeitsdatum des Jobs geändert

{
  "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"
}

Status-Tabelle

Bei der Arbeit mit APIs, Webhooks und der UI kann die Status-Bezeichnung leicht variieren.

REST API

Webhook

UI

NEW

NEW

NEU

ACCEPTED

ASSIGNED

ANGENOMMEN (vom Dienstleister)

DECLINED

DECLINED_BY_LINGUIST

ABGELEHNT (vom Dienstleister)

REJECTED

REJECTED_BY_LINGUIST

ZURÜCKGEWIESEN (vom Dienstleister)

DELIVERED

COMPLETED

GELIEFERT

EMAILED

EMAILED

PER EMAIL GESENDET (an Dienstleister)

COMPLETED

COMPLETED_BY_LINGUIST

ABGESCHLOSSEN (vom Dienstleister)

CANCELLED

CANCELLED

CANCELLED

War dieser Beitrag hilfreich?

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.