# How to Schedule Buffer Posts from Google Sheets with Images

> Generate a post image for every Google Sheets row with Orshot and schedule each one in Buffer from a workflow or the API

- **Author**: Rishi Mohan
- **Published**: 2026-11-09
- **Tags**: Buffer, Google Sheets, Social Media Automation, Workflows, Instagram
- **Read time**: 7 min read
- **URL**: https://orshot.com/blog/buffer-google-sheets

---

Today we're excited to launch the Orshot Buffer integration.

To schedule Buffer posts from Google Sheets with an image per row, connect Buffer to Orshot and run the sheet to Buffer workflow. Orshot renders each row into a branded image, and Buffer gets one post a day.

Below is every screen from my run on November 7, 2026, plus the one-click route from the editor and the API call.

The whole flow in 45 seconds. I made this film from the same screens with the Orshot connector in Claude Code.

## What the Orshot Buffer Integration Does

The Orshot Buffer integration sends anything Orshot renders to your Buffer account: images, multi-page carousels, PDFs and videos. Buffer then publishes them to the channels you connected there.

- **Connect with Buffer's own sign-in.** One click from Orshot's Integrations page, no API key to copy. Orshot lists your Buffer channels right away.
- **Send from three places.** The render API (`publish.buffer` on any render), the **Send to Buffer** workflow step, and **Post to Social** in the Orshot editor.
- **Pick how each post lands.** Add to the queue, schedule for a time, save as a draft for review, save as an idea, or share now.
- **Carousels and video included.** A multi-page template goes to Buffer as one carousel. Videos go as Reels on Instagram, with a title on YouTube.
- **Data per row.** A sheet column can set each post's caption, time and channels, so one sheet can fill several clients' calendars.

**Pricing:** sending to Buffer works on every Orshot plan, Free included. Renders use your plan's credits as usual, and the send itself costs nothing extra.

## Why Buffer's Bulk Upload Is Not Enough

Buffer's bulk upload takes a CSV with text, one image link, tags and a posting time per row. It only posts what you give it, so every image has to exist first.

As of November 7, 2026, Buffer's [bulk upload guide](https://support.buffer.com/article/926-how-to-upload-posts-in-bulk-to-buffer "target=_blank rel=nofollow") limits each upload to 10 posts per channel on the free plan and 100 on paid plans. It takes text and single-image posts only: no carousels, videos or YouTube.

Orshot fills that gap. Orshot is an API that turns your design templates into images, PDFs and videos. One template plus one sheet row gives one finished post image, and the Buffer step sends it with the row's caption.

## Schedule Buffer Posts from Google Sheets in 6 Steps

The whole setup takes about 5 minutes the first time. You need an Orshot account, a Buffer account with at least one channel, and a Google Sheet with one row per post.

### Step 1: Connect Buffer to Orshot

In Orshot, open **Integrations** from the sidebar and search for Buffer. Click **Connect** on the Buffer card.

### Step 2: Approve Orshot in Buffer

Buffer asks you to confirm the connection. Tick **I recognize and trust this URL**, then click **Connect Orshot**.

### Step 3: Check your Buffer channels

Back in Orshot, the Buffer settings list every channel from your Buffer account. Added a channel in Buffer later? Click **Refresh**.

### Step 4: Pick the sheet to Buffer workflow

Open **Workflows**, then **Explore templates**, and filter by **Buffer**. Pick [Turn a spreadsheet into a week of scheduled Buffer posts](https://orshot.com/workflows/spreadsheet-to-buffer-calendar).

The workflow reads the sheet, renders the template and sends to Buffer. In the sheet, name your columns after the template's fields (`headline`, `image`) and add a `caption` column. The render step matches same-named columns on its own.

### Step 5: Set up the Send to Buffer step

Connect Google, pick the sheet and pick your template. Then open **Send to Buffer**:

1. Tick the Buffer channels that should get every post.
2. Set **Send as** to **Scheduled** and type the first **Post at** time.
3. Set **Spread posts** to **one a day**. A sheet of 7 rows becomes a week of posts.

Pick **Queue** instead if Buffer's posting schedule should decide the times. Pick **Draft** if someone reviews every post in Buffer first.

### Step 6: Run it and check Buffer

Save the workflow and click **Run Now**. Each row becomes its own post in Buffer, with its image, its caption and its time. Open the Buffer queue to check them.

To keep my test channel clean, the post above came from the editor button in the next section. Workflow posts land in the same queue the same way, one per row.

**Fill your Buffer calendar from a sheet every week** — Start free with one workflow. Paid plans run more workflows and more renders a month.

[See plans](https://orshot.com/pricing?via=blog-buffer-sheets-steps)

### What your sheet needs

| Column | What it does |
| :-- | :-- |
| Template fields (`headline`, `image`) | Fill the design. Name them like the template's fields. |
| `caption` | The Buffer post text for that row. |
| Post-at column (optional) | A time per row. It wins over **Spread posts**. |
| Channels column (optional) | Buffer channel IDs per row, for agencies posting for several clients. |

For a daily drip instead of a weekly batch, use [Add a new post to your Buffer queue every day from a sheet](https://orshot.com/workflows/daily-sheet-row-to-buffer). It sends the next unsent row each day and marks it as sent.

## Send One Design to Buffer from Studio

Sending a single design from the Orshot editor takes three clicks. Use it for one-off posts, like a launch carousel, without building a workflow.

### Step 1: Click Post to Social

Open the design in Orshot Studio and click **Post to Social** at the top.

### Step 2: Pick the Buffer tab and your channels

Switch to the **Buffer** tab, pick the pages and channels, and write the caption. Then choose **Queue**, **Schedule**, **Draft**, **Idea** or **Now**.

A multi-page design goes to Buffer as one carousel. Buffer's own bulk upload can't send carousels at all.

### Step 3: Open it in Buffer

Orshot renders the pages and sends them. The toast confirms it with an **Open Buffer** link.

## Send Renders to Buffer from the API

The Orshot render API sends to Buffer in the same call. Add `publish.buffer` to a render request, and the response holds the file URL and the Buffer post IDs.

```js
const response = await fetch("https://api.orshot.com/v1/studio/render", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    Authorization: "Bearer <ORSHOT_API_KEY>",
  },
  body: JSON.stringify({
    templateId: 123,
    modifications: { headline: "New arrivals are live" },
    response: { type: "url", format: "png" },
    publish: {
      buffer: {
        channels: ["<BUFFER_CHANNEL_ID>"],
        text: "New arrivals are live. Link in bio.",
        mode: "scheduled",
        scheduled_for: "2026-12-01T09:00:00Z",
      },
    },
  }),
});
```

Run that from a cron job, n8n or Make, and your own script decides what gets posted. The [Buffer integration docs](https://orshot.com/docs/integrations/buffer) list every field, network option and error code.

## Buffer Bulk Upload vs Orshot

Both put a batch of posts into Buffer. The difference is where the images come from.

| | Buffer bulk upload | Orshot to Buffer |
| :-- | :-- | :-- |
| Input | CSV with text and image links | Google Sheet, API or Studio |
| Makes the images | No, you bring them | Yes, one per row from your template |
| Carousels and video | No | Yes, multi-page and video templates |
| Repeats on its own | No, upload again | Yes, on a schedule or a new row |

Buffer facts checked November 7, 2026 against Buffer's [bulk upload announcement](https://buffer.com/resources/introducing-bulk-upload/ "target=_blank rel=nofollow").

**Verdict:** If your images already exist, Buffer's free bulk upload is enough. If each row needs its own designed image, render it with Orshot and let the Buffer step send it.

## Limits to Plan Around

These are the limits I hit or checked while building the integration, as of November 7, 2026.

- **Orshot:** each workspace sends up to 100 posts to Buffer a day, and one workflow run sends up to 25 renders.
- **Buffer plan:** Buffer's limits still apply. On the free plan, a full channel queue refuses new posts, and first comments need a paid plan.
- **Buffer API:** the free plan allows 150 requests per 15 minutes, per Buffer's [developer API page](https://buffer.com/developer-api "target=_blank rel=nofollow"). A 7-row sheet uses a handful.
- **Media:** Buffer fetches the image again when the post goes out. Orshot sends its own render URLs, so nothing to host yourself.
- **Edits:** Orshot doesn't edit or delete posts in Buffer. Change them in Buffer.

**Q: Can Buffer import posts from Google Sheets?**

Not directly. Buffer imports a CSV through its bulk upload, so you export the sheet as CSV first. The CSV needs image links that already exist. Orshot reads the Google Sheet itself, renders an image per row and sends each post to Buffer.

**Q: Does Buffer bulk upload support carousels?**

No. As of November 2026, Buffer's bulk upload takes text and single-image posts only, with no carousels, videos or YouTube. Orshot sends a multi-page template to Buffer as one carousel, from Studio, a workflow or the API.

**Q: How do I schedule a week of Buffer posts at once?**

Put 7 rows in a Google Sheet and run the Orshot sheet to Buffer workflow with Send as Scheduled and Spread posts set to one a day. Buffer gets 7 posts at the same time of day, starting at the Post at time.

**Q: Does Orshot work with the Buffer free plan?**

Yes. Orshot sends to any Buffer plan. Buffer's free plan rules still apply: a full channel queue refuses new posts, and first comments need a paid Buffer plan. Orshot shows Buffer's message when a post is refused.

**Q: Can I send different rows to different Buffer channels?**

Yes. Add a channels column with Buffer channel IDs, separated by commas, and point the Send to Buffer step at it. Agencies use this to post each row to a different client's channels from one sheet.

**Q: What is Orshot?**

Orshot is an API for automated image, PDF and video generation from templates. You design a template once, then fill it with data from a sheet, an API call, n8n, Make, Zapier or an AI agent, and send the result to Buffer or your own social accounts.

## Schedule Your First Week of Buffer Posts

Make a sheet with 7 rows, connect Buffer and run the workflow once. Next week, add 7 new rows and run it again.

[Sign up free](https://orshot.com/pricing?via=blog-buffer-sheets-footer) to build the workflow, then connect Buffer from Integrations. The Buffer integration is on the Free plan too, so you can try the whole flow without paying.