Buffer supports 11 social media platforms through a single GraphQL API. OpenClaw can call that API through a custom skill, which means your AI agent can schedule, queue, and monitor posts across Instagram, LinkedIn, X, TikTok, and seven other networks without you opening the Buffer dashboard.
This guide walks through the full integration: generating your Buffer API key, writing an OpenClaw skill that talks to Buffer’s GraphQL endpoint, scheduling your first post from a chat message, and then building the workflows that make this worth maintaining. If you already have OpenClaw running, the initial connection takes about 10 minutes. The part that pays off, turning your agent into an actual social media operator, is where we spend the second half.
Why Buffer for OpenClaw Social Media Automation
Several social media scheduling tools have built OpenClaw skills already: PostFast, Mixpost, and Genviral all have entries on ClawHub. So why bother writing a custom Buffer skill?
Two reasons. First, your team probably already uses Buffer. Migrating your posting schedule, queue settings, and connected accounts to a different tool just to get an OpenClaw integration is backwards. The agent should meet you where your workflow already lives.
Second, Buffer’s API is one of the simplest in the social media space. A single GraphQL mutation handles post creation across all 11 supported platforms: Instagram, Threads, LinkedIn, X/Twitter, Facebook, TikTok, Google Business Profiles, Mastodon, YouTube, Pinterest, and Bluesky. You do not need to learn platform-specific endpoints or handle different auth flows per network. One API key, one mutation, 11 platforms.
Buffer’s integration is one of the faster ones to set up because the API surface is small and the authentication is straightforward. Bearer token, no OAuth dance, no refresh token rotation.
Before You Start
You need two things ready:
-
OpenClaw installed and running. If you have not set this up yet, follow our OpenClaw setup guide. That covers installation, workspace configuration, memory, and model selection.
-
A Buffer account with at least one connected social media channel. Free plan works. You need to be the organization owner to generate API keys. If you are on a team plan where someone else owns the org, ask them to generate the key or grant you owner access.
If you want your agent posting around the clock without keeping a laptop open, you will also need OpenClaw deployed on a VPS. Our Hostinger deployment guide covers that setup.
Step 1: Get Your Buffer API Key
Buffer’s API uses Bearer token authentication. No OAuth application registration, no client ID/secret pairs, no callback URLs. You generate a key in your Buffer settings and pass it in the Authorization header of every request.
Generate the Key
- Log into Buffer and go to publish.buffer.com/settings/api
- Click Create API Key
- Name it something recognizable like
openclaw-integration - Set the expiration. For a production integration, choose 1 year. For testing, 90 days gives you enough runway without creating a forgotten key that lives forever
- Copy the key immediately. Buffer shows it once. If you lose it, you will need to create a new one
Key limits depend on your plan:
| Plan | Max API Keys |
|---|---|
| Free | 1 |
| Paid (Essentials, Team, Agency) | 5 |
Usage is shared across all your personal keys, so generating multiple keys does not give you higher rate limits. The limit is 60 authenticated requests per user per minute.
Find Your Channel IDs
You need the Buffer channel ID for each social account you want to post to. The channel ID is not the same as your social media handle or profile name.
The fastest way to get channel IDs is to query the Buffer API directly. Once you have your API key, run this from a terminal:
curl -s -X POST https://api.buffer.com \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ channels { id name service } }"}' | jq
This returns a JSON array of your connected channels with their IDs, display names, and platform types. Save these. You will reference them in the skill.
Step 2: Write the OpenClaw Skill
An OpenClaw skill is a Markdown file that teaches your agent how to interact with an external service. It contains a YAML frontmatter block for metadata and a Markdown body with instructions the agent follows when the skill is triggered.
Create the Skill File
Create a new directory and SKILL.md file in your OpenClaw workspace:
mkdir -p ~/.openclaw/skills/buffer
Then create ~/.openclaw/skills/buffer/SKILL.md with this content:
---
name: buffer
description: Schedule and manage social media posts across 11 platforms via Buffer's API.
tools:
- shell
---
# Buffer Social Media Skill
## Authentication
All requests require the Authorization header with a Bearer token.
The token is stored in the environment variable $BUFFER_API_KEY.
## API Details
- **Endpoint:** https://api.buffer.com (POST, GraphQL)
- **Rate limit:** 60 requests per minute
- **Supported platforms:** Instagram, Threads, LinkedIn, X/Twitter, Facebook, TikTok, Google Business Profiles, Mastodon, YouTube, Pinterest, Bluesky
## Available Actions
### Schedule a Post
Create a post scheduled for a specific time or added to the queue.
```bash
curl -s -X POST https://api.buffer.com \
-H "Authorization: Bearer $BUFFER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "mutation CreatePost($input: CreatePostInput!) { createPost(input: $input) { ... on PostActionSuccess { post { id text } } ... on MutationError { message } } }",
"variables": {
"input": {
"text": "POST_TEXT_HERE",
"channelId": "CHANNEL_ID_HERE",
"schedulingType": "automatic",
"mode": "addToQueue"
}
}
}'
Parameters:
text: The post contentchannelId: Buffer channel ID (use List Channels to find IDs)schedulingType: “automatic” (use Buffer’s optimal timing) or “notification” (send as draft/notification)mode: “addToQueue” (next available slot), “now” (publish immediately), or “next” (jump to front of queue)
When the user specifies a date/time, add dueAt to the input as an ISO 8601 timestamp.
List Channels
Retrieve all connected social media channels and their IDs.
curl -s -X POST https://api.buffer.com \
-H "Authorization: Bearer $BUFFER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ channels { id name service } }"}'
Get Queued Posts
Retrieve posts currently in the queue for a specific channel.
curl -s -X POST https://api.buffer.com \
-H "Authorization: Bearer $BUFFER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "{ channel(id: \"CHANNEL_ID\") { queuedPosts { edges { node { id text dueAt } } } } }"
}'
Rules
- Always confirm the post text and target channel(s) before scheduling
- If the user says “all channels” or “everywhere”, list available channels first and confirm
- When scheduling across multiple channels, make separate API calls per channel
- If a request fails, show the error message from the MutationError response
- Do not fabricate channel IDs. Always query the API if the user has not specified one
- Respect the 60 requests/minute rate limit. If posting to many channels, add a 1-second delay between calls
That is the complete skill. The agent reads these instructions and uses the shell tool to execute the curl commands, substituting in the user's request details.
### Store Your API Key
Do not paste your API key into the SKILL.md file. Store it as an environment variable:
```bash
# Add to ~/.openclaw/.env
BUFFER_API_KEY=your-buffer-api-key-here
OpenClaw loads environment variables from ~/.openclaw/.env at startup. Restart your agent after adding the key:
openclaw gateway restart
Test the Skill
Open a conversation with your OpenClaw agent and try these commands:
List your channels:
“Show me my connected Buffer channels”
The agent should run the List Channels query and return a formatted list of your social accounts with their IDs and platform types.
Schedule a test post:
“Schedule a post on my LinkedIn channel: Testing OpenClaw Buffer integration. Add it to the queue.”
The agent should identify the LinkedIn channel ID from its earlier query (or ask you to confirm), then run the CreatePost mutation with mode: addToQueue.
Check your Buffer dashboard to verify the post appears in the queue. If it does, the integration is working.
Step 3: Schedule Your First Post
With the skill working, here is how a real interaction looks:
You: “Post this to X and LinkedIn: We just published a new guide on connecting Buffer to OpenClaw for automated social media scheduling. Link: https://sfailabs.com/guides/connect-buffer-to-openclaw”
Agent: The agent lists your channels, identifies the X and LinkedIn channel IDs, and creates two posts via separate API calls. It confirms both were queued successfully and tells you the scheduled times based on Buffer’s automatic scheduling.
For posts that need to go out at a specific time:
You: “Schedule a LinkedIn post for tomorrow at 9am EST: Join our webinar on AI-powered content workflows this Thursday at 2pm. Register here: [link]”
Agent: The agent converts “tomorrow at 9am EST” to an ISO 8601 timestamp and passes it as the dueAt parameter. Buffer schedules the post for that exact time rather than using the queue.
The key insight: you are not learning Buffer’s interface or navigating their scheduler. You describe what you want in natural language and the agent handles the API calls. This is where the integration saves real time, not in the initial setup, but in the daily friction it removes.
Buffer API Limitations You Should Know
Buffer’s API is in beta as of April 2026. That means three practical constraints you need to plan around:
No edit or delete. Once a post is created through the API, you cannot modify or remove it via the API. You have to open the Buffer dashboard to edit or delete. If your agent creates a post with a typo, the agent cannot fix it. This is the biggest limitation and the reason the skill includes a confirmation step before posting.
No image upload through the GraphQL API. The createPost mutation accepts text and scheduling parameters. Media attachments require a separate upload flow that is not yet available in the beta API. If your workflow involves image-heavy posts, you will need to create those in the Buffer dashboard and use the agent for text-based scheduling only.
Rate limit of 60 requests per minute. For most use cases this is generous. But if you are building a workflow that posts to all 11 platforms simultaneously and then queries the queue status for each, you can hit the limit. The skill includes a delay instruction to mitigate this, but be aware of it for bulk operations.
These limitations will likely change as Buffer moves the API out of beta. For now, build your workflows around text-based posts with confirmation steps.
What to Build After the Basics
Scheduling a single post is the starting line. The real value comes from workflows that would take you 30 minutes manually but take the agent 30 seconds.
Content Repurposing Pipeline
This is the workflow that makes the Buffer integration worth the setup. You publish a blog post, then need to promote it on four platforms with different formats: a thread for X, a professional summary for LinkedIn, a short teaser for Instagram, and a casual post for Bluesky.
Create a skill extension or a custom prompt that handles the repurposing:
## Blog Post Repurposing
When I share a blog URL and ask you to promote it:
1. Fetch the blog post content (use the URL)
2. Create platform-appropriate versions:
- **X/Twitter:** Hook line + key takeaway + link. Keep under 280 characters
- **LinkedIn:** 3-paragraph professional summary. First-person, include a specific insight from the article
- **Bluesky:** Casual, conversational tone. Include link
- **Threads:** Question that the article answers + a one-sentence answer + link
3. Show me all four versions for approval
4. After I approve, schedule all four to Buffer queue
This turns a 20-minute content repurposing task into a 2-minute review-and-approve interaction. Over a month of weekly publishing, that is over an hour reclaimed from copy-paste work.
Scheduled Content Calendar
Pair the Buffer skill with OpenClaw’s heartbeat scheduling to create a recurring content calendar:
## Weekly Content Schedule
Every Monday at 8:00 AM:
- Pull the latest blog post from the RSS feed
- Generate social media versions using the repurposing pipeline
- Queue all posts to Buffer with staggered timing:
- LinkedIn: Monday 9:00 AM
- X: Monday 12:00 PM
- Bluesky: Tuesday 10:00 AM
- Threads: Wednesday 9:00 AM
- Send me a summary of what was scheduled via Slack
If you have also connected Slack to OpenClaw, the agent posts the scheduled content summary to a channel so your whole team sees what is going out that week.
Analytics Check-Ins
Buffer’s API supports querying sent posts and engagement data. Set up a weekly analytics skill:
## Weekly Social Media Report
Every Friday at 4:00 PM:
- Query Buffer for all posts sent this week across all channels
- Summarize: total posts, top-performing post by engagement, platforms with highest reach
- Flag any posts that got zero engagement (possible scheduling or content issue)
- Post the summary to #marketing in Slack
This replaces the ritual of logging into Buffer, clicking through each channel’s analytics, and building a summary manually. The agent does it on schedule and puts the results where your team already works.
Frequently Asked Questions
Does Buffer’s free plan work with this OpenClaw integration?
Yes. Free plan accounts can generate 1 API key and use all the same GraphQL endpoints as paid plans. The only difference is the number of connected channels and scheduled posts Buffer allows on free, which is 3 channels and 10 scheduled posts per channel. The API integration itself works identically regardless of plan.
How many platforms can I post to at once through Buffer and OpenClaw?
All 11 that Buffer supports: Instagram, Threads, LinkedIn, X/Twitter, Facebook, TikTok, Google Business Profiles, Mastodon, YouTube, Pinterest, and Bluesky. Each platform requires a separate API call, so posting to all 11 simultaneously uses 11 of your 60-per-minute rate limit. The skill handles this automatically.
Can OpenClaw edit or delete posts that were scheduled through Buffer?
Not through the API. Buffer’s beta API does not support edit or delete operations as of April 2026. If you need to modify or remove a scheduled post, open the Buffer dashboard directly. This is why the skill includes a confirmation step before creating any post.
What happens when the Buffer API rate limit is hit?
Buffer returns an HTTP 429 response. The skill instructs the agent to wait and retry. In practice, you would need to be making more than one API call per second to hit the 60-per-minute ceiling, which only happens during bulk operations like posting to all channels and then immediately querying the queue for each one.
Can I schedule posts with images through this integration?
Not with the current beta API. The GraphQL createPost mutation handles text, scheduling, and channel selection. Image and video uploads require a separate flow that is not yet publicly available. For image posts, create them in the Buffer dashboard and use the OpenClaw integration for text-based scheduling and queue management.
Is there an official Buffer skill on ClawHub?
No, not as of April 2026. Buffer has not published an official OpenClaw skill. The custom skill approach in this guide is the current recommended path. If Buffer releases an official skill, it will likely appear on ClawHub and would replace the custom SKILL.md.
Can OpenClaw pull engagement analytics from Buffer?
Yes. Buffer’s GraphQL API supports querying sent posts with engagement metrics. The skill can retrieve post performance data, though the depth of analytics depends on your Buffer plan. The weekly analytics workflow described in this guide works on all plans.
How do I connect multiple Buffer organizations to OpenClaw?
Generate a separate API key for each Buffer organization. Then create separate skill instances or add a configuration block to the skill that maps organization names to API keys. Reference different keys using environment variables like $BUFFER_API_KEY_ORG1 and $BUFFER_API_KEY_ORG2.
Key Takeaways
- Connect Buffer to OpenClaw by generating an API key at publish.buffer.com/settings/api and writing a custom SKILL.md that calls Buffer’s GraphQL endpoint at api.buffer.com
- The skill needs one environment variable (
BUFFER_API_KEY), one endpoint, and one core mutation (createPost) to schedule posts across all 11 supported platforms - Buffer’s API is in beta with two key limitations: no image uploads and no edit/delete operations through the API
- The real value comes from workflow automation: content repurposing across platforms, scheduled content calendars paired with heartbeat tasks, and weekly analytics summaries
- Start with single-post scheduling to verify the integration, then layer on repurposing pipelines and analytics once the basics are solid
SFAI Labs