API de Phrase TMS

Webhooks (TMS)

El contenido se traduce automáticamente del inglés por Phrase Language AI.

Disponible para

  • Planes Team, Professional, Business, Enterprise y Software UI/UX

Ponte en contacto con Ventas para preguntas sobre licencias.

Los webhooks son URLs arbitrarias que manejan solicitudes HTTP POST, permitiendo la notificación de sistemas de terceros sobre eventos específicos.

Phrase monitorea si se recibió correctamente una llamada de retorno de webhook. Si la recepción de un webhook falla 3000 veces, se desactiva con una notificación enviada a los Administradores de la cuenta y la falla se anota en el webhook específico en la página de Webhooks. El mecanismo de reintento tiene un máximo de 10 reintentos, con el intervalo entre reintentos calculado hasta un valor máximo de 30 minutos.

Los webhooks pueden ser deshabilitados/habilitados, mostrar historial, ser probados o eliminados desde la página de webhooks seleccionando el webhook individual para mostrar la barra de herramientas. La función Historial proporciona una visión general de las llamadas durante los últimos 14 días y los webhooks fallidos pueden ser reproducidos.

Importante

La inclusión en la lista blanca de conexiones de Webhook por direcciones IP fue descontinuada y ha sido reemplazada por tokens de seguridad de Webhook.

Los webhooks pueden ser seleccionados para los siguientes eventos:

  • El estado del trabajo ha cambiado

  • Trabajo creado

  • Trabajo asignado

  • La fecha de entrega del trabajo ha cambiado

  • Fuente del trabajo actualizada

  • Meta del trabajo actualizada (Se refiere a la acción de Actualizar meta en trabajos)

  • Trabajo continuo actualizado

  • Proyecto creado

  • Estado del proyecto cambiado

  • La fecha de entrega del proyecto ha cambiado

  • Plantilla del proyecto creada

  • Plantilla del proyecto cambiada

  • Plantilla del proyecto eliminada

  • Proyecto compartido asignado

  • Metadatos del proyecto actualizados

  • Pre-traducción terminada

  • Análisis creado

  • Trabajo eliminado

  • Proyecto eliminado

  • Trabajo exportado

  • Trabajo no exportado

  • Importación de Language AI finalizada

  • Traducción de Language AI finalizada

Configurar Webhooks

Para configurar Webhooks, sigue estos pasos:

  1. En la página de Configuración Setup_gear.png, baja hasta la sección Integraciones y haz clic en Webhooks.

    Se abre la página Webhooks.

  2. Haga clic en Agregar webhook o Nueva.

    Se abre la página Crear nuevo webhook.

  3. Proporcione un nombre, URL y token de seguridad si es necesario.

    Especifique un valor que se incluirá en el encabezado x-memsource-token o en el encabezado Authorization, que permite al usuario elegir su método preferido para autenticar al remitente del webhook.

  4. Seleccione eventos.

  5. Haga clic en Vista previa del esquema para ver la respuesta del webhook al ejecutarse.

  6. Haga clic en Crear webhook.

    El webhook se agrega a la lista en la página Webhooks.

Ejemplos de uso de Webhook

Un sitio web llamado RequestBin proporcionará una URL para usar al crear un webhook.

La próxima vez que se cambie el estado de un trabajo o se cree un trabajo en la cuenta, la URL recibe la respuesta adecuada del sistema. El uso real puede ser más complejo y la recepción de la respuesta debe considerarse una señal para que la aplicación conectada realice ciertas acciones.

Eventos

Ejemplos de un cambio de estado de trabajo, una asignación de trabajo, la creación de un trabajo y cuando se cambia la fecha de vencimiento de un trabajo.

El estado del trabajo ha cambiado

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

Trabajo asignado

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

Trabajo creado

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

La fecha de entrega del trabajo ha cambiado

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

Tabla de Estado

Al trabajar con APIs, Webhooks y la UI, el estado puede tener un nombre ligeramente diferente.

API REST

Webhook

UI

NUEVO

NUEVO

NUEVO

ACEPTADO

ASIGNADO

ACEPTADO (por proveedor)

RECHAZADO

DECLINED_BY_LINGUIST

RECHAZADO (por proveedor)

REJECTED

REJECTED_BY_LINGUIST

RECHAZADO (por proveedor)

ENTREGADO

COMPLETADO

ENTREGADO

ENVIADO

ENVIADO

ENVIADO (por el proveedor)

COMPLETADO

COMPLETED_BY_LINGUIST

COMPLETADO (por el proveedor)

CANCELLED

CANCELLED

CANCELLED

¿Fue útil este artículo?

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.