{"id":167,"date":"2026-10-23T10:58:40","date_gmt":"2026-10-23T10:58:40","guid":{"rendered":"https:\/\/docs.latw.ai\/uncategorized\/connecting-webflow\/"},"modified":"2026-10-23T10:58:40","modified_gmt":"2026-10-23T10:58:40","slug":"connecting-webflow","status":"publish","type":"post","link":"https:\/\/docs.latw.ai\/pl\/latw-cloud\/connecting-webflow\/","title":{"rendered":"Connecting Webflow"},"content":{"rendered":"<p>A Webflow site connects to LATW Cloud without a plugin and without a Webflow app: you generate a<br \/>\n<strong>site token<\/strong> in Webflow and paste it in the panel. LATW Cloud then reads your content and writes<br \/>\nthe translations through the Webflow API, into the languages of Webflow Localization. The AI model,<br \/>\nthe prompt, the glossary, the budget and the target languages are set in the panel, and you order<br \/>\ntranslations there, in the site&#8217;s <strong>Content<\/strong> tab.<\/p>\n<p>A Webflow site is a site like any other in LATW Cloud: it works on every plan and takes one site<br \/>\nslot.<\/p>\n<h2>What gets translated<\/h2>\n<table>\n<thead>\n<tr>\n<th>In Webflow<\/th>\n<th>What LATW Cloud translates<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Pages<\/strong><\/td>\n<td>The texts of the page, form placeholders, button labels, dropdown options, the texts you changed in a component on that page, and the page title, SEO title and description, Open Graph title and description<\/td>\n<\/tr>\n<tr>\n<td><strong>Collection template pages<\/strong><\/td>\n<td>The texts of the template around the CMS fields \u2014 they are the same for every item of the collection<\/td>\n<\/tr>\n<tr>\n<td><strong>CMS collections<\/strong><\/td>\n<td>Each item&#8217;s name, plain text and rich text fields, and the alt text of its images<\/td>\n<\/tr>\n<tr>\n<td><strong>Components<\/strong><\/td>\n<td>The texts of the component and the default values of its text properties. A change here shows wherever the component is used, unless a page changed that text for itself<\/td>\n<\/tr>\n<tr>\n<td><strong>Products<\/strong> (Webflow E-commerce)<\/td>\n<td>The product&#8217;s name, description and your own text fields, like a CMS item<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The source is the site&#8217;s primary language. Each translation is written into its own language only:<br \/>\nthe primary language, images, prices, references and the other fields of an item are never<br \/>\nchanged.<\/p>\n<p>Slugs are not sent to AI. LATW Cloud makes them from the translated name (see <em>Slugs<\/em> below).<\/p>\n<p><strong>Not translated:<\/strong><\/p>\n<ul>\n<li>Images themselves, and the alt text of images placed on pages: the Webflow API does not localize<br \/>\nthem. Change them in the Designer.<\/li>\n<li>Variant options of products (e.g. <em>Size: Small<\/em>) and SKU names.<\/li>\n<li>Draft and archived pages, archived CMS items, and items that exist only in a secondary language.<\/li>\n<li>Components from a shared library, which can&#8217;t be changed in this site.<\/li>\n<li>Texts without a letter in them (numbers, prices, symbols).<\/li>\n<li>Content you excluded from translation in Webflow. If your site uses translation exclusions,<br \/>\nLATW Cloud reads pages and components the way Webflow shows them for translation, without what<br \/>\nyou excluded.<\/li>\n<\/ul>\n<h2>Before you start<\/h2>\n<ul>\n<li><strong>Webflow Localization with at least one more language.<\/strong> Turn it on in the Designer and add the<br \/>\nlanguages you want; how many you can add depends on your Webflow plan. A language that is turned<br \/>\noff in Webflow is not chosen as a target, but you can add it in the site&#8217;s <strong>Settings<\/strong>.<\/li>\n<li><strong>A site plan with CMS<\/strong> if you want to translate collections. Pages and components need no CMS.<\/li>\n<li><strong>Admin access to the site in Webflow<\/strong>, to generate the token.<\/li>\n<li><strong>A free site slot on your plan.<\/strong> See <em>Plans<\/em>.<\/li>\n<\/ul>\n<h2>Generate a site token<\/h2>\n<ol>\n<li>\n<p>In Webflow, open the site&#8217;s <strong>Site settings \u2192 Apps &amp; integrations \u2192 API access<\/strong> and press<br \/>\n<strong>Generate API token<\/strong>.<\/p>\n<\/li>\n<li>\n<p>Give it <strong>Read and write<\/strong> access to <strong>Pages<\/strong>, <strong>CMS<\/strong> and <strong>Components<\/strong>, and <strong>Read<\/strong> access<br \/>\nto <strong>Sites<\/strong> (scopes <code>sites:read<\/code>, <code>pages:read<\/code>, <code>pages:write<\/code>, <code>cms:read<\/code>, <code>cms:write<\/code>,<br \/>\n<code>components:read<\/code>, <code>components:write<\/code>).<\/p>\n<p>Give <strong>Sites<\/strong> write access (<code>sites:write<\/code>) only if LATW Cloud should publish the whole site after<br \/>\neach job \u2014 see <em>Publishing<\/em>.<\/p>\n<\/li>\n<li>\n<p>Copy the token. Webflow shows it only once.<\/p>\n<\/li>\n<\/ol>\n<p>A token belongs to one site. Webflow allows five tokens per site and deletes a token that has not<br \/>\nbeen used for a year.<\/p>\n<h2>Connect<\/h2>\n<ol>\n<li>In the panel, open <strong>Sites \u2192 Add site<\/strong> and choose <strong>Webflow<\/strong> (or press <strong>Connect with a token<\/strong><br \/>\non the Webflow card under <strong>Integrations<\/strong>).<\/li>\n<li>Paste the token into <strong>Site token<\/strong>. The first time you connect a site, tick <strong>I accept the<br \/>\nData Processing Agreement<\/strong>.<\/li>\n<li>Press <strong>Connect site<\/strong>.<\/li>\n<\/ol>\n<p>LATW Cloud reads the site with the token before it saves anything: it checks that the token sees<br \/>\none site, that Localization has a language to translate into, and that the token can read pages,<br \/>\ncollections and components. If something is missing, the form says what. A token without write<br \/>\naccess is only noticed by the first job, which then waits with Webflow&#8217;s reason.<\/p>\n<p>When the site is connected, the panel opens its <strong>Overview<\/strong>. The site is named by its custom<br \/>\ndomain, or by its <code>webflow.io<\/code> address when it has none.<\/p>\n<p>Connecting sends LATW Cloud the site&#8217;s name, its domains and its languages. The token is stored<br \/>\nencrypted and is never shown again in the panel \u2014 only its last four characters.<\/p>\n<p>Connecting the same Webflow site again, with a new token, does not create a second site: it keeps<br \/>\nits settings and jobs.<\/p>\n<h2>How languages and statuses work<\/h2>\n<p>LATW Cloud shows the languages by Webflow&#8217;s codes in lower case, e.g. <code>de-de<\/code> for German<br \/>\n(Germany). Choose the target languages in the site&#8217;s <strong>Settings<\/strong> tab.<\/p>\n<p>Webflow does not record whether a text is translated or out of date, and LATW Cloud does not keep<br \/>\ntrack of it for Webflow either. So on a Webflow site:<\/p>\n<ul>\n<li><strong>Every item shows as Translated<\/strong> in every language, in the <strong>Content<\/strong> tab and on the<br \/>\n<strong>Overview<\/strong>, whether it was translated or not. The status filter does not tell you what still<br \/>\nneeds translating \u2014 choose the items yourself.<\/li>\n<li><strong>A job always translates the whole items you selected<\/strong>, also the ones translated before. There<br \/>\nis no <strong>Translate again<\/strong> option in <strong>New job<\/strong>: it is always on.<\/li>\n<li><strong>A job overwrites the selected items&#8217; texts in the target languages<\/strong>, including translations<br \/>\nyou made or corrected in Webflow. Select only the items you want translated again.<\/li>\n<\/ul>\n<p>Opening an item in the <strong>Content<\/strong> tab shows each text with its current translation in every<br \/>\nlanguage.<\/p>\n<h2>Settings in the panel<\/h2>\n<p>The site&#8217;s <strong>Settings<\/strong> tab has a <strong>Webflow<\/strong> card with two settings.<\/p>\n<p><strong>Publishing<\/strong> \u2014 what happens after a translation is written:<\/p>\n<table>\n<thead>\n<tr>\n<th>Option<\/th>\n<th>What happens<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Wait for my Publish<\/strong> (default)<\/td>\n<td>Translations wait in Webflow as unpublished changes until you publish the site.<\/td>\n<\/tr>\n<tr>\n<td><strong>Publish CMS items<\/strong><\/td>\n<td>A translated CMS item goes live in its language at once, if it is published in the primary language. Pages and components still wait for your Publish.<\/td>\n<\/tr>\n<tr>\n<td><strong>Publish the whole site after each job<\/strong><\/td>\n<td>When a job wrote something, LATW Cloud publishes the site to all its domains. This also publishes every other unpublished change made in the Designer. Needs <code>sites:write<\/code>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>If publishing fails \u2014 the token has no <code>sites:write<\/code>, or Webflow refused \u2014 the translations are<br \/>\nstill saved, and the job&#8217;s timeline says why the site was not published.<\/p>\n<p><strong>Slugs<\/strong> \u2014 the address of CMS items and pages in a translated language:<\/p>\n<ul>\n<li><strong>Translate slugs not translated yet<\/strong> (default) \u2014 the slug is made from the translated name or<br \/>\npage title, but only while it is still the same as in the primary language. A slug that was<br \/>\ntranslated once is never changed, so links and search results keep working. Letters with accents<br \/>\nand Cyrillic or Greek letters become plain Latin letters; a name in Chinese or Japanese keeps the<br \/>\noriginal slug.<\/li>\n<li><strong>Keep the slugs as they are.<\/strong><\/li>\n<\/ul>\n<p>When Webflow refuses a slug \u2014 it is taken in that language \u2014 the translation is written with the<br \/>\nslug the item had, and the job&#8217;s timeline says so. The home page, template pages and utility pages<br \/>\nkeep their slugs. Webflow lets you change page slugs in a secondary language only on its Advanced<br \/>\nand Enterprise localization plans.<\/p>\n<h2>What it costs and how long it takes<\/h2>\n<p>Words are counted and billed the same way as on any other site \u2014 see <em>LATW Credits and Pricing<\/em>.<br \/>\nBecause a job sends the whole items, translating an item again costs as much as its first<br \/>\ntranslation, even if only one text changed. The estimate counts every text of the selected items.<\/p>\n<p>Webflow limits how many API requests a token makes: 60 a minute on Starter and Basic site plans,<br \/>\n120 on CMS, Business and E-commerce. The panel&#8217;s <strong>Content<\/strong> tab and the jobs share that limit.<br \/>\nLATW Cloud therefore works on one item of a Webflow site at a time, and a large job on a smaller<br \/>\nWebflow plan simply takes longer. When Webflow says the limit is reached, LATW Cloud waits and<br \/>\ncontinues on its own; the <strong>Content<\/strong> tab asks you to try again in a minute. Lists in the<br \/>\n<strong>Content<\/strong> tab can be up to two minutes old.<\/p>\n<h2>Replacing the token<\/h2>\n<p>When Webflow deletes the token \u2014 you removed it, or it was not used for a year \u2014 or it lacks a<br \/>\nscope, the site&#8217;s jobs wait and the site shows as <strong>Unreachable<\/strong>. Generate a new token with the<br \/>\nsame access and paste it in the site&#8217;s <strong>Settings \u2192 Connection \u2192 Replace token<\/strong>. LATW Cloud checks<br \/>\nthat it belongs to the same Webflow site and uses it from then on.<\/p>\n<h2>Disconnecting<\/h2>\n<p>Open the site&#8217;s <strong>Settings<\/strong> tab and press <strong>Disconnect site<\/strong>. A site with active jobs can&#8217;t be<br \/>\ndisconnected \u2014 cancel them or wait until they finish.<\/p>\n<p>LATW Cloud stops using the token and forgets it. Translations already written stay in Webflow.<br \/>\nThe Webflow API can&#8217;t delete a token, so delete it yourself in <strong>Site settings \u2192 Apps &amp;<br \/>\nintegrations \u2192 API access<\/strong>.<\/p>\n<p>To connect the site again, paste a new token in <strong>Sites \u2192 Add site \u2192 Webflow<\/strong>; the site comes<br \/>\nback with its jobs and settings.<\/p>\n<h2>If something does not work<\/h2>\n<ul>\n<li><strong>&#8220;Add a language in Webflow Localization&#8221;<\/strong> \u2014 Localization is off or has no other language.<\/li>\n<li><strong>&#8220;The token has no \u2026 scope&#8221;<\/strong> \u2014 generate a new token with the access listed above.<\/li>\n<li><strong>A job waits with &#8220;Webflow refused the request&#8221;<\/strong> \u2014 the token can&#8217;t write (no write access to<br \/>\nPages, CMS or Components) or Localization was turned off. Fix it in Webflow, replace the token if<br \/>\nneeded, and resume the job.<\/li>\n<li><strong>A translation was refused<\/strong> \u2014 the job shows Webflow&#8217;s reason, e.g. a text longer than the<br \/>\nfield allows, or HTML that does not match the page&#8217;s.<\/li>\n<\/ul>\n<p><em>Site Unreachable<\/em> lists the causes for every platform.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A Webflow site connects to LATW Cloud without a plugin and without a Webflow app: you generate a site token in Webflow and paste it in\u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_latwm_translated_slug":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-167","post","type-post","status-publish","format-standard","hentry","category-latw-cloud"],"_links":{"self":[{"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/posts\/167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/comments?post=167"}],"version-history":[{"count":0,"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/posts\/167\/revisions"}],"wp:attachment":[{"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/media?parent=167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/categories?post=167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/docs.latw.ai\/pl\/wp-json\/wp\/v2\/tags?post=167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}