All Studio Notes

Auto-Post to Instagram from a Google Sheet Using Make.com

Batching your Instagram content is smart. You prepare two weeks of posts at once. You have the captions written. The images are edited. You know exactly what's going out and when.

Then you post manually. Every single post. Open Instagram, tap upload, paste caption, select image, tap post. Five to ten minutes per post for a task that should be zero.

This tutorial gets you past that bottleneck. By the end, posting to Instagram means filling in a row in a spreadsheet. Everything else runs itself.

What You're Building

You're going to create a Make.com scenario (their term for an automation workflow) that watches a Google Sheet. When you add a new row with a date, a caption, and a link to an image stored in Google Drive, the scenario posts to Instagram on that exact date. Once the post goes live, it marks the row as "Posted" so the same content never posts twice.

The system uses Instagram's official Graph API through Make.com's native module. This is not a grey-area scraping tool or a workaround. You are posting to your own business account through Instagram's legitimate API. Meta approves this approach.

Before You Start

You need four things in place before opening Make.com.

First, a Make.com account. Head to make.com and sign up free. No credit card required. The free tier gives you 1,000 operations per month. One operation equals one post. If you post once daily, you'll use roughly 90 operations per month. You have substantial headroom.

Second, a Google account. You already have this. You'll use Google Sheets for your content calendar and Google Drive to store your images.

Third, an Instagram Business account. Not a personal account. The API does not work with personal profiles. If your account is currently personal, you can convert it to a Business account in Instagram settings. The process takes two minutes. If you do not have an Instagram account at all, create one first, then convert it to Business.

Fourth, a Meta Business account connected to your Instagram. If you set up your Business account recently, this likely exists already. If you are unsure, log into your Instagram, go to Settings > Apps and websites > Connected apps, and see if your Meta Business account is listed. If not, go to facebook.com/business and follow Meta's setup guide to create one. This is also free.

If you have all four, move forward. If you are missing any piece, set them up now before continuing.

Step 1: Set Up Your Google Sheet

Create a new Google Sheet. Give it a name like "Instagram Posts" so you can find it later.

Add four column headers in the first row: Post Date, Caption, Image URL, Status.

The Post Date column will hold the exact date and time you want the post to go live. Format it like this: 2026-04-15 9:00 AM. Make.com will read this date and post at that time.

The Caption column holds your post text. Put whatever text you want to appear on Instagram. You can use emojis, line breaks, and hashtags here.

The Image URL column will hold the direct link to your image file in Google Drive. You will build this link in Step 2. For now, leave this column empty.

The Status column starts as "Queued." After the post goes live, Make.com will change this to "Posted." This prevents the scenario from posting the same content twice.

You now have a simple table ready to hold your content. Each row will be one Instagram post.

Step 2: Store Your Images in Google Drive and Get Shareable Links

Create a folder in Google Drive called "Instagram Posts" or whatever you prefer. Upload all the images you plan to post.

Right-click any image file. Select Share. In the popup, change the permission from "Restricted" to "Anyone with the link can view." Copy the link that appears.

The link will look like this: https://drive.google.com/file/d/VERY_LONG_STRING_HERE/view

Between /d/ and /view is your file ID. Copy that ID. It is a long string of letters and numbers.

Your usable image URL for the Google Sheet is: https://drive.google.com/uc?export=download&id=YOUR_FILE_ID_HERE

Replace YOUR_FILE_ID_HERE with the actual ID you copied.

Paste this URL into the Image URL column in your Google Sheet for that post.

This is the step where most people get stuck. The trick is that you do not paste the full shareable link into your sheet. You extract the file ID from that link and build a new URL with the format above. This format tells Google Drive to serve the file in a way that Instagram can read and download it.

Test this step with one image. Build the URL, paste it into your sheet, then open it in a new browser tab. The image should download or display. If it does not, the permissions are wrong. Go back to Google Drive, make sure the file is shared as "Anyone with the link can view," and try again.

Step 3: Create a Make.com Account

Go to make.com. Click Sign Up. Enter your email and create a password. Verify your email. You will land in the Make.com dashboard.

You now have 1,000 operations per month available. You will not need to add a credit card unless you exceed this limit, which is unlikely if you are posting once daily.

Step 4: Build the Scenario

This is the core step. You are building a three-module workflow in Make.com.

Open Make.com and click Create a new scenario. You will see a blank canvas. The canvas is where you connect modules together to build your automation.

Click the plus sign in the middle of the canvas. Make.com will show a list of all available apps. Search for Google Sheets. Click the Google Sheets icon.

A menu will appear asking which action you want Google Sheets to perform. Select Search Rows. This module will look for new rows in your spreadsheet that match certain conditions.

Make.com will ask you to connect your Google account. Click Connect, and follow the OAuth flow. You are giving Make.com permission to read your Google Sheets. Once connected, select the Instagram Posts sheet you created in Step 1.

Now you need to tell this module what to search for. Set the filter to: Status = "Queued". This means the module will only look at rows that have not been posted yet.

Set the result limit to 1. This means the scenario will process only one row per run. This prevents accidentally posting multiple posts at once.

Click OK to save this module.

Now click the plus sign to the right of the first module. You are adding a second module. Search for Instagram. Find the module called Instagram for Business. Select the action Create a Photo Post.

Make.com will ask you to connect your Meta account. Click Connect and follow the OAuth flow. Meta will ask for permission to access your Instagram account. Grant it. Make.com now has permission to post on your behalf.

Once connected, you need to map the data from your Google Sheet to Instagram. For the Image URL field, click the field and select the Image URL column from your first module. For the Caption field, select the Caption column from your first module. These are now linked. When the scenario runs, it will take the image URL and caption from your sheet row and use them to create the Instagram post.

Click OK to save this module.

Now click the plus sign to the right of the second module. Add a third module. Search for Google Sheets again. This time select Update a Row.

This module will mark the row as "Posted" after Instagram has posted it successfully. Connect your Google account again if you need to. Select your Instagram Posts sheet. In the Row field, select the ID from the first module. In the Status column, type "Posted".

Click OK to save this module.

You now have a three-module scenario. Module 1 finds a queued row. Module 2 posts it to Instagram. Module 3 marks it as Posted.

Step 5: Schedule the Scenario

At the top of your scenario, you will see a clock icon and an OFF toggle. Click the OFF toggle to turn it ON. The scenario is now active.

Now you need to set a schedule. Click the clock icon. Make.com will show you scheduling options. Set it to run daily at your preferred posting time. If you want posts to go out at 9 AM, set it to 9 AM. Make.com will run the scenario at that time every day, find any queued posts scheduled for that time, and post them.

Click Save to apply the schedule.

Test It

Add one test row to your Google Sheet. Use today's date and time (or a time five minutes from now), a short test caption like "Test post," and a Google Drive image URL that you verified works in Step 2.

Go back to your Make.com scenario. Find the blue Run Once button and click it. The scenario will run immediately instead of waiting for the scheduled time.

Check your Instagram Business account. If the post appeared, the system works. If it did not, the next section covers the most common issue.

The Most Common Issue: Image Upload Fails

If the post did not appear on Instagram but Make.com showed no error, the image likely failed to download. This happens 90 percent of the time due to permissions.

Go back to Google Drive. Right-click the image file again. Select Share. Confirm the permission is set to "Anyone with the link can view." If it is not, change it now.

Go back to your Google Sheet and copy the Image URL from that row. Paste it into a new browser tab. The image should download or display in your browser. If it does not, the permissions are still wrong. Update them and try again.

Once the image loads in your browser, go back to Make.com and click Run Once on your scenario. The post should now appear on Instagram.

The Payoff

You now have an Instagram posting system. The only manual work is filling in rows in a spreadsheet. You prepare your content on your schedule. You batch your captions and images. You set the dates and times. Everything else runs automatically.

Once you post a row, it is marked as Posted. The scenario will never touch it again. You can leave the row in the sheet as a record of what you posted and when, or delete it if you prefer to keep your sheet clean.

The system is reliable. Posts go out on time. No missed uploads. No forgotten captions.

What This Does Not Cover

This tutorial covers static image feed posts. You fill in a date, a caption, and an image URL, and the post appears on your Instagram feed.

Video posts and Reels require a different module setup with additional steps around video encoding and format conversion. This is more complex and outside the scope of this guide.

Instagram Stories are a separate API endpoint and require a different workflow.

If you need to post Reels or Stories, you can build a separate scenario using the same structure as this one, but the technical steps are different. That is a follow-up tutorial.

For now, this system handles the core use case: batching and automating your feed posts.

FAQ

Do I need to pay for Make.com to use this?

No. The free tier includes 1,000 operations per month with no credit card required. Posting once daily for a month uses roughly 90 operations. You have substantial headroom. You only pay if you exceed 1,000 operations per month, which is unlikely unless you are posting multiple times per day or running many other automations.

My Instagram account is personal, not Business. Can I still do this?

No. Instagram's API requires a Business or Creator account. If your account is personal, you can convert it to a Business account in Instagram Settings. The conversion takes two minutes and does not change your account name or followers. After conversion, you can use the API.

What if my image fails to post?

Check the image permissions in Google Drive. Right-click the file, select Share, and confirm it is set to "Anyone with the link can view." Paste the Image URL from your sheet into a new browser tab. The image should display or download. If it does not, permissions are wrong. Fix them and try again.

Can I schedule multiple posts at once?

Yes. Add multiple rows to your sheet with different dates and times. The scenario runs daily at your scheduled time. It will find all rows with dates and times matching that run window and post them in order. If you want to post at 9 AM, 12 PM, and 3 PM, you can set up multiple scenarios with different schedules, or you can add rows with those specific times and run the scenario more frequently.

Does this work for Instagram Stories or Reels?

Stories and Reels use different API endpoints and require separate module configurations. This tutorial covers feed posts only. Stories and Reels are more complex and require additional setup. They are outside the scope of this guide.

---

If you want to extend this to other platforms, add Reels and Stories, or wire it into a larger content workflow, reach out. That's a buildable thing.