If your business runs on spreadsheet data — pricing, inventory, listings, bookings, conditions — you already have everything you need to power a fully automated Instagram presence. You just need a way to connect the two.
This guide walks through exactly how to do it using Storylayer, from connecting your Google Sheet to publishing your first automated post.
TL;DR
Connect a public Google Sheet to Storylayer, pick a visual template, map your spreadsheet columns to the template fields, write your AI caption guidance, set a schedule or trigger, and activate. Storylayer does the rest — fetching your latest data, generating the graphic, writing the caption, and posting to Instagram automatically.
Why automate Instagram posts from Google Sheets?
Manual posting is slow, inconsistent, and easy to forget. If your data changes daily — prices, stock levels, event listings, conditions reports — your Instagram should reflect that. But manually checking a spreadsheet and creating a post every time something changes isn't sustainable.
Automation solves this by watching your data and posting the moment something worth sharing happens — or on a fixed schedule you control.
Common use cases include:
- Retail and e-commerce — posting daily deals, new arrivals, or price drops directly from a product sheet
- Real estate — new listings, open homes, or price reductions from a listings database
- Events and venues — upcoming events, ticket availability, or lineup announcements
- Travel and hospitality — availability, pricing, or seasonal offers from a booking sheet
- Sports and fitness — class schedules, results, or leaderboard updates
What you need before you start
- A Google Sheet with your data (must be publicly accessible via CSV export — no OAuth required)
- A Storylayer account (free plan includes 10 posts/month)
- An Instagram Business or Creator account connected to Storylayer
If your Google Sheet is private, go to File → Share → Publish to web, select CSV format, and copy the published URL. That's the URL you'll use in Storylayer.
Step 1 — Connect your Google Sheet
In Storylayer, go to Dashboard → Create → Data Feeds and select Google Sheets.
Paste your published CSV URL into the connector field and click Test connection. Storylayer will fetch the first few rows of your sheet and display the column headers as available data fields.
For example, if your sheet has columns like:
| Property | Price | Bedrooms | Status | Image URL | |---|---|---|---|---| | 14 Oak Street | $485,000 | 3 | New listing | https://... |
Storylayer will show you these as mappable fields:
Property, Price, Bedrooms, Status, Image URL
Tip: Make sure your first row contains column headers, not data. Storylayer uses the first row as field names.
Step 2 — Choose a visual template
Storylayer uses Creatomate templates to generate branded graphics. Pick a template that matches your use case — you can preview each one with your actual data before committing.
If you're posting property listings, for example, you'd pick a template with slots for a property photo, address, price, and key stats. If you're posting daily deals, you'd pick a product-focused template with a price tag and product image.
Each template shows you exactly which fields it contains —
background_image, headline, price, detail_1, detail_2, etc.
Step 3 — Map your spreadsheet columns to template fields
This is where the magic happens. Storylayer shows you each template variable on the left, and your available spreadsheet columns on the right. You drag and drop — or use the dropdowns — to connect them.
For a real estate example:
| Template field | Google Sheets column |
|---|---|
| background_image | Image URL |
| headline | Property |
| price | Price |
| detail_1 | Bedrooms |
| detail_2 | Status |
Once mapped, every post will automatically pull fresh values from your sheet each time it runs.
Step 4 — Configure your AI caption
Storylayer's AI writes a unique caption for every post using your live data. You provide guidance so the AI writes in your brand voice every time.
For an automated recurring post, you'll see three caption modes:
- AI writes it — fully generated from your data and guidance
- Template + AI — you write the structure, AI fills the data-driven parts
For a Google Sheets automation, AI writes it is usually the right choice. Set your tone (inspiring, professional, casual), your format (short for Stories, longer for Feed posts), and any rules:
- Always include: "Always mention the suburb and the number of bedrooms."
- Never include: "Never use the word 'stunning'. Never use exclamation marks."
- Style reference: Paste a caption you love and the AI will match its voice.
The AI generates a fresh, unique caption every time the automation runs — so even daily posts never feel repetitive.
Step 5 — Set your trigger
Choose when Storylayer should post:
Scheduled — post at a fixed time. Good for: daily price updates, weekly roundups, morning condition reports. Example: Every Monday at 8am, post the week's top listings.
New data available — post when a new row appears in your sheet. Good for: new listings, new products, new events. Example: Post immediately when a new row is added to the listings sheet.
Data threshold — post when a value exceeds a limit. Good for: price drops, stock levels, scores. Example: Post when a property price drops below $500,000.
Step 6 — Activate and monitor
Click Activate automation. Storylayer will run on your chosen schedule, fetch the latest data from your Google Sheet, render the graphic, write the caption, and post to Instagram.
After each run, you'll see the result in your dashboard — what was posted, when, which data was used, and early performance metrics after 24 hours.
Common issues and fixes
My sheet isn't connecting
Make sure you've published it as CSV (not HTML) via File → Share → Publish to web.
The URL should end in ?output=csv.
The wrong row is being used Storylayer fetches from the top of your sheet by default. To control which rows are used, sort your sheet before Storylayer runs (e.g. sort by date descending so the most recent row is always first).
My image isn't appearing The image URL in your sheet must be a direct link to a publicly accessible image file (ending in .jpg, .png, etc.). Google Drive share links don't work — use a direct CDN or Unsplash URL instead.
The caption is too generic Add more specific guidance in the Always Include field. The more context you give the AI — your brand voice, what matters to your audience, what to highlight — the better the output.
What Google Sheets automation looks like in practice
Here's a real example of what a daily automated post cycle looks like for a ski resort running their pricing sheet through Storylayer:
- Resort updates their Google Sheet each morning with today's lift ticket prices
- Storylayer's scheduled automation runs at 7am
- Fetches the latest row:
Peak Weekend Pass — $89 — Limited availability - Renders a branded 9:16 Instagram Story with the price and a powder photo
- AI writes: "Weekend passes are flying. $89 gets you on the mountain — book before they're gone."
- Posts to Instagram at 7:00:14am
- Resort wakes up to a post already live, engagement already building
The whole process takes 14 seconds and requires zero manual effort after setup.
Frequently asked questions
Does my Google Sheet need to be public? Yes — Storylayer uses the published CSV export URL which requires the sheet to be publicly accessible. Your data is only read, never modified.
Can I use multiple sheets in one automation? Each automation connects to one Google Sheet. To combine data from multiple sheets, consolidate them into one sheet first, or use Storylayer's data combining feature (Pro plan) with multiple connectors.
How often does Storylayer check my sheet for new data? Every 15 minutes when using the "New data available" trigger.
Can I post to Instagram Feed and Stories from the same sheet? Yes — in one automation you can select multiple channels. Each channel can use a different template sized for that format.
Is there a limit on how many rows Storylayer will read? Storylayer reads up to 500 rows and uses the top records based on your sort and filter settings.
Start automating today
Storylayer's free plan includes 10 automated posts per month — enough to test your Google Sheets automation end to end before upgrading.
No credit card required. Connect your sheet in under 5 minutes.
Related Guides
- Automate Social Media Posts from Airtable — connect Airtable to Instagram, Facebook, X, and Ghost
- From Airtable to Live Posts: The Complete Setup Guide
- How to Automate Daily Social Posts from Your Own API — connect any JSON API
- How to Automate Ghost Blog Posts with AI