---
canonical_url: "https://docs.composio.dev/toolkits/buffer"
markdown_url: "https://docs.composio.dev/toolkits/buffer.md"
product: "platform"
version: null
last_updated: null
---

# Buffer

Buffer is a social media management platform for planning, creating, scheduling, and publishing content across connected channels.

- **Category:** social media accounts
- **Auth:** OAUTH2
- **Composio-managed OAuth available?** No
- **Tools:** 11
- **Triggers:** 0
- **Slug:** `BUFFER`
- **Version:** 20260819_00

## Tools

### Create Idea

**Slug:** `BUFFER_CREATE_IDEA`

Create a persistent content idea in a Buffer organization. Buffer's public API provides no operation to update or delete an idea after creation, so this action cannot be undone through the API.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cta` | string | No | Optional call-to-action associated with the idea. |
| `text` | string | No | Optional idea body text. Provide a non-empty title, text, or both. |
| `title` | string | No | Optional idea title. Provide a non-empty title, text, or both. |
| `group_id` | string | No | Optional writable idea group ID from LIST_IDEA_GROUPS. |
| `services` | array | No | Optional intended social networks. Values must be exact Buffer Service enum names discovered through live GraphQL introspection. |
| `ai_assisted` | boolean | No | Whether AI assisted in creating the idea content. |
| `content_date` | string | No | Optional date and time associated with the idea content. |
| `organization_id` | string | Yes | Buffer organization ID in which to create the idea. |
| `place_after_idea_id` | string | No | Optional idea ID after which to place the new idea. Requires group_id, and the referenced idea should belong to that group. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Post Draft

**Slug:** `BUFFER_CREATE_POST_DRAFT`

Create an internal text-post draft for exactly one Buffer channel. This action always saves a draft and does not queue, schedule, or publish it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `text` | string | Yes | Draft text. This creates an internal Buffer draft only and never queues, schedules, or publishes it. |
| `idea_id` | string | No | Optional source idea ID to associate with the post. |
| `tag_ids` | array | No | Optional Buffer tag IDs to associate with the post. |
| `channel_id` | string | Yes | Exactly one target social channel ID from GET_ACCOUNT_CONTEXT. The post is saved as an internal draft for this channel and is not published. |
| `ai_assisted` | boolean | No | Whether AI assisted in creating this content. |
| `needs_approval` | boolean | No | Set true only when the target channel's posting policy requires approval. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Post

**Slug:** `BUFFER_DELETE_POST`

Permanently delete a Buffer post by ID, including a draft created for cleanup. This operation cannot be undone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `post_id` | string | Yes | ID of the Buffer post to permanently delete. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Post Template

**Slug:** `BUFFER_DELETE_POST_TEMPLATE`

Delete a writable private Buffer template, or an internal template when the connected user is an organization admin or owner. This operation cannot be undone.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `template_id` | string | Yes | ID of a template the connected user owns or may administer. Do not pass an arbitrary public template ID from LIST_POST_TEMPLATES. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Account Context

**Slug:** `BUFFER_GET_ACCOUNT_CONTEXT`

Return the connected Buffer account, its organizations, and the accessible social channels in each organization so an agent can discover the IDs required by other tools.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `organization_id` | string | No | Optional organization ID to return channels for; omit to return channels for every organization on the account. |
| `include_locked_channels` | boolean | No | Whether locked channels should be included in channel results. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Idea Groups

**Slug:** `BUFFER_LIST_IDEA_GROUPS`

List the idea workflow groups in a Buffer organization so an agent can discover group IDs for filtering or idea creation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `organization_id` | string | Yes | Buffer organization ID from GET_ACCOUNT_CONTEXT. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Ideas

**Slug:** `BUFFER_LIST_IDEAS`

List content ideas in a Buffer organization, optionally filtering by explicit idea groups or grouped versus ungrouped workflow membership.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cursor` | string | No | Opaque next_cursor from a prior call; pass it back unchanged. |
| `group_ids` | array | No | Only return ideas in these group IDs. Mutually exclusive with group_membership. |
| `page_size` | integer | No | Maximum ideas to return on this page. |
| `organization_id` | string | Yes | Buffer organization ID from GET_ACCOUNT_CONTEXT. |
| `group_membership` | string ("grouped" | "ungrouped") | No | Only return grouped or ungrouped ideas. Mutually exclusive with group_ids; omit both filters to include all groups. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Posts

**Slug:** `BUFFER_LIST_POSTS`

List and filter posts in a Buffer organization without requesting OAuth-inaccessible analytics fields.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cursor` | string | No | Opaque next_cursor from a prior call; pass it back unchanged. |
| `tag_ids` | array | No | Only return posts associated with these Buffer tag IDs. |
| `statuses` | array | No | Only return posts with these Buffer post statuses. |
| `page_size` | integer | No | Maximum posts to return in this page, capped at Buffer's recommended 50. |
| `due_at_end` | string | No | Inclusive upper bound for scheduled due time as an ISO 8601 timestamp. |
| `sort_field` | string ("dueAt" | "createdAt") | No | Optional Buffer post field used to order results: dueAt or createdAt. |
| `channel_ids` | array | No | Only return posts for these channel IDs. |
| `due_at_start` | string | No | Inclusive lower bound for scheduled due time as an ISO 8601 timestamp. |
| `sort_direction` | string ("asc" | "desc") | No | Sort direction when sort_field is supplied. |
| `organization_id` | string | Yes | Buffer organization ID from GET_ACCOUNT_CONTEXT. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Post Templates

**Slug:** `BUFFER_LIST_POST_TEMPLATES`

List Buffer public templates and templates visible to the connected user in an organization, optionally filtered by visibility.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `cursor` | string | No | Opaque next_cursor from a prior call. Pass it back unchanged to fetch the next page. |
| `page_size` | integer | No | Maximum templates to return on this page. Buffer recommends page sizes from 20 to 50. |
| `visibility` | string ("public" | "internal" | "private") | No | Optional visibility filter. It narrows results but cannot widen the connected user's access. |
| `organization_id` | string | Yes | Buffer organization ID used to resolve templates visible to the connected user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Publish Posts

**Slug:** `BUFFER_PUBLISH_POSTS`

Queue, schedule, or immediately publish the same text post to one to 10 Buffer channels. The 10-channel cap bounds external side effects and provider requests in one invocation. Calls are non-atomic: one createPost mutation runs per channel, and successful channels may already be queued, scheduled, or published when another channel fails. Returns every success and provider failure instead of rolling successful channels back.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `text` | string | Yes | Post text to queue, schedule, or publish on every target channel. |
| `due_at` | string | No | Scheduled publication time. Required only for delivery_mode='custom_scheduled' and rejected for other modes. |
| `idea_id` | string | No | Optional source idea ID to associate with every created post. |
| `tag_ids` | array | No | Optional Buffer tag IDs to associate with every created post. |
| `ai_assisted` | boolean | No | Whether AI assisted in creating this content. |
| `channel_ids` | array | Yes | One to 10 unique target channel IDs from GET_ACCOUNT_CONTEXT. Buffer receives one createPost mutation per channel; duplicate IDs are rejected. |
| `delivery_mode` | string ("add_to_queue" | "custom_scheduled" | "share_now") | Yes | Publication timing: add_to_queue adds to each channel queue, custom_scheduled uses due_at, and share_now publishes externally now. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Save Post Template

**Slug:** `BUFFER_SAVE_POST_TEMPLATE`

Create a private or internal Buffer post template, or update an existing writable template when template_id is supplied.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `body` | string | No | Reusable post body; required for creation and optional for update. |
| `emoji` | string | No | Emoji associated with the template; required for creation by Buffer's live resolver and optional for update. |
| `title` | string | No | Template title; required for creation and optional for update. |
| `visibility` | string ("private" | "internal") | No | Template visibility. Public visibility is unavailable for non-official Buffer clients. |
| `description` | string | No | Template description; required for creation by Buffer's live resolver and optional for update. |
| `template_id` | string | No | Existing writable template ID to update; omit to create a template. |
| `organization_id` | string | No | Organization in which to create the template; required for creation and omitted for update. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
