DataPop Support Privacy Terms

Fill Figma with real data — and see exactly what didn't fit.

Rowbind populates component instances from Google Sheets, CSV or JSON. Variants switch. Images load. Every row that fails tells you which row, which field, and why.

The Figma Community listing is in review.

Why this one

The hard cases are the whole point

Variants

Switch by column

A column drives a variant property — Size=XL — checked against the component set. No silent fall back to the first variant when a value doesn't exist.

Images

Fills from a URL

Image URLs are fetched and placed as real image fills. A dead link becomes a numbered issue, not a blank rectangle you find three days later.

Re-sync

Update in place

Populated nodes are stamped, so syncing refreshes what's already there, adds new rows, and removes deleted ones — instead of duplicating the whole set again.

Scale

Big sheets don't freeze

Work runs in chunks and yields between them, so the editor stays responsive and a long run can be cancelled part-way.

Fonts

Missing fonts warn

Every font on a text node is loaded before writing. A font that isn't available falls back and says so, rather than dropping the text.

Honesty

No silent skips

The run report is the product. If Rowbind couldn't do something, it appears in the list with a row number — including the parts that make us look bad.

Pricing

Free has no row limit. Pay for the hard parts.

Free

no account needed

Text columns, any number of rows, and the complete run report.

  • Unlimited rows — 12 or 12,000
  • Google Sheets, CSV, JSON
  • Full issue reporting, every row

$6 / month

Rowbind Pro

The three things the free plugins can't do. Cancel any time — access runs to the end of the period you paid for.

  • Component variants, validated per row
  • Image fills from URLs
  • Re-sync: update in place, don't re-duplicate
  • 14-day refund, no questions

Your data

Pasted data never leaves your machine

Sheet, JSON and image URLs are fetched through this server, because Figma can't reach them from a plugin directly. Their contents stream straight through — never stored, never logged, and the web server records paths without query strings so your sheet URLs aren't retained either. Full detail on the privacy page.