create_scheduled_post
ChatGPTSchedule a post to one or more social networks via Metricool. Call get_brand_settings first to obtain blog_id and timezone. Use get_best_time_to_post_by_network if the user doesn't specify a time. Simple example — Twitter/X text post: blog_id="31927", networks=["twitter"], text="Hello world!", date="2026-04-13T17:00:00", timezone="Europe/Madrid" Character limits (do NOT split into threads or truncate — report the error): - X/Twitter: 280 chars max. - Bluesky: 300 chars max. Media requirements: - Instagram POST/REEL/STORY: requires media. REEL needs video. STORY has no text. - Pinterest: requires media + pinterest_board_id, pinterest_pin_title, pinterest_pin_link. - YouTube: requires media (video) + youtube_title. - TikTok: requires media + tiktok_title. - Facebook REEL: requires video. Facebook STORY: requires media. content_type applies to Instagram and Facebook only: POST (default), REEL, or STORY. The date must be in the future. DO NOT modify the user's text — just report any error.
get_analytics_available_metrics
ChatGPTRetrieves the list of available metrics for a specific social network and connector. Only active (non-deprecated) metrics are returned. Always call this BEFORE get_analytics_data_by_metrics to discover valid field IDs. IMPORTANT: Always provide BOTH network AND connector to keep the response small. If you need multiple connectors (e.g. evolution + posts), make separate calls. Never call without a connector — the full list is too large and wastes tokens. How to choose the right connector: - 'evolution': Account-level daily aggregates over time (followers, reach, impressions, engagement). Best for timelines, trends, and account performance summaries. - 'posts', 'reels', 'stories', 'videos': Individual content performance (per-post metrics like likes, comments, reach). Best for analyzing specific publications. Each content type is a separate connector — e.g. for Instagram use 'posts' for feed posts, 'reels' for Reels, 'stories' for Stories. - 'competitors': Competitor account-level data. - 'competitor posts', 'competitor reels', 'competitor videos': Competitor content-level data. - 'campaigns', 'ads': Ad platform campaign/ad-level data (Meta Ads, Google Ads, TikTok Ads). - 'country', 'age and gender', 'demographic': Audience demographics. - 'hashtags': Hashtag performance (Instagram). - 'keywords': Search keyword data (Google Business Profile, Google Ads). - 'traffic source', 'sources', 'pages': Website traffic breakdowns. Examples: - 'How did my Instagram grow this month?' → network=instagram, connector=evolution - 'Which of my Instagram posts performed best?' → network=instagram, connector=posts - 'Show me my Instagram Reels performance' → network=instagram, connector=reels - 'Compare followers across all my networks' → connector=evolution (no network filter) Each returned field has a fieldType ('dimension' or 'metric'): - Dimensions: descriptive attributes (date, post text, image URL, post URL, type). Include only the dimensions the user actually needs. - Metrics: numeric values that can be aggregated (likes, reach, engagement, comments). When the user asks for aggregated stats or rankings, request only the relevant metrics plus minimal dimensions (e.g. date). Do NOT request text content, images, or URLs unless the user wants to see individual post details. If the user's request is ambiguous, confirm which metrics matter before fetching data.
get_analytics_data_by_metrics
ChatGPTRetrieves analytical data for a specified Metricool account over a given date range, based on a selected list of metrics. Returns data grouped by compatible metric sets. IMPORTANT — field ID compatibility rules: Each field ID has 6 characters: 2-char network + 2-char connector + 2-digit index (e.g. FBPO01 = Facebook Posts metric 01, IGRE03 = Instagram Reels metric 03). - Evolution fields (connector = EV, e.g. FBEV01, IGEV17, TWEV03) CAN be combined across different networks in one call. They are ideal for timelines. - All other fields MUST share the same 4-char prefix (network+connector) in one call. For example: FBPO01 + FBPO03 is valid, but FBPO01 + IGPO01 is NOT. - If you need metrics from different non-evolution groups (e.g. Facebook Posts AND Instagram Reels), make separate calls for each group. The server auto-splits incompatible fields into separate API calls and returns results grouped, but for clarity always prefer sending compatible fields together. EFFICIENCY — select only the fields you need: - For summaries or rankings, request only metric fields (likes, reach, engagement) plus a date dimension. Do NOT include text content, image URLs, or post URLs. - Include content dimensions (text, image, URL) only when the user wants to see or identify specific posts. - For evolution data, request only the specific metrics relevant to the user's question — not all available evolution metrics.
get_best_time_to_post_by_network
ChatGPTGet the best time to post for a specific provider. Returns a list of hours and days with a score — the higher the value, the better the time. Try to cover at most 1 week. If you have a day but no hours, use the start and end of that day.
get_brand_settings
ChatGPTGet the list of brands from your Metricool account. Only Instagram, Facebook, Twitch, YouTube, Twitter, and Bluesky support competitors.
get_scheduled_posts
ChatGPTGet posts from the Metricool planner for a specific brand. Returns all posts in the date range: already published, pending, and drafts. Use this to check what is scheduled for a given week, review upcoming content, or see what was published from Metricool in a past period. Keep date ranges short (max 1 month). For content performance analytics use get_analytics_data_by_metrics instead.
update_scheduled_post
ChatGPTUpdate a scheduled post in Metricool. Get the post id and uuid from get_scheduled_posts first. Ask the user to confirm what will be changed before proceeding. Include the full original content in the request, modifying only the fields that change. The same media requirements as create_scheduled_post apply. The date cannot be in the past. Do not retry on error.