Webhooks

Os Webhooks notificam e ajudam-te a recolher informações sobre os principais eventos que acontecem no seu projeto no Crowdin, como traduções concluídas ou revisão. Depois de configurar um webhook para o projeto, o Crowdin começará a enviar solicitações POST ou GET com dados para a URL do webhook via HTTP.

Apenas os proprietários e gerentes de projetos podem registrar um webhook.

Casos de uso

You can add webhooks to build integrations with the services or with your backend. Por exemplo:

  • Set up a webhook to send notifications to the system you use.
  • Pass information to the third-party services with the specific request requirements (for example, HTTP method, сontent type).
  • Crie integrações personalizadas com Crowdin.

Eventos

You can configure webhooks for the following types of events:

  • Arquivo totalmente traduzido

  • Arquivo totalmente revisto

  • File added

  • File updated

  • File reverted

  • File deleted

  • Project fully translated – all files are translated into one of the target languages

  • Project fully reviewed – translations in all files for one of the target languages are approved

  • Exported translation updated – final translation of a string is updated

  • Source string added

  • Source string updated

  • Source string deleted

  • Suggested translation added – a string in the project is translated

  • Suggested translation updated – a translation for a string in the project is updated

  • Suggested translation deleted – one of the translations is deleted

  • Suggested translation approved – a translation for a string is approved

  • Suggested translation disapproved – approval for a previously added translation is removed

  • Task added

  • Task status changed

  • Task deleted

Webhook Payload Examples

  • Arquivo totalmente traduzido
{
  "events": [
    {
      "event": "file.translated",
      "project": "impact",
      "project_id": "778899",
      "language": "uk",
      "file_id": "1",
      "file": "example.txt"
    }
  ] }
  • Arquivo totalmente revisto
{
  "events": [
    {
      "event": "file.approved",
      "project": "impact",
      "project_id": "778899",
      "language": "uk",
      "file_id": "1",
      "file": "example.txt"
    }
  ] }
  • File added
{
  "events": [
    {
      "event": "file.added",
      "project": "impact",
      "project_id": "778899",
      "file_id": "1",
      "file": "example.txt",
      "user_id": "1",
      "user": "john_doe",
      "revision": "1"
    }
  ] }
  • File updated
{
  "events": [
    {
      "event": "file.updated",
      "project": "impact",
      "project_id": "778899",
      "file_id": "1",
      "file": "example.txt",
      "user_id": "1",
      "user": "john_doe",
      "revision": "1"
    }
  ] }
  • File reverted
{
    "events": [
        {
            "event": "file.reverted",
            "project": "impact",
            "project_id": "778899",
            "file_id": "1",
            "file": "example.txt",
            "user_id": "1",
            "user": "john_doe",
            "revision": "1"
        }
    ] }
  • File deleted
{
    "events": [
        {
            "event": "file.deleted",
            "project": "impact",
            "project_id": "778899",
            "file_id": "1",
            "file": "example.txt",
            "user_id": "1",
            "user": "john_doe"
        }
    ] }
  • Projeto totalmente traduzido
{
    "events": [
        {
            "event": "project.translated",
            "project": "impact",
            "project_id": "778899",
            "language": "uk"
        }
    ] }
  • Projeto totalmente revisto
{
    "events": [
        {
            "event": "project.approved",
            "project": "impact",
            "project_id": "778899",
            "language": "uk"
        }
    ] }
  • Exported translation updated
{
    "events": [
        {
            "event": "translation.updated",
            "project": "impact",
            "project_id": "778899",
            "language": "uk",
            "source_string_id": "1",
            "old_translation_id": "1",
            "new_translation_id": "1",
            "user": "john_doe",
            "user_id": "1",
            "file_id": "1",
            "file": "example.txt"
        }
    ] }
  • Source string added
{
    "events": [
        {
            "event": "string.added",
            "project": "impact",
            "project_id": "778899",
            "string_id": "1",
            "user": "john_doe",
            "user_id": "1",
            "file_id": "1",
            "file": "example.txt"
        }
    ] }
  • Source string updated
{
    "events": [
        {
            "event": "string.updated",
            "project": "impact",
            "project_id": "778899",
            "string_id": "1",
            "user": "john_doe",
            "user_id": "1",
            "file_id": "1",
            "file": "example.txt"
        }
    ] }
  • Source string deleted
{
    "events": [
        {
            "event": "string.deleted",
            "project": "impact",
            "project_id": "778899",
            "string_id": "1",
            "user": "john_doe",
            "user_id": "1",
            "file_id": "1",
            "file": "example.txt"
        }
    ] }
  • Suggested translation added
{
    "events": [
        {
            "event": "suggestion.added",
            "project": "impact",
            "project_id": "778899",
            "language": "uk",
            "source_string_id": "1",
            "translation_id": "1",
            "user": "john_doe",
            "user_id": "1",
            "file_id": "1",
            "file": "example.txt"
        }
    ] }
  • Suggested translation updated
{
    "events": [
        {
            "event": "suggestion.updated",
            "project": "impact",
            "project_id": "778899",
            "language": "uk",
            "source_string_id": "1",
            "translation_id": "1",
            "user": "john_doe",
            "user_id": "1",
            "file_id": "1",
            "file": "example.txt"
        }
    ] }
  • Suggested translation deleted
{
    "events": [
        {
            "event": "suggestion.deleted",
            "project": "impact",
            "project_id": "778899",
            "language": "uk",
            "source_string_id": "1",
            "translation_id": "1",
            "user": "john_doe",
            "user_id": "1",
            "file_id": "1",
            "file": "example.txt"
        }
    ] }
  • Suggested translation approved
{
    "events": [
        {
            "event": "suggestion.approved",
            "project": "impact",
            "project_id": "778899",
            "language": "uk",
            "source_string_id": "1",
            "translation_id": "1",
            "user": "john_doe",
            "user_id": "1",
            "file_id": "1",
            "file": "example.txt"
        }
    ] }
  • Suggested translation disapproved
{
    "events": [
        {
            "event": "suggestion.disapproved",
            "project": "impact",
            "project_id": "778899",
            "language": "uk",
            "source_string_id": "1",
            "translation_id": "1",
            "user": "john_doe",
            "user_id": "1",
            "file_id": "1",
            "file": "example.txt"
        }
    ] }
  • Task added
{ "events": [
        { "event": "task.added", "project": "impact", "project_id": "778899", "language": "uk", "task_id": "", "user": "john_doe", "user_id": "1" } ] }
  • Task status changed
{ "events": [
        { "event": "task.statusChanged", "project": "impact", "project_id": "778899", "language": "uk", "task_id": "", "old_status": "", "new_status": "", "user": "john_doe", "user_id": "1" } ] }
  • Task deleted
{ "events": [
        { "event": "task.deleted", "project": "impact", "project_id": "778899", "language": "uk", "task_id": "", "user": "john_doe", "user_id": "1" } ] }

Adicionar Webhooks

To configure webhooks in Crowdin, open your project and go to Integrations > Webhooks. Click Add Webhook to start configuring your new webhook.

You will need to provide the following information to register a webhook:

  • The webhook name (for example, “App Project Translated”).
  • O URL onde a chamada de retorno deve ser enviado.
  • The request method that indicates the desired action to be performed for a given resource (use either GET or POST).
  • The content type for the POST request method (multipart/form-data, application/json, or application/x-www-form-urlencoded).
  • For the application/json content type, you can select Batch webhooks to merge multiple events into a single request.
  • Os eventos par postar no URL. Podes selecionar um evento ou um conjunto específico de eventos.

When adding a webhook, click Test to see how your application will react to that call.

Add Webhook

Depending on your approach to webhooks management, you might need to add dedicated Crowdin IP addresses to your firewall to allow Crowdin to open the pre-configured webhook URLs.

Read more about IP Addresses.

Editar ou apagar webhooks

You can access the list of all existing webhooks within a specific project. You will be able to edit or delete webhooks right from the list of webhooks displayed.

Manage Webhooks

Histórico de chamadas

In the Calls History section you can see the list of calls of all webhooks that were added in the project. Use the filter to view all or only unsuccessful webhook notifications.

calls history

Procurando ajuda

Need help working with Webhooks or have any questions? Entre em contato com a equipe de suporte.

Este artigo foi útil?