Веб-хуки

Вебхуки уведомляют и помогают вам получать информацию о ключевых событиях, происходящих в вашем проекте Crowdin, таких как выполненные переводы или утверждение. After you configure a webhook for the project, Crowdin will start sending POST or GET requests with data to the webhook URL via HTTP.

Only owners and project managers can register a webhook.

Use Cases

You can add webhooks to build integrations with the services or with your backend. For example:

  • 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).
  • Create custom integrations with Crowdin.

События

You can configure webhooks for the following types of events:

  • Файл полностью переведен

  • Файл полностью проверен

  • File added

  • File updated

  • File reverted

  • File deleted

  • Проект полностью переведен

  • Проект полностью проверен

  • 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

  • Файл полностью переведен
{
  "events": [
    {
      "event": "file.translated",
      "project": "impact",
      "project_id": "778899",
      "language": "uk",
      "file_id": "1",
      "file": "example.txt"
    }
  ] }
  • Файл полностью проверен
{
  "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"
        }
    ] }
  • Проект полностью переведен
{
    "events": [
        {
            "event": "project.translated",
            "project": "impact",
            "project_id": "778899",
            "language": "uk"
        }
    ] }
  • Проект полностью проверен
{
    "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" } ] }

Добавление вебхуков

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”).
  • URL, на который должен быть отправлен обратный вызов.
  • 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.
  • События для публикации через URL. Вы можете выбрать либо одно событие, либо определенный набор событий.

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.

Редактирование или удаление вебхуков

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

История вызовов

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

Нужна помощь

Need help working with Webhooks or have any questions? Contact Support Team.

Была ли эта статья полезной?