How to upload rows from Google Sheets to Localazy using Zapier Integration by Localazy
Tags: zapier, howto, localazy
Published: 2022-09-26 15:06:45

**Learn how to sync translations from Google Sheets to Localazy with Zapier. In case the Google Spreadsheet is your favorite source of truth or you’re migrating to Localazy, then you can upload your source language and translations easily with this Zap.**

To create a Zap that does exactly that, you need to follow the steps. First, let's set up the Trigger.

**Before you start, we recommend reading the previous article:**

➡️ [Enhance your localization workflow with Zapier & Localazy](https://localazy.com/blog/enhance-your-localization-workflow-with-zapier-localazy)

## 1️⃣ Add Trigger: New or Updated Spreadsheet Row

Search for the *Google Sheets* App and select *New or Updated Spreadsheet Row* Event. Connect your account. Then do the setup - choose a *Spreadsheet* with the translations, a *Worksheet* you'd like to pull the translations from, and a *Trigger ColumIt* it can be any column for our purposes, so keep *any\_column* as the input value. You can see the setup in the image below.

![Trigger: New or Updated Spreadsheet Row in Google Sheets](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/47uxvag1n38yexhshyqw.png)

This event is triggered any time a new row is added to the Sheet, or an existing row is updated. Note that the changes are not triggered instantly. They're instead buffered and triggered as a batch once in a while (a couple of minutes, I'd say, based on my tests).

It's also important to remember that the trigger has some limitations - described [here](https://zapier.com/help/doc/common-problems-with-google-sheets-on-zapier).

## 2️⃣ Add Action: Import to Localazy

Next, add an Action. Search for the *Localazy* App and select *Import to Localazy* Action. Connect your [Localazy account](https://localazy.com/register) and select a project you'd like to import the translations into.

Then set up the Action. You can optionally choose a *File name, File path,* and *File format*. If any of them is empty, the default value noted in the field description will be used (e.g. `zapier.json` as a *File name*). There are various formats to choose from, so you can select the one that fits your requirements.

Then, it's important to pair columns from Sheet to the input fields. To better explain the pairing, the image below shows the structure of my Sheet.

![Google Sheets: Translations document](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z0e3zevs8w54ec9txeyq.png)

As you can see, in the *A* column, there's a source key, followed by the translations in English *(en)*, Czech *(cs)*, and Polish *(pl)*. To pair all the columns correctly, the project needs to have the languages added in Localazy because only those will appear as input fields under the *Source key* field, as seen in the example below.

![Adding languages to the project and refreshing the fields](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yqfcutu2wnccuv5wshzr.gif)

Now, pairing the keys by selecting the corresponding columns is possible. Filled input fields are shown in the following image.

There are also a couple of options for modifying the import. Let's go through them real quick:

*   **Filter source** - Set to *True* if you do not import translations identical to the source language content. Is *True* by default.
*   **Import as new** - Set to *True* if you want to import all translations to go through the review process. Useful when you are unsure about their quality and want to do an extra check. It's *False* by default.
*   **Force current** - Set to *True* if you want to import all translations and set them as the current version. By default, Localazy doesn't overwrite existing current versions for translations and lets you decide through the review process. It is *False* by default.
*   **Force source** - Set to *True* if you want to overwrite the source language translations even if there are existing human changes. This option is useful when the source of truth is not Localazy, and it's always required to synchronize the source language translations. It is *False* by default.

As our source of truth is Google Sheets, we will set the *Force source* option to *True*. In the image below, there's the final Action setup.

![Action: Import to Localazy in Localazy setup](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zhr4kgbfvx151xr0wgyr.png)

Test the action and continue. I also added one more Action step that sends a Slack message after every import, so I'm always notified if someone has updated the Sheet.

You can also read how to setup the Slack integration in the article: [How to send a Slack group message for translators using Zapier?](https://localazy.com/blog/how-to-send-slack-group-message-for-translators-using-zapier-integration)

## 🕹️ Testing the Zap

Let's publish the Zap. If you activated the Zap for the first time, you should be asked whether you'd like to use a *Transfer by Zapier (Beta)* feature. This allows you to transfer the whole Sheet at once. At the time of writing, the feature is still in Beta.

You can also create your own transfer [here](https://transfer.zapier.com/new). Follow the steps, and you should have all the rows with translations imported in Localazy. You can also see that all the translations are approved - we forced that by setting up the *Force Source* flag during the Action setup.

![Newly imported Sheet into Localazy](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v0z09diqublf01h54cfp.png)

To test the Zap out, add some new keys and translations to the Sheet. I intentionally did not add some translations, so you can see it's not required for the import to process correctly. They can be added later. However, you must provide a source language string (English in our case). Otherwise, the import won't be successful.

![Add new translations to the Sheet; import them to Localazy.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fqiko3vjxxqre2dha7pu.gif)

And that's it! Every time someone updates the connected Google Sheet, you will automatically get the content imported to Localazy.

## ⚡ Use the Zap Template

You can also use the Template below:

[Add new or updated Google Sheets rows to Localazy projects](https://zapier.com/apps/google-sheets/integrations/localazy)

Visit the [Localazy Integration page on Zapier](https://zapier.com/apps/localazy/integrations) to explore more templates.

## ✔️ Conclusion

Zapier allows you to connect thousands of apps with Localazy and create your own automation workflows without using any code. Learn more in the [Zapier integration docs](https://localazy.com/docs/zapier/introduction-zapier).