- Brand
- Unknown
- Category
- Pending
- Primary Subcategory
- Pending
Integration details
Description
Schedulala is a social media planner and scheduler. Connect your Instagram, Facebook, Threads, LinkedIn, TikTok, X, Bluesky, YouTube, Pinterest, Telegram, Google Business Profile and Mastodon accounts once, then ask ChatGPT to draft, preview, schedule and publish posts to any of them. What you can do: - Create a post for several platforms at once, with per-platform captions, images, video, carousels, Reels and Shorts, or a LinkedIn PDF document. - See a faithful preview of how the post will look on each platform before it goes out. - Schedule for later, or add to a queue. Edit, cancel or retry any scheduled post. - Plan a week of content: bulk-create posts from one prompt and view them on your posting calendar. - Read and reply to comments and mentions across your accounts, hide spam. - Track post analytics, follower growth and your best posting times. - Search public conversations on Bluesky, Threads and Mastodon by keyword. Schedulala connects to your accounts through each platform's official API. Nothing is posted until you ask, and every publish is confirmed back in the chat. Sign in with your Schedulala account to get started.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Category
- Pending
- Primary Subcategory
- Pending
- Secondary Subcategories
- None listed
- Brand
- Unknown
- Access
- Account required
- First tracked
- 2026-10-15
- Tool count
- 39
- Geography
- US
The broad Category that contains the Primary Subcategory.
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Schedulala for Social Media
Get updates when Schedulala for Social Media’s Discoverability Score or category rank changes.
Competitive lineup
39 tools agents can invoke
Append the next base64 chunk to a chunked upload started with begin_generated_media_upload. Send chunks in order with seq starting at 0, at most 8000 base64 characters each; if a call returns a 409 conflict, resume from the expectedSeq in the error details. Intended for files generated in this conversation (charts, cards, edited images); user-attached files and files on the user's device are handled by attach_media (the in-chat upload widget, full quality). Chunks are limited to 8000 base64 characters because larger payloads are silently truncated by the chat channel.
append_generated_media_chunk
Use this tool when the user wants to post a photo, video, or PDF document from their device or attached in the chat; it preserves full quality, whereas reading and base64-encoding attached files inline does not. On widget-capable clients (claude.ai, ChatGPT) it opens an upload widget IN the conversation (drag-and-drop or file picker, multiple files at once for carousels); on clients without widget rendering it still works — the result's structuredContent carries a programmatic upload API (ticket, presignUrl, confirmUrl) you can drive with plain HTTP. Use this whenever the user wants to post media that is not already at a public URL: a photo attached in chat, a video on their computer or phone, a PDF for a LinkedIn document post. The file uploads directly to the user's Schedulala media library at full quality (images to 20MB, videos to 500MB, PDFs to 100MB); when the upload finishes, the media's url and type are ready to pass into create_post's mediaItems (a PDF becomes type 'pdf' — LinkedIn documents only). For an Instagram Reel, also set platformSettings.instagram.postType to 'reel'.
attach_media
Begin a chunked upload for an image YOU generated in this conversation whose base64 is too large to send inline (a chart, quote card, or edited image). Returns an uploadId; then stream the base64 in small chunks via append_generated_media_chunk and finish with finish_generated_media_upload. Images only, 3MB decoded max. Intended for files generated in this conversation (charts, cards, edited images); user-attached files and files on the user's device are handled by attach_media (the in-chat upload widget, full quality). Chunks are limited to 8000 base64 characters because larger payloads are silently truncated by the chat channel.
begin_generated_media_upload
Create multiple posts in one request (max 25). Each entry has the same shape as create_post (content, platforms, mediaItems, scheduledFor, publishNow, status, brandId, externalId, platformSettings, firstComment/firstComments - see create_post for first-comment platforms and limits). WARNING: this CONSUMES POST QUOTA per successful post (not per request). Validation/account-resolution failures are reported per-index and do NOT consume quota. TikTok posts require platformSettings.tiktok.privacy (e.g. 'SELF_ONLY' or 'PUBLIC_TO_EVERYONE') AND platformSettings.tiktok.postMode: 'direct' (publish straight to the profile) or 'inbox' (send to the user's TikTok app inbox to finish manually). There is no postMode default; entries without it fail validation. For media from the user's device or chat attachments, call attach_media first (where available) to get urls. Returns per-index results plus a summary of succeeded/failed.
bulk_create_posts
Cancel or delete a post by id. Draft posts are permanently deleted; scheduled posts are cancelled so they will not publish. Posts that are already processing or posted cannot be cancelled.
cancel_post
Get the link to connect a new social media account (instagram, facebook, threads, linkedin, tiktok, twitter, youtube, pinterest, bluesky, telegram, mastodon, google-business) to Schedulala. google-business uses OAuth via the dashboard/connect URL like the other OAuth platforms (Google consent screen, then pick business locations). The link opens the Schedulala dashboard where the user completes the platform's own sign-in in their browser; credentials and OAuth approval NEVER happen in this chat. Use when the user wants to add or reconnect a platform. After they finish, call list_accounts to confirm the new account is connected.
connect_account
Create and schedule a social media post across one or more platforms via Schedulala. Supported platforms: twitter, instagram, linkedin, facebook, youtube, bluesky, tiktok, telegram, threads, pinterest, mastodon, google-business. Scheduling options (pick exactly one): scheduledFor (ISO 8601, 5 min to 90 days out), publishNow: true (publish immediately), queue: true (auto-scheduling queue), or status: "draft" (save without scheduling). Character limits: twitter=280, bluesky=300, threads=500, mastodon=500, google-business=1500, instagram=2200, tiktok=2200, linkedin=3000, telegram=4096, facebook=63206. (YouTube uses a 100-char title + 5000-char description; Pinterest uses a 100-char title + 500-char description — supply these via platformSettings.) google-business supports postType STANDARD/EVENT/OFFER with CTA buttons via platformSettings; exactly one image, no video. The CTA is two FLAT string fields, not a nested object: platformSettings["google-business"] = { "callToAction": "LEARN_MORE", "actionUrl": "https://..." }. Valid callToAction values: BOOK, ORDER, SHOP, LEARN_MORE, SIGN_UP, GET_OFFER, CALL. actionUrl is required for every type except CALL. Media: provide mediaItems with public URLs. Multiple items = carousel (instagram, facebook, threads, tiktok, pinterest; mastodon up to 4 images). Instagram requires at least one media item; YouTube requires a video. If the user's photos/videos are on their device or attached in the chat, attach_media (where available) opens an in-chat upload widget that uploads them at full quality and reports the urls to use here; reading and base64-encoding attached files inline loses quality. If the user supplies a source media URL to attach (or the link may expire), call upload_media first and use the url it returns here. Per-platform content: pass platforms as objects with a content field to override text per platform, or use platformSettings. First Comment (auto-plug): pass firstComment (plain string) or firstComments ([{target, text}]) to auto-post a comment under the post ~15 seconds after it publishes - the standard "link in the first comment" workflow. Supported on 8 platforms: linkedin, facebook, instagram, youtube, twitter, threads, bluesky, mastodon. NOT supported on tiktok, pinterest, telegram, google-business (no comment API): selecting ONLY unsupported platforms with a first comment is a validation error; mixed selections publish the comment where supported and warn about the rest. Comments are text and links only, no media. Comment limits: instagram=1000 UTF-8 bytes, linkedin=1500, twitter=280, bluesky=300, threads=500, youtube=10000 characters; facebook and mastodon have no fixed limit. target 0 = the main post; targets above 0 address thread entries and only work with create_thread (twitter/threads/bluesky). A failed comment never fails the post - check get_post's platforms[].firstComments for per-account delivery status (posted with the comment url, failed, or skipped). TikTok: platformSettings.tiktok.privacy (e.g. 'PUBLIC_TO_EVERYONE', 'SELF_ONLY') AND platformSettings.tiktok.postMode are both required. postMode is 'direct' (publish straight to the profile) or 'inbox' (send to the user's TikTok app inbox to finish manually) - there is no default, so the post is rejected until the user has chosen one.
create_post
Create a thread — a chain of sequential posts — on twitter, threads, bluesky, or mastodon. Provide at least 2 ordered entries in 'posts' (max 25). Each entry has its own content, an optional single media item (mediaItems, max 1 per entry), and optional per-platform text via platformContent. Scheduling: scheduledFor (ISO 8601) or publishNow: true; omit both to schedule for now. WARNING: this CONSUMES POST QUOTA — one post per thread entry (a 5-entry thread uses 5 posts of quota). Thread platforms only: twitter, threads, bluesky, mastodon. Other platforms are rejected. Use platformSettings for thread-wide options (e.g. mastodon visibility). config (postDelay, continueOnError, maxRetries) is accepted for compatibility, but the per-platform chain delay is fixed and postDelay is not honored. First Comment (auto-plug): pass firstComment (plain string, comments the root post) or firstComments ([{target, text}]) to auto-post comments after the thread publishes. target 0 = entry 1 (the root); target i = entry i+1, so max target = number of entries - 1. Thread-targeted comments (target > 0) deliver on twitter/threads/bluesky only; on mastodon only the target-0 comment applies. Comments are text and links only. Limits: twitter=280, bluesky=300, threads=500 characters; mastodon has no fixed limit. A failed comment never fails the thread - check get_post's platforms[].firstComments for delivery status. The response includes the thread id and a single postId (the whole chain publishes from ONE post document) — use get_post on that postId for live status.
create_thread
Finish a chunked upload: the server assembles the chunks, validates the image, and hosts it on the Schedulala CDN, returning the url + media id for create_post. Call once every chunk has been sent via append_generated_media_chunk. Intended for files generated in this conversation (charts, cards, edited images); user-attached files and files on the user's device are handled by attach_media (the in-chat upload widget, full quality). Chunks are limited to 8000 base64 characters because larger payloads are silently truncated by the chat channel.
finish_generated_media_upload
Get optimal posting times derived from historical engagement: top hours and top days of week, plus full by-hour and by-day breakdowns. Supported on these platforms only: instagram, twitter, bluesky, threads, facebook, linkedin, pinterest, tiktok, youtube, mastodon (not telegram or google-business). Pass accountId to scope to one account, or platform to scope to a platform, or neither to merge across all analytics-enabled accounts. Returns an empty result when there isn't enough posting history yet.
get_best_posting_times
Get current follower count, 7-day and 30-day growth, and a daily follower-count history. Supported on these platforms only: instagram, twitter, bluesky, threads, facebook, linkedin, pinterest, tiktok, youtube, mastodon (not telegram or google-business). Note: tiktok reports no follower counts (platform limitation). Pass accountId (from list_accounts) for one account, or OMIT it to get per-account blocks for ALL analytics-enabled accounts plus summed totals in one call (totals exclude YouTube per its API policy). Optional window in days (1-365, default 30). Returns nulls/empty history when no snapshots exist yet.
get_follower_growth
Retrieve a single post by its id, including per-platform status, post URLs, and any errors.
get_post
Get per-post analytics (likes, comments, replies, shares, saves, views, reach, impressions, quotes, reposts, bookmarks, and engagement rate), with cursor pagination. Analytics is supported on these platforms only: instagram, twitter, bluesky, threads, facebook, linkedin, pinterest, tiktok, youtube, mastodon (telegram and google-business have no post-level analytics). Pass accountId (from list_accounts) for one account, or OMIT it to merge the top posts across ALL analytics-enabled accounts in one call (merged results don't paginate — pass accountId to page one account). Unsupported fields come back null per platform. Returns a clean empty result when no analytics exist yet.
get_post_analytics
Get the current API plan, post quota usage (used/limit/remaining/percent), connected account count, billing period, and rate limit for this API key.
get_usage
Get per-video audience retention for a YouTube video on a connected channel (youtube only): what percentage of viewers are still watching at each point of the video, plus performance relative to similar YouTube videos. Fetched live from the YouTube Analytics API with a 7 day cache; requires the channel to be connected with the analytics scope. Data lags about 48 hours and needs enough watch activity to exist.
get_video_retention
Get the caption tracks and parsed transcript of a YouTube video on a connected channel (youtube only). Useful for repurposing video content into posts on other platforms. videoId is the YouTube video id (from get_post_analytics platformPostId or the watch URL).
get_video_transcript
Hide or unhide a comment on a connected account. THIS CHANGES VISIBILITY on the platform. Supported platforms: facebook, instagram, youtube, threads. (Not available on linkedin or bluesky.) Pass commentId and hide (true to hide, false to unhide; defaults to true).
hide_comment
List the connected social media accounts available to this API key. Each account includes its accountId (use when targeting a specific account in create_post), platform, username/displayName, brandId/brandName (workspace — for dashboard-connected accounts this is the dashboard workspace the account is assigned to; group accounts by it, but do NOT pass a dashboard brandId to create_post), and connection health (isConnected false + needsReconnect true = the token is dead; tell the user to reconnect that account in the Schedulala dashboard instead of posting to it). There is no separate brands endpoint — read brand ids from here.
list_accounts
List comments on your connected social accounts — recent comments across the account (omit postId) or comments on a specific post (pass postId). Supported platforms: facebook, instagram, youtube, linkedin, threads, bluesky, google-business, mastodon. (tiktok, telegram, twitter, pinterest are NOT engagement platforms.) postId semantics per platform: media id (instagram/facebook), video id (youtube), post URN (linkedin), thread id (threads), post URI (bluesky), status id (mastodon). google-business does not support postId (reviews are location-level, not per-post). Returns comments OTHER PEOPLE left you. Replies you authored yourself (auto-posted first comments, your own follow-ups) are marked platformData.isOwnComment and left out by default — pass includeOwn: true to see them too. On threads this covers both your own posts and replies people left on your outbound replies to other people's threads. Each returned comment carries an id and a platformData blob. For bluesky, platformData.replyRefs holds the four AT-Protocol refs (parentUri, parentCid, rootUri, rootCid) that reply_to_comment needs — surface them when replying. google-business comments are customer reviews; platformData.starRating carries the 1-5 rating; replying to an already-replied review overwrites the existing reply.
list_comments
List the saved feed keywords (social-listening watch list) for a platform. Shared with the Schedulala dashboard. Platforms: bluesky, threads, mastodon.
list_feed_keywords
List the user's recently uploaded media (dashboard Media library + API uploads): url, type (image/video), file name, size and upload date, ready to pass into create_post's mediaItems. Use this whenever the user references media they've already uploaded — "my latest upload", "the video I uploaded", "that reel from earlier" — instead of asking them for a URL. This is THE path for posting videos from chat: big files can't travel through the conversation, so the user uploads once on the dashboard Media page and you reference it from here.
list_media
List posts/comments where your connected account is mentioned, tagged, or quoted. Supported platforms: instagram (tags + mentions), threads, bluesky (mentions + quotes), mastodon (mentions, which on Mastodon includes replies). (Not available on facebook, youtube, or linkedin.) For bluesky, each item's platformData.replyRefs lets you reply_to_comment directly.
list_mentions
List posts created through the Schedulala API. Filter by status (draft, scheduled, posted, failed, cancelled), platform, or brandId, and paginate with page/limit. Date-range filtering uses 'after'/'before' (ISO 8601) on scheduled time.
list_posts
Look up any PUBLIC Bluesky profile by handle: bio, follower counts, and recent posts (with reply targets for reply_to_comment). bluesky only.
lookup_profile
Reply to a comment (or add a top-level comment) on a connected account. THIS PUBLISHES A REPLY on the platform. Supported platforms: facebook, instagram, youtube, linkedin, threads, bluesky, google-business, mastodon. Reply target by platform (provide the right one): - instagram, youtube: commentId (the comment to reply to). - facebook, linkedin: commentId to reply to a comment, OR postId for a top-level comment. (linkedin commentId must be the composite comment URN; postId is the post URN.) - threads: commentId or postId (the thread/reply id being responded to). - mastodon: commentId (the status id being replied to). - bluesky: parentUri + parentCid + rootUri + rootCid — all four are required. Get them from a comment's platformData.replyRefs (returned by list_comments / list_mentions). - google-business: commentId (the reviewId). google-business comments are customer reviews; platformData.starRating carries the 1-5 rating; replying to an already-replied review overwrites the existing reply (a review has at most one owner reply, max 4096 chars). Length limits — trim BEFORE calling, an over-long reply is rejected without reaching the platform: bluesky 300 GRAPHEMES (emoji and flags count as one each, so do not count with string length), threads 500 characters, google-business 4096 characters, mastodon the connected instance's limit (usually 500). Other platforms are not length-checked here, so respect their published comment limits yourself.
reply_to_comment
Retry the failed platforms of a post. By default retries every platform currently in a 'failed' state; pass platforms to retry only a subset. Optionally pass delay (seconds) to reschedule the retry instead of running it immediately. Errors if the post has no failed platforms.
retry_post
Search PUBLIC posts by keyword (social listening). Platforms: bluesky (sort latest|top, cursor pagination), threads, and mastodon. Threads keyword search has a Meta-imposed budget shared with the Schedulala dashboard - the response reports usage; prefer bluesky or mastodon for exploratory searching, both of which are free public reads. Mastodon searches the PUBLIC HASHTAG TIMELINE for a single-word query (chronological, every instance) and falls back to full-text search for multi-word queries - full-text only covers posts whose authors opted into indexing, so a thin result set there is not evidence the topic is quiet; the response reports which path ran. Each result includes its reply target so you can respond via reply_to_comment (bluesky: platformData.replyRefs; threads and mastodon: the result id as postId).
search_feeds
Show follower growth and top-post analytics for one connected account as an interactive card. Use when the user asks for analytics, stats, follower growth, or performance. Pass accountId for a specific account (from list_accounts); omit to use the first connected account.
show_analytics
Show recent comments (or comments on a specific post) for one connected account as an interactive inbox with Hide and Reply actions. Use when the user asks to see, review, moderate, or hide comments. Pass platform (required); optionally accountId and postId. Pass flaggedIds (comment ids you judged negative/spam) to highlight them and enable a one-click Hide-flagged button.
show_inbox
Show a side-by-side comparison of 2-5 entities across metrics. Use to compare how one post did on different platforms, two accounts, or two time periods. YOU supply the gathered metrics per entity (from get_post_analytics / get_follower_growth). The widget aligns the metric rows and highlights the per-row winner.
show_comparison
Show the user's connected social accounts and plan usage as an interactive panel. Use when the user asks to see their connected accounts, connections, or which platforms are linked.
show_connections
Render an interactive, faithful preview of a post draft across the selected platforms (per-platform mockups + live character counts; supports threads, image grids, carousels, PDF docs, 9:16 reels/shorts, and polls). READ-ONLY — it does NOT schedule or post. Use it after drafting a post, before the user confirms, so they can see exactly how it will look on each platform; then call create_post to actually schedule. Pass the same draft you'd give create_post.
show_post_preview
Show the user's posts as an interactive calendar: upcoming scheduled posts (with a Cancel action) and recently posted ones (with a View link). Use when the user asks to see their schedule, calendar, upcoming posts, past posts, or post history.
show_calendar
Show posts matching the user's monitored keywords (social listening) as an interactive feed with Reply actions and keyword chips. Use when the user asks what people are saying about a topic, to monitor keywords/mentions, or to see their listening feed. Supported on Bluesky, Threads and Mastodon. Pass platform (required); optionally q (a search term) and accountId. Omit q to use the first monitored keyword.
show_feeds
Show a ranked list of an account's posts by a metric as an interactive leaderboard. Use for 'best/top posts', 'most-liked', 'highest engagement', 'best videos last month', etc. Pass accountId (required) plus an optional sort (engagement|likes|impressions|date, default engagement), limit (default 10), and title.
show_leaderboard
Add or remove a saved feed keyword (social-listening watch list, max 20 per platform, shared with the Schedulala dashboard). Platforms: bluesky, threads, mastodon.
update_feed_keywords
Update a draft or scheduled API post (posted/processing posts cannot be edited). Send only the fields you want to change: content, platforms, mediaItems (replaces all media), scheduledFor, timezone, status (draft/scheduled), platformSettings (per-platform content via platformSettings.<platform>.content), or firstComments (replaces the auto-posted first comments; an EMPTY array clears them). Content is re-validated against platform rules; an invalid update is rejected. Changing scheduledFor on a live scheduled post re-dispatches it.
update_post
Host an image or video on Schedulala's CDN and get back a stable URL plus a media id for posting. Two modes (provide exactly one of url / data): 1. url — a publicly reachable http(s) source (a web image, an expiring link, a generated image URL). The server downloads and validates it. Limits: images up to 20 MB (jpeg, png, webp; gif up to 15 MB), videos up to 50 MB (mp4, mov, webm). For videos LARGER than 50 MB, skip this tool and pass the public URL directly in create_post's mediaItems; media is fetched at publish time. 2. data — base64-encoded file contents, LAST RESORT for tiny generated images only. When the user attached a photo or video in the conversation, or has a file on their device, attach_media is the right path: chat channels truncate large base64 payloads (a 6MB photo becomes a 6KB thumbnail), while attach_media opens an upload widget in the conversation and preserves full quality for images up to 20MB and videos up to 500MB. If the base64 exceeds ~8000 characters, do not send it inline - use begin_generated_media_upload instead. Then pass the returned url into create_post's mediaItems, e.g. mediaItems: [{ type: "image", url: "<returned url>" }]. The real file type is detected from the file contents. Re-hosted media expires after 30 days if unused.
upload_media
Validate post content against each platform's rules (character limits, media counts, required fields) WITHOUT creating or scheduling anything. Supports all 12 platforms including google-business (1500 chars; postType STANDARD/EVENT/OFFER with CTA buttons via platformSettings; exactly one image, no video). Returns per-platform valid/invalid with errors and warnings.
validate_post
Schedulala for Social Media ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Schedulala for Social Media's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.