add_outlier_channel
ChatGPTAdd a creator's channel to the outlier database from a profile URL or @handle (YouTube, TikTok, Instagram) and pull in their 10 most recent videos, scored against that channel's own median. Also adds the channel to the user's competitor list. Not for video links — use fetch_outlier for those. Returns status: done with the channel when it was pulled in the last 24 hours; otherwise queued: true with an ingest_id — poll get_outlier_channel_ingest until done, then list_outliers with channels: [channel.id] (and duration_type: shorts for TikTok/Instagram) to see the videos. No AI breakdowns are generated.
create_feature_request
ChatGPTSubmit a feature request to the ViewsMax team on the user's behalf. Don't use this for plan, billing, or purchase requests; tell the user to manage their plan in the ViewsMax app instead. Each call submits a new request, so don't repeat a call that already succeeded.
create_offer
ChatGPTCreate an offer (a promotion to track). Requires offer_url; optional name and goals (conversion events with a conversion_url and value). Subject to the user's plan offer limit. Each call creates a new offer, so don't repeat a call that already succeeded.
create_post
ChatGPTCompose a social post for one or more platforms (tiktok, youtube, x, linkedin, threads, instagram, bluesky). Target either platforms[] or brand_id (from list_brands, posts to every connected account in the brand) — not both. status "draft" (default) saves without publishing, "posted" publishes immediately, "scheduled" publishes at scheduled_at. TikTok takes a video (with a url) or a photo slideshow (one or more image urls); YouTube requires a video with a path — both come from upload_media. Instagram needs an image or video url. TikTok photo slideshows accept options.tiktok.auto_add_music (boolean, default false) to let TikTok auto-add its recommended background music; there is no music option for video posts or for Instagram. Publishing/scheduling to TikTok requires options.tiktok.privacy_level (one of PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, SELF_ONLY) — there is no default; branded_content cannot be SELF_ONLY. Ask the user which TikTok privacy_level to use and wait for their answer; never choose it for them. Ask the user which YouTube privacy_status to use (public, unlisted, or private) and wait for their answer; without it the video is public. Caption character limits: tiktok: 2200, youtube: 5000, x: 280, linkedin: 3000, threads: 500, instagram: 2200, bluesky: 300. Publishing is asynchronous: check per-platform results with get_post. Each call creates a new post, so don't repeat a call that already succeeded.
create_tracking_link
ChatGPTCreate a tracking link for an offer, to place in a video description, email, social bio, etc. Placement is one of: video, email, x, linkedin, podcast, blog, website, tiktok, ad, instagram, beehiiv, other — attaching a youtube_video_id or beehiiv_post_id auto-sets the matching placement. Each call creates a new tracking link, so don't repeat a call that already succeeded.
delete_offer
ChatGPTDelete an offer and stop tracking it.
delete_post
ChatGPTDelete a post and its platform targets. Does not remove content already published to the platforms.
disconnect_account
ChatGPTDisconnect a social account by platform (e.g. x, youtube, tiktok). Fully disconnects it — nothing is left half-connected — and any pending posts targeting that platform will fail to publish.
fetch_outlier
ChatGPTPull a specific video into the outlier database from its URL so it can be analysed (get_outlier, generate_outlier_breakdown, save_outlier). If the video is already known it is returned immediately; otherwise ingestion is queued (queued: true) — poll get_outlier with the returned platform + video_id.
generate_outlier_breakdown
ChatGPTQueue an AI breakdown of an outlier video (transcript + analysis of the hook, structure and why it over-performed). Generation runs in the background and takes up to a couple of minutes — poll get_outlier_breakdown until status is completed. Re-running for a video that already has a breakdown returns the existing one instead of regenerating.
get_connect_url
ChatGPTGet the URL of the ViewsMax Connections page where the user can connect a social platform. The user must open the page in a browser and click Connect there — the OAuth approval happens on that page and cannot be completed inside this conversation.
get_offer
ChatGPTFetch one offer by id, with its tracking links and goals.
get_offer_stats
ChatGPTAggregated analytics across the user's offers: video views, clicks, calls booked, email signups, and sales revenue. Optional from/to window.
get_outlier
ChatGPTFetch one outlier video by platform + video id (as returned by list_outliers or fetch_outlier), including its channel, views, outlier score and engagement.
get_outlier_breakdown
ChatGPTRead the AI breakdown of an outlier video (hook, structure, why it worked, how to replicate it). status is none (never generated — call generate_outlier_breakdown), pending/processing (poll again), completed (payload holds the analysis) or failed (error).
get_outlier_channel_ingest
ChatGPTPoll a channel add started by add_outlier_channel. status is queued, processing, done (then channel is set and videos_added says how many videos landed — use channel.id in list_outliers channels), or failed (then error explains why). Pulls take ~10-60 seconds; poll every 5-10 seconds.
get_post
ChatGPTFetch one post by id, including each platform target's publish status (pending, publishing, published, failed) and error message.
get_stats_timeseries
ChatGPTDaily time-series of clicks and attributed revenue (one bucket per day, gaps zero-filled). Defaults to the last 28 days; filter with from/to and optionally a single offer via event_id.
list_brands
ChatGPTList the user's brands — named groups of connected accounts (e.g. a brand holding a TikTok, an X and a YouTube account). Pass a brand id to create_post as brand_id to post to every connected account in the brand at once. Accounts with a status other than "connected" are skipped when posting.
list_connected_accounts
ChatGPTList every social account the user has connected, plus a Beehiiv newsletter connection if there is one — a platform can appear more than once when several accounts are connected on it. Each entry carries social_account_id or connection_id (matching list_brands) plus its store. Posts can only publish to connected platforms; use get_connect_url for anything missing. Beehiiv is connected via an API key on the Connections page, not get_connect_url, and is used for newsletter reach, not posting.
list_offers
ChatGPTList the user's offers (tracked promotions) with their tracking links, goals, and per-offer click/conversion stats. Optional from/to date filter. Returns one page at a time (25 by default); when has_more is true, ask for the next page.
list_outliers
ChatGPTBrowse outlier videos — content that massively over-performed its channel's average (outlier_score = views ÷ channel average views) across YouTube, TikTok and Instagram. Without query this is the curated/featured feed; with query it returns title matches already in the database. If the response status is "queued" or "in_progress" no scrape has finished for that query yet — call search_outliers to start one, then re-run this tool. Filter by platform, score, views, subscribers, publish date, duration (long/shorts), channel ids or ISO country codes. Paginated (per_page ≤ 50).
list_posts
ChatGPTList the user's posts, newest first, with per-platform publish status. Filter by status (draft, scheduled, posted) and/or a scheduled_at date window (from/to, ISO-8601). Returns one page at a time (25 by default); when has_more is true, ask for the next page.
list_saved_outliers
ChatGPTThe user's saved-outliers library (videos they bookmarked with save_outlier), newest first, with tags and the video snapshot taken when saved. Filter by a title/channel query, tag names, platforms, or creator name. Returns one page at a time (25 by default); when has_more is true, ask for the next page.
remove_saved_outlier
ChatGPTRemove a saved video from the user's outlier library by its saved id (from list_saved_outliers / save_outlier). The video itself stays in the outlier database.
save_outlier
ChatGPTBookmark an outlier video into the user's library, optionally with tags (created on demand). Saving the same video again replaces its tags. The video must already be in the outlier database (list_outliers / fetch_outlier).
search_outliers
ChatGPTStart a background YouTube search (YouTube Data API) for outlier videos matching a keyword/topic. Returns immediately with status "queued"; results land in the shared outlier database over the next minute or two — poll list_outliers with the same query until its status is "done". Use exact_match to require the whole phrase. This search covers YouTube only: for TikTok and Instagram, add a single video by its link with fetch_outlier, or add a creator's channel with add_outlier_channel to pull in their recent videos.
update_offer
ChatGPTUpdate an offer's name, offer_url, goals, or links.
update_post
ChatGPTEdit a draft or scheduled post: caption, media, platforms, schedule, or status. Setting status to "posted" publishes immediately. Posts that have already been published cannot be edited. Ask the user which TikTok privacy_level to use and wait for their answer; never choose it for them. Ask the user which YouTube privacy_status to use (public, unlisted, or private) and wait for their answer; without it the video is public. Caption character limits: tiktok: 2200, youtube: 5000, x: 280, linkedin: 3000, threads: 500, instagram: 2200, bluesky: 300.
upload_media
ChatGPTDownload a file from a URL and host it on ViewsMax storage for use in posts. Returns a media entry ({type, url, path}) to pass to create_post. Supports jpeg/png/webp/gif images and mp4/mov video. Each call stores a new copy of the file, so don't repeat a call that already succeeded.
add_outlier_channel
Claudecreate_feature_request
Claudecreate_offer
Claudecreate_post
Claudecreate_tracking_link
Claudedelete_offer
Claudedelete_post
Claudedisconnect_account
Claudefetch_outlier
Claudegenerate_outlier_breakdown
Claudeget_connect_url
Claudeget_offer
Claudeget_offer_stats
Claudeget_outlier
Claudeget_outlier_breakdown
Claudeget_outlier_channel_ingest
Claudeget_post
Claudeget_stats_timeseries
Claudelist_brands
Claudelist_connected_accounts
Claudelist_offers
Claudelist_outliers
Claudelist_posts
Claudelist_saved_outliers
Clauderemove_saved_outlier
Claudesave_outlier
Claudesearch_outliers
Claudeupdate_offer
Claudeupdate_post
Claudeupload_media
Claude