Back to Plugins
Rowfill — Google Sheets, Excel, CSV, Airtable & Notion to Figma

Rowfill — Google Sheets, Excel, CSV, Airtable & Notion to Figma

Fill your design from a spreadsheet — instances, image crops and selection intact

Plugin Preview

Rowfill — Google Sheets, Excel, CSV, Airtable & Notion to Figma preview

About this plugin

Point it at your data. It fills your design.Name a layer #title, load a sheet with a "title" column, hit Sync. That is the whole idea — the rest is about the parts that usually go wrong.WHERE YOUR DATA CAN COME FROM• Google Sheets — your link plus a free Google API key (one-time setup)• Excel (.xlsx) — dates arrive as dates and percentages as percentages, not as 45678 and 0.855• Apple Numbers (.numbers) — read directly, including a formula's last computed result• CSV, TSV, Markdown tables — from a file or the paste box• JSON — from a file, a paste, or any API you can describe. When the records are three keys down, pick the list you meant from a menu• Airtable and Baserow — with your own token. Attachment columns come through as image URLs, so photos fill photos• XLIFF 1.2 / 2.0 — the file your translators hand back, in one step• Notion — copy the table and paste it (Notion's API cannot be called from a plugin at all; this is the honest route, and it works)• A built-in generator — fake people, places and companies in English, Japanese, Indonesian and Simplified Chinese, plus numbers, currencies, dates, colours, percentages and placeholder images• AI, with your own API key — describe the data you want in a sentence. Claude or OpenAIFILLS MORE THAN TEXTText, images, colours, visibility, component properties, variant switches, text and colour styles, variables, SVG/vector swaps, slots — and the frame's own name.THE THINGS THAT USUALLY GO WRONG, AND DO NOT HERE• "Selected layers only" means selected layers only. The scan starts from your selection and cannot reach past it, so a big file stays responsive• Instances survive. Every component and variant property is applied in one call, before anything inside the instance is touched — because switching a variant rebuilds its children• Images do not get shuffled. Each image edit carries its own row's URL, so a slow download cannot land on the wrong card• Your crops are kept. Fit, Fill, Crop, rotation and opacity all survive a re-sync; only the picture changes• It tells you what went wrong, and where: "Row 7 · photo · #photo: that is a Google Drive folder, not a file." Not silence, and not "error"Renaming frames from your data works too — normally impossible, because the layer name is what the column is bound to. The binding is written into the layer, so it survives the rename.FREE FOR FIVE FULL SYNCS — every feature included. Then $8, once, forever. Unbinding and undoing are always free, even at zero: a plugin should not hold your file hostage.NO SERVER. There is no backend to send your data to and no account to make. Every request goes from your browser to the service you pointed it at, and every key you enter stays on your device.Known limits, stated up front: a Google Sheet must be shared with "anyone with the link" and needs a free API key (a Figma plugin runs with no origin, and Google refuses docs.google.com requests from one). Some image hosts refuse cross-origin requests — when that happens the plugin names the host instead of showing "error fetching image". Percentages and currencies in .numbers files come through as the underlying value.

Plugin Details

Version1
CreatedAugust 13, 2026
Last UpdatedAugust 13, 2026
CategoryImport & export plugins
CreatorGuard
Stats0 installs, 0 likes
PricingPaid

Technical Details

  • API:1.0.0
  • UI:dist/ui.html
  • main:dist/code.js
  • Document Access:dynamic-page
  • Network Access:

    This plugin has no server of its own. It fetches only what you point it at: the spreadsheet link you paste, the image URLs inside your own data, and — if you set them up — your own Airtable, Baserow or API endpoint, or your own Anthropic or OpenAI key for the AI generator. Because those hosts are yours and not known in advance, the domains cannot be listed ahead of time. Nothing is sent anywhere else, and any key you enter is stored on your device and used only with the service you entered it for.

  • Editor Types:
    figma
  • Allowed Domains:
    • *