The Scenario
The campaign is approved. Eighty final images are live on the CDN, and someone dropped all the URLs into a Google Sheet — column A, one URL per row, with the file type in column B. Planly scheduling starts tomorrow. Before anyone can schedule a single post, every one of those images needs to be inside Planly's media library.
Nobody is looking forward to doing this eighty times.
The bad version:
- Open Planly's media library, click the import-from-URL option, paste the first URL, select the file type, confirm.
- Do it again. And again. Lose track of which URL you're on around row 30.
- Finish the import and realize you have no record of which Planly media ID maps to which original URL — so when the social team asks which asset is which, you can't tell them.
This is prep work. It exists only so that the real work can start. It shouldn't take two hours.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Google Sheet. It reads the sheet, understands what you're looking at, and through its built-in Planly integration it can read every URL in column A, import each one into Planly's media library, and write the returned media ID back to column C — all in one pass.
Open the Google Sheet with your asset URLs, open the SheetXAI sidebar, and paste this prompt:
For every URL in column A of the 'Assets' sheet, import the media into Planly's team library using the media type in column B — write the returned media ID to column C
What You Get
- Column C: Planly media ID for each successfully imported asset
- If an import fails (bad URL, unsupported file type), column C gets an error note for that row — it doesn't silently skip
- All 80 rows processed in sequence; no manual confirmation needed per row
- The original URL in column A and the media type in column B stay intact
What If the Data Is Not Quite Ready
The media type column is missing — all assets are JPEGs
For every URL in column A of the 'Assets' sheet, import the media into Planly's team library as image/jpeg — write the returned media ID to column B
Some URLs are videos and some are images — the type needs to be inferred from the URL extension
For every URL in column A of the 'Assets' sheet, infer the media type from the file extension (.mp4 → video/mp4, .png → image/png, .jpg → image/jpeg, .gif → image/gif), import each file into Planly's team library, and write the returned media ID to column B
The URL list includes duplicates that should be skipped
For every unique URL in column A of the 'Assets' sheet (skip duplicates), import the media into Planly's team library using the type in column B — write the Planly media ID to column C and 'Duplicate skipped' to column D for any URL that appeared more than once
Full campaign prep: import all URLs, capture IDs, flag failures, and confirm the count
For every URL in column A of the 'Assets' sheet, import the media into Planly using the type in column B — write the media ID to column C, write 'Imported' or 'Failed: [reason]' to column D, and after all rows are processed write the total import count and failure count into cells F1 and F2
The social team gets the ID mapping and the import summary in one shot.
Try It
Get the 7-day free trial of SheetXAI and open the Google Sheet with your CDN asset URLs, then ask it to bulk import everything into Planly. You can also check out how to inventory your media library or read the Planly hub overview.
