# Vibiz > Vibiz is a no-code AI business and marketing platform. You describe your > business and Vibiz generates ad creatives, AI product photography and UGC, > builds marketing funnels and landing pages, schedules and publishes social > posts, launches Meta ads and handles inbox conversations. An inline AI > agent operates the whole workspace, so a small business gets a full growth > stack without a team, an agency, or code. ## Features - **AI ad creatives**: generate on-brand Meta-ready ad images from a plain description, brand assets, or a product photo. https://www.vibiz.ai/explore - **Recreate ad creatives**: remix existing image ads, product shots, UGC clips and style references into fresh creatives. https://www.vibiz.ai/recreate-ad-creatives - **Product Studio**: turn one product photo into on-model, UGC and catalog shots, with virtual try-on, ghost mannequin and flat lays up to 4K. https://www.vibiz.ai/product-studio - **Funnels and landing pages**: generate complete, publishable marketing funnels and websites with checkout built in. - **Social publishing**: schedule and publish posts across Instagram, Facebook, LinkedIn, TikTok, X and more, with engagement analytics. - **Meta ads**: launch and manage ad campaigns end-to-end from the workspace. - **Workflow automation**: describe a workflow in plain English and Vibiz runs it across Slack, WhatsApp, HubSpot, Salesforce, Google Sheets and 3,000+ tools. https://www.vibiz.ai/automate-workflows - **Agency mode**: run client marketing in one AI workspace with per-client workspaces and WhatsApp conversations. https://www.vibiz.ai/marketing-agency - **Shopify**: connect a store and turn products and sales into ads, funnels and content automatically. https://www.vibiz.ai/shopify ## Key pages - What is Vibiz: https://www.vibiz.ai/what-is-vibiz - Pricing: https://www.vibiz.ai/pricing - Explore community creatives and websites: https://www.vibiz.ai/explore - Developer docs (MCP): https://www.vibiz.ai/docs - AI training data policy: https://www.vibiz.ai/ai-training-data # Vibiz MCP — Developer Reference > The Vibiz Model Context Protocol server lets any AI client (Claude Desktop, > Claude Code, Cursor, custom agents) generate ad creatives, manage social > posts, launch campaigns, and read analytics directly from a Vibiz workspace. Server URL: `https://www.vibiz.ai/api/mcp` Protocol: Model Context Protocol, JSON-RPC 2.0 (MCP spec 2025-06-18) ## Authentication There are two authentication paths. **Prefer OAuth.** ### OAuth (recommended) The MCP endpoint advertises a WorkOS-issued OAuth authorization server via `/.well-known/oauth-protected-resource`. Compatible clients discover this automatically — when a client calls `/api/mcp` without a Bearer token, it gets a 401 with a `WWW-Authenticate` header pointing at the auth server, opens a browser to vibiz.ai, signs the user in, exchanges the code for a JWT, and uses that JWT as the Bearer for subsequent calls. Refresh, revocation, and scope are handled by the auth server. ### Static API key (manual) For headless agents and CI, a workspace user can mint a token from `https://vibiz.ai//mcp/setup`. The token is sent as `Authorization: Bearer ` on each request. Tokens are scoped to a single workspace group and optionally pinned to a single vibiz (org). ## Quickstart Point your MCP client at `https://www.vibiz.ai/api/mcp`. - **Claude Code (recommended)**: `npx @vibiz/vibiz` — installs the official plugin, registers the marketplace, and wires up the MCP connection. Then inside Claude Code: `/mcp` → pick `vibiz` → `Authenticate` → `/vibiz:status` to verify. The plugin ships with five slash commands (`/vibiz:status`, `/vibiz:onboard`, `/vibiz:post`, `/vibiz:ad`, `/vibiz:launch`), a `vibiz-marketer` subagent, project auto-match against the user's vibizes, and a post-commit nudge that suggests `/vibiz:post` after non-trivial commits. Manual fallback inside Claude Code: `/plugin marketplace add Vibiz-ai/vibiz-claude-plugin` then `/plugin install vibiz@vibiz`. Repo: https://github.com/Vibiz-ai/vibiz-claude-plugin - **Claude Desktop**: Settings → Connectors → Add custom connector → paste URL. - **Cursor**: Settings → MCP → Add new MCP server → paste URL. The first tool call triggers the OAuth handshake. Sign in with your Vibiz account and approve the connection. For static-key clients, add the Bearer header in the client config: ```json { "mcpServers": { "vibiz": { "url": "https://www.vibiz.ai/api/mcp", "headers": { "Authorization": "Bearer YOUR_VIBIZ_API_KEY" } } } } ``` Verify with curl: ```bash curl https://www.vibiz.ai/api/mcp \ -H "Authorization: Bearer YOUR_VIBIZ_API_KEY" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' ``` ## Long-running tools Image, video, ICP, offer, and funnel generators are async. They return `{ runId, statusUrl }` immediately. Clients can poll `statusUrl` or subscribe to the run via Trigger.dev's public-token API for realtime progress + final output. Sync tools (branding read, email send, analytics, ad campaign reads) return the result directly. ## What you can do - Generate ad images, UGC videos, and full landing-page funnels - Schedule and publish social posts across Instagram, Facebook, LinkedIn, TikTok, X, and others - Launch and manage Meta ads campaigns end-to-end - Read engagement analytics and top-performing posts - Read and reply to social-media inbox conversations - Send branded transactional emails on behalf of the workspace ## Tools (161 total) ### Generation - **vibiz_generate_image** — Generate ONE static ad IMAGE (no motion, no sound). COST: 1 credit. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `prompt` (string) (required) — Describe the STATIC IMAGE to generate. Do not structure as storyboard/frames. - `platform` (string) — Target platform. MUST be one of the listed values. Common mappings: TikTok → "tiktok_story", Instagram feed → "instagram_portrait", Instagram story → "instagram_story", Facebook → "facebook_feed", LinkedIn → "linkedin". Default: "instagram_portrait". - `aspectRatio` (string) — Optional. If omitted, derived from `platform`. 9:16 = vertical, 1:1 = square, 16:9 = landscape. - `style` (string) — Optional per-category style key. Omit unless the user picked or asked for a specific style. Use hero-shot for product-first studio hero, lifestyle-shot for planned real-world product context, ugc for social-native creator/phone-camera product shots, hyperrealistic for cinematic photographic realism, saas-demo for product UI, founder-portrait for trust-building, infographic for diagrams. - `useBrand` (boolean) — Apply the workspace brand kit (colors, fonts, logo, tone). Default true. Set false only if the user explicitly wants a generic look. - `allowPartialBrand` (boolean) — Draft override. Default false. Set true only when the user explicitly asks to generate before onboarding/branding/product setup is ready; the result may be off-brand. - `imageCount` (integer) — Number of VARIATIONS of the SAME image to generate (1-4). Default 1. NOT for making a video storyboard, use `vibiz_generate_ugc` for motion content. - `referenceImages` (array) — Optional public image URLs to use as visual references (style, subject, product photos, screenshots the user attached in chat). The generator treats these as inspiration alongside the workspace brand kit; it does NOT edit them. For modifying an existing image, use `vibiz_creatives_edit` instead. - `offerId` (string) — Offer/product id this generation is for. Get it from `vibiz_list_offers[].id`. When set, the prompt builder grounds the image to that product (title, price, image, source URL). REQUIRED when the user said 'my product' / 'this offer' — call `vibiz_list_offers` first and pass the matching id. If the workspace has multiple offers and the user didn't disambiguate, ASK them which one before calling this tool. - **vibiz_generate_carousel** — Generate a multi-slide marketing CAROUSEL (hook → story → CTA) for Instagram, LinkedIn, or similar slide-based placements. Each slide is its own image; they ship as one cohesive set. COST: ~1 credit per slide. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `prompt` (string) (required) — What the carousel is about: topic, angle, key message. The generator writes per-slide copy — you describe the story, not the individual slides. - `slideCount` (integer) — Number of slides (2-10). Default 3. Higher slide counts cost more credits (1 per slide). - `platform` (string) — Target platform. Default "instagram_story" (9:16). Drives aspect ratio of each slide. - `useBrand` (boolean) — Apply workspace brand kit (colors, fonts, logo, tone). Default true. - `allowPartialBrand` (boolean) — Draft override. Default false. Set true only when the user explicitly asks to generate before onboarding/branding/product setup is ready; the result may be off-brand. - `offerId` (string) — Offer/product id this carousel is about. Get it from `vibiz_list_offers[].id`. When set, slide copy + visuals are grounded to that product. REQUIRED when the user said 'my product' / 'a carousel about [thing I sell]' — call `vibiz_list_offers` first and ASK if multiple offers could match. - **vibiz_generate_product_shot** — Generate ONE ecommerce Product Studio image from a real product reference. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `productId` (string) — Optional catalog offer/product id, usually from `vibiz_list_offers`. - `productTitle` (string) (required) — Catalog product name/title. - `productImageUrl` (string) (required) — Public URL for the exact product image to preserve. This is the primary visual reference. - `productDescription` (string) — Optional catalog description or material details for prompt grounding. - `vendor` (string) — Optional vendor/brand name for metadata. - `productType` (string) — Optional product category such as t-shirt, dress, earrings, handbag. - `workspaceVertical` (string) — Optional ecommerce workspace niche or onboarding vertical such as apparel, beauty, food-beverage, home-goods, electronics, jewelry, pets, automotive, outdoor-gear, tools-industrial, or health-wellness. Helps choose category-appropriate product-shot context when product metadata is broad. - `preset` (string) (required) — Shot preset. Use PRODUCT_STUDIO_PRESET_IDS enum. Key groups include UGC camera-roll, shared commerce hero/flat/tabletop/model, apparel packshot/ghost/on-model/model/bottoms, footwear, food/beverage, home goods, electronics, beauty, health/wellness, tools/industrial, pet, automotive/outdoor gear, accessories, and jewelry. - `talentPresetId` (string) — Optional reusable Product Studio talent/cast preset for shots with a model or UGC creator. Available ids: mila, valentina, yuna, kira, lola, nia, sienna, aya, camila, isla, kai, minho, jalen, luca, rio_male. Omit for auto casting or pure product-only shots. - `aspectRatio` (string) — Optional. Default comes from the selected preset. - `resolution` (string) — Optional. Default 2K. 4K costs more credits and is intended for final assets. - `userNotes` (string) — Optional refinement notes. Keep product identity and ecommerce accuracy more important than these notes. - `backReferenceImageUrl` (string) — Optional second public reference URL for true back-view generation. Without it, on_model_back infers a conservative plain back. - `allowPartialBrand` (boolean) — Draft override. Default false. Set true only when the user explicitly asks to generate before onboarding/branding/product setup is ready; the result may be off-brand. - **vibiz_generate_product_shot_bundle** — Generate a full ecommerce Product Studio bundle from one real product reference. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `productId` (string) — Optional catalog offer/product id, usually from `vibiz_list_offers`. - `productTitle` (string) (required) — Catalog product name/title. - `productImageUrl` (string) (required) — Public URL for the exact product image to preserve. This is the primary visual reference. - `productDescription` (string) — Optional catalog description or material details for prompt grounding. - `vendor` (string) — Optional vendor/brand name for metadata. - `productType` (string) — Optional product category such as t-shirt, dress, earrings, handbag. - `workspaceVertical` (string) — Optional ecommerce niche. Use this when product metadata is broad. Supported examples: apparel, jewelry, beauty, food-beverage, home-goods, electronics, footwear, health-wellness, tools-industrial, pets, automotive, outdoor-gear. - `bundleId` (string) (required) — `catalog_core` for PDP/catalog coverage, `social_kit` for UGC/social coverage, or `detail_pack` for macro/detail coverage. - `talentPresetId` (string) — Optional reusable Product Studio talent/cast preset for human/model/UGC shots in the bundle. Available ids: mila, valentina, yuna, kira, lola, nia, sienna, aya, camila, isla, kai, minho, jalen, luca, rio_male. Omit for auto casting; product-only shots will never receive a talent preset. - `resolution` (string) — Optional quality applied to every bundle output. Omit to use each preset default. - `userNotes` (string) — Optional refinement notes applied to every shot. Product identity and ecommerce accuracy remain higher priority. - `backReferenceImageUrl` (string) — Optional second public reference URL for true back-view generation when the bundle includes back-view shots. - `allowPartialBrand` (boolean) — Draft override. Default false. Set true only when the user explicitly asks to generate before onboarding/branding/product setup is ready; the result may be off-brand. - **vibiz_generate_ugc** — Generate a UGC-style VIDEO (motion + sound). A single rendered clip, NOT a sequence of images. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `productName` (string) (required) — Short product / brand / service name the video is about (e.g. "Vibiz", "Acme Coffee Subscription"). Required. - `productDetails` (string) (required) — Paragraph describing the product, target audience, hooks, differentiators, and any tone/style notes. Required. Do NOT send a storyboard — describe the product + why it matters; the task writes its own script. - `styleId` (string) — Named Omni Flash style preset (see `vibiz_list_ugc_styles`). Sets the format + opening hook. Prefer this over `videoStyle`. - `videoStyle` (string) — Legacy talking-head style (ignored when `styleId` is set). talking_head is the default face-led phone-shot look. - `platform` (string) — Target short-form platform. Drives aspect ratio + pacing. Default "tiktok". - `duration` (string) — Video length. Default "8s". - `creatorGender` (string) — Presented gender of the AI creator / talking head. Default "female". - `captions` (boolean) — Burn captions onto the video via ZapCap. Default true. - `captionStyle` (string) — Caption look. Default "tiktok". - `hook` (string) — Optional opening hook line (max 200 chars). If omitted, the task generates one from productDetails. - `referenceImageUrl` (string) — Optional product, brand, or style reference image URL. Use an offer/product image here when the clip should preserve a specific product. - `offerId` (string) — Offer/product id this UGC clip is for. Get it from `vibiz_list_offers[].id`. When set, the chat agent's chosen offer is recorded on the resulting ad row so downstream tooling can reuse it. REQUIRED when the user said 'a UGC about my product' / 'spokesperson video for [thing I sell]' — call `vibiz_list_offers` first and ASK if multiple plausible offers exist. - `allowPartialBrand` (boolean) — Draft override. Default false. Set true only when the user explicitly asks to generate before onboarding/branding/product setup is ready; the result may be off-brand. - `icpId` (string) — Optional selected ICP/customer profile id. Use when the user names a target audience or when an offer has a clear linked ICP; it shapes the UGC hook and creator angle. - `personaId` (string) — Optional persona id within the selected ICP. Use only when the user explicitly selects a persona. - `lighting` (string) — Per-call lighting override for director-script intent. Default 'auto'. - `mood` (string) — Per-call mood override for director-script intent. - `cameraAngle` (string) — Per-call camera angle override (observable on ad row). - `brandIntensity` (string) — Brand kit assertiveness (observable on ad row). - `logoMode` (string) — Logo stamping intent (observable on ad row). - `composition` (string) — Composition intent (observable on ad row). - **vibiz_generate_ad_video** — Generate a polished marketing VIDEO AD directly with Omni Flash from a rich director script. Output lands in the creatives gallery as a video ad. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `prompt` (string) (required) — Describe the full ad as ONE scene: subject, setting, brand framing, movement, on-screen copy. Do NOT provide frame-by-frame storyboards. - `platform` (string) — Target platform. Mapped to a video aspect ratio server-side (9:16 for story platforms, 16:9 otherwise). Default: "facebook_feed". - `videoDuration` (string) — Video length. Default "4s". - `videoResolution` (string) — Default "720p". - `generateAudio` (boolean) — Default true. - `useBrand` (boolean) — Apply workspace brand kit. Default true. - `allowPartialBrand` (boolean) — Draft override. Default false. Set true only when the user explicitly asks to generate before onboarding/branding/product setup is ready; the result may be off-brand. - `referenceImages` (array) — Optional reference images. [0] is the primary reference, the rest are additional inputs. - `offerId` (string) — Offer/product id this video is for. Get it from `vibiz_list_offers[].id`. When set, the director script is grounded to the product's title/details/image. REQUIRED when the user said 'a video ad for my product' / 'video for this offer' — call `vibiz_list_offers` first and ASK if multiple plausible offers exist. - `lighting` (string) — Per-call lighting override for director-script intent. Default 'auto'. Map user prose: 'dramatic' → dramatic, 'golden-hour' → golden-hour, 'softbox' → studio. - `mood` (string) — Per-call mood override. Map: 'corporate' → professional, 'luxury' → premium, 'clean' → minimal. - `cameraAngle` (string) — Per-call camera angle override. - `brandIntensity` (string) — How loudly the workspace brand kit asserts itself. - `logoMode` (string) — Whether the director script should include visible logo treatment. - `composition` (string) — Layout direction for the director script. - **vibiz_generate_funnel** — Generate a marketing funnel / landing page AND automatically deploy it as a live website on Vercel. End-to-end: writes the HTML/content, provisions the repo, deploys — one call. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `prompt` (string) (required) — Describe the landing page: what it sells, the hero message, the primary CTA, target audience, tone. The generator writes its own copy — you just describe the goal. Max 500 chars stored. - `qualification` (boolean) — Optional. Set true to build a lead-qualification funnel (multi-step questionnaire + paywall/gating) instead of a single landing page. Default: false. - `creativeId` (string) — Optional campaign_ad id to use as the hero image/reference for the page. - `creativeImageUrl` (string) — Optional image URL to embed as the hero visual (alternative to creativeId). - `allowPartialBrand` (boolean) — Draft override. Default false. Set true only when the user explicitly asks to generate before onboarding/branding/product setup is ready; the result may be off-brand. - **vibiz_generate_qualification_funnel** — Rewrite an EXISTING landing page into a lead-qualification funnel (multi-step form / paywall / gating flow) and auto-deploy the new version. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `funnelId` (string) (required) — Id of the existing funnel to rewrite. Fetch from the user's workspace (recent funnel) or ask them to build one first via `vibiz_generate_funnel`. - `prompt` (string) (required) — Describe the qualification/gating flow: what fields to collect, what the paywall gates, what questions to ask, where the CTA leads. The generator writes its own HTML — describe the goal. - **vibiz_generate_icps** — Create a single Ideal Customer Profile (ICP / persona) in a vibiz. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `name` (string) (required) — Short persona name (e.g. "SaaS Founder", "Busy Parent", "Gen-Z Gamer"). Required. - `title` (string) — Optional job title / role label that appears under the name (e.g. "Marketing Manager at a 50-person B2B SaaS"). - `description` (string) — Optional one-paragraph summary of who they are, what motivates them, and how the brand fits into their life. - `demographics` (object) — Optional demographic block. All fields free-form strings. - `painPoints` (array) — Optional list of pain points / frustrations. - `goals` (array) — Optional list of goals / desired outcomes. - `channels` (array) — Optional list of channels where this persona spends time (e.g. "TikTok", "LinkedIn", "Reddit r/SaaS"). - **vibiz_generate_offers** — Create a single marketing OFFER (lead magnet, promotion, deal) in a vibiz. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `title` (string) (required) — Short, punchy offer name (max ~100 chars). E.g. "50% off everything", "Free 14-day trial", "$99 starter package". - `description` (string) — Optional details about the offer — terms, what is included, value prop. Max ~500 chars. - `priceCents` (integer) — Stripe amount in the currency minor unit (9900 = $99.00 USD, 500 = ¥500 JPY). Omit for free offers / lead magnets. - `priceCurrency` (string) — ISO currency code. Default "USD". - `type` (string) — Business model type. Default "generic" if unsure. - `iconEmoji` (string) — Single emoji that represents the offer visually. E.g. "🎁", "💰", "🚀". ### Workspace - **vibiz_workspace_generate_icps_pipeline** — Bulk-discover Ideal Customer Profiles (ICPs / personas) from the workspace branding. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - **vibiz_workspace_generate_offers_pipeline** — Bulk-discover marketing offers from the workspace branding / website. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - **vibiz_workspace_generate_knowledge_pipeline** — Generate the workspace's business knowledge-base summary. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. ### Analytics - **vibiz_analytics_top_posts** — Pull the vibiz's social posts WITH their analytics — to review or analyze performance. Includes ORGANIC posts the user published directly on the platform (not just ones made in Vibiz); Zernio syncs all posts from the connected account. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `platform` (string) — Filter by platform (facebook, instagram, linkedin, tiktok, etc.). Omit for all. - `sortBy` (string) — Metric to sort by. Default: engagement. - `fromDate` (string) — Start date (YYYY-MM-DD). Default: 90 days ago. - `toDate` (string) — End date (YYYY-MM-DD). Default: today. - `limit` (number) — Max posts to return (1-100, default 10). - **vibiz_analytics_daily_metrics** — Get aggregated daily social media metrics with per-platform breakdown. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `platform` (string) — Filter to one platform. Omit for cross-platform aggregate. - `fromDate` (string) — Start date (YYYY-MM-DD). Default: 30 days ago. - `toDate` (string) — End date (YYYY-MM-DD). Default: today. - **vibiz_analytics_best_time** — Find the best times to post on social media based on historical engagement data. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `platform` (string) — Platform to analyze. Omit for all platforms. ### Inbox - **vibiz_inbox_conversations** — List recent DM conversations across the social accounts connected to a vibiz. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `platform` (string) — Filter by platform (instagram, facebook, twitter, etc.). - `limit` (number) — Max conversations to return (1-50, default 10). - **vibiz_inbox_read_conversation** — Read the full message thread of a DM conversation (the back-and-forth), so you have context before replying. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `conversationId` (string) (required) — The conversation to read. From `vibiz_inbox_conversations`. - **vibiz_inbox_comments** — List posts that have received comments across the social accounts connected to a vibiz. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `platform` (string) — Filter by platform. - `sortBy` (string) — Sort by date or comment count. - `limit` (number) — Max posts to return (1-50, default 10). - **vibiz_inbox_get_comments** — GET the actual comments on a post — read each comment's text, author, and id. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `postId` (string) (required) — The post to read comments from. From `vibiz_inbox_comments`. - `accountId` (string) (required) — The account that owns the post (from `vibiz_inbox_comments`). Must belong to the target vibiz. - **vibiz_inbox_reply_comment** — Reply to a comment on a social media post in a vibiz. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `postId` (string) (required) — The post containing the comment. - `commentId` (string) (required) — The comment to reply to. - `accountId` (string) (required) — The social account to reply from. Must belong to the target vibiz. - `message` (string) (required) — Reply message text. - **vibiz_inbox_reply_private** — Send a PRIVATE DM to the AUTHOR of a comment (Instagram + Facebook only) — the ManyChat move: pair it with `vibiz_inbox_reply_comment` to also reply publicly. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `postId` (string) (required) — The post containing the comment. From `vibiz_inbox_comments`. - `commentId` (string) (required) — The comment whose author to DM. From `vibiz_inbox_get_comments`. - `accountId` (string) (required) — The account to send from. Must belong to the target vibiz. - `message` (string) (required) — The private DM text. - **vibiz_inbox_reply_comments_bulk** — Reply to MANY comments on a post in ONE call — for "reply to all the comments on this post". - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `postId` (string) (required) — The post whose comments to reply to. From `vibiz_inbox_comments`. - `accountId` (string) (required) — The account to reply from. Must belong to the target vibiz. - `replies` (array) (required) — One entry per comment (max 50). Each message should be unique + contextual. - **vibiz_inbox_create_comment_automation** — Set up a STANDING automation that auto-replies to comments — including FUTURE ones — on Instagram/Facebook. This is the real "reply to all comments on this post" (the bulk tool only hits comments that exist now; this fires on every new comment server-side). - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `accountId` (string) (required) — Instagram/Facebook account to run the automation on. Must belong to the target vibiz. - `name` (string) (required) — A label for the automation. - `dmMessage` (string) (required) — The DM auto-sent to each commenter. - `commentReply` (string) — Optional public reply posted on the comment itself. - `keywords` (array) — Trigger keywords. OMIT or empty = fires on ANY comment (reply to all). - `matchMode` (string) — How keywords match. Default "contains". - `platformPostId` (string) — Scope to one post (platform media id, from `vibiz_inbox_comments`). Omit for account-wide. - `trigger` (string) — Default "comment". "story_reply" fires on IG story replies. - **vibiz_inbox_list_comment_automations** — List the standing comment-to-DM automations on a vibiz (with their stats). - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - **vibiz_inbox_delete_comment_automation** — Delete (turn off) a standing comment-to-DM automation. Get its id from `vibiz_inbox_list_comment_automations`. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `automationId` (string) (required) — The automation to delete. From `vibiz_inbox_list_comment_automations`. - **vibiz_inbox_set_comment_automation_active** — Launch (resume) or STOP (pause) a comment-to-DM automation, without deleting it. Get the id from `vibiz_inbox_list_comment_automations`. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `automationId` (string) (required) — The automation to toggle. From `vibiz_inbox_list_comment_automations`. - `active` (boolean) (required) — true = launch/resume, false = stop/pause. - **vibiz_inbox_send_dm** — Send a direct message in an existing conversation on a vibiz. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `conversationId` (string) (required) — The conversation to send in. - `accountId` (string) (required) — The social account to send from. Must belong to the target vibiz. - `message` (string) (required) — Message text. ### Social - **vibiz_social_list_accounts** — List connected social media accounts for a vibiz. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - **vibiz_social_list_posts** — List social media posts for a vibiz. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `status` (string) — Filter by status. - `platform` (string) — Filter by platform. - `limit` (number) — Max posts (1-100, default 10). - **vibiz_social_publish** — Publish or schedule a social media post to one or more platforms. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `content` (string) (required) — Post text. - `platforms` (array) (required) — Platforms + account IDs. - `mediaUrls` (array) — Media URLs to attach. - `scheduledFor` (string) — ISO datetime to schedule. Omit for immediate. - `hashtags` (array) — Hashtags. ### Meta ads - **vibiz_meta_ads_campaigns_list** — List Meta (Facebook + Instagram) ad campaigns connected to a vibiz. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `platform` (string) - `status` (string) - `limit` (integer) — Max campaigns to return (default 20). - **vibiz_meta_ads_campaigns_get_tree** — Return the full Campaign → Ad Set → Ad hierarchy with rolled-up metrics at every level. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `platform` (string) - `status` (string) - `fromDate` (string) - `toDate` (string) - `limit` (integer) - **vibiz_meta_ads_campaigns_set_status** — Pause or resume a Meta ad campaign. Status transitions only — does NOT delete or duplicate. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `campaignId` (string) (required) — EXPECTS: Meta platform campaign id (16-18 digit numeric, e.g. "23859876543210000"). Get it from `vibiz_meta_ads_campaigns_list[].platformCampaignId`. NOT an internal Mongo ObjectId; NOT a Vibiz campaign UUID. - `status` (string) (required) - `platform` (string) (required) - **vibiz_meta_ads_campaigns_bulk_set_status** — Pause or resume up to 50 Meta campaigns in a single call. Per-campaign result; one bad row does not fail the batch. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `status` (string) (required) - `campaigns` (array) (required) - **vibiz_meta_ads_campaigns_duplicate** — Duplicate a Meta campaign (deep copy of all ad sets + ads). The copy starts PAUSED by default. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `campaignId` (string) (required) — EXPECTS: Meta platform campaign id (16-18 digit numeric). Get it from `vibiz_meta_ads_campaigns_list[].platformCampaignId`. - `platform` (string) (required) - `deepCopy` (boolean) — Default true. - `statusOption` (string) — Default `PAUSED`. - `startTime` (string) - `endTime` (string) - `renameStrategy` (string) - `renamePrefix` (string) - `renameSuffix` (string) - `syncAfter` (boolean) — Default true. - **vibiz_meta_ads_campaigns_delete** — Delete a Meta campaign — cascades to ad sets + ads on the platform; locally marks Ad rows as `cancelled` (preserves history). - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `campaignId` (string) (required) — EXPECTS: Meta platform campaign id (16-18 digit numeric). Get it from `vibiz_meta_ads_campaigns_list[].platformCampaignId`. - `platform` (string) (required) - **vibiz_meta_ads_creatives_list** — List individual Meta ads (the leaf level — below campaigns and ad sets) with metrics. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `platform` (string) - `status` (string) - `campaignId` (string) — EXPECTS: Meta platform campaign id (16-18 digit numeric, e.g. "23859876543210000"). NOT an internal campaign id. Get it from `vibiz_meta_ads_campaigns_list[].platformCampaignId`. - `fromDate` (string) — YYYY-MM-DD - `toDate` (string) — YYYY-MM-DD - `limit` (integer) - **vibiz_meta_ads_creatives_get** — Get details of a single ad by its internal ad id. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `adId` (string) (required) — Internal ad id — a 24-char hex Mongo ObjectId (e.g. "65a3f0c1d2e4b8e9f4a1c2d3"). You get this from `vibiz_meta_ads_creatives_list[].id`. NOT the Meta platform numeric id, NOT a Vibiz campaign_ad UUID. - **vibiz_meta_ads_creatives_get_analytics** — Get analytics for a single ad — summary + daily time series + optional Meta breakdowns (age, gender, country, etc.). - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `adId` (string) (required) — Internal ad id — a 24-char hex Mongo ObjectId (e.g. "65a3f0c1d2e4b8e9f4a1c2d3"). You get this from `vibiz_meta_ads_creatives_list[].id`. NOT the Meta platform numeric id, NOT a Vibiz campaign_ad UUID. - `fromDate` (string) — YYYY-MM-DD - `toDate` (string) — YYYY-MM-DD - `breakdowns` (array) — Optional dimension keys (Meta: age | gender | country | publisher_platform | device_platform | region). Joined into a comma-separated 'breakdowns' query parameter server-side. - **vibiz_meta_ads_creatives_set_status** — Pause or resume a single Meta ad creative. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `adId` (string) (required) — Internal ad id — a 24-char hex Mongo ObjectId (e.g. "65a3f0c1d2e4b8e9f4a1c2d3"). You get this from `vibiz_meta_ads_creatives_list[].id`. NOT the Meta platform numeric id, NOT a Vibiz campaign_ad UUID. - `status` (string) (required) - **vibiz_meta_ads_creatives_delete** — Cancel a single ad creative. Marks the platform ad as cancelled and updates the local row to `cancelled` (preserves history). - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `adId` (string) (required) — Internal ad id — a 24-char hex Mongo ObjectId (e.g. "65a3f0c1d2e4b8e9f4a1c2d3"). You get this from `vibiz_meta_ads_creatives_list[].id`. NOT the Meta platform numeric id, NOT a Vibiz campaign_ad UUID. - **vibiz_meta_ads_launch_boost_post** — Boost an existing organic Facebook or Instagram post as a paid ad. Cheaper than creating from scratch — reuses the post creative. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `postId` (string) — EXPECTS: internal post id (24-char hex Mongo ObjectId, e.g. "65a3f0c1d2e4b8e9f4a1c2d3"). Get it from `vibiz_social_publish` response or `vibiz_social_list_posts[].id`. Provide ONE of `postId` or `platformPostId`. - `platformPostId` (string) — EXPECTS: Meta platform post id (e.g. Instagram media id "12345_67890" or Facebook "123_456"). Get it from `vibiz_social_publish` response.platforms[].platformPostId or by polling the post once it has been published on the platform. Provide ONE of `postId` or `platformPostId`. - `accountId` (string) (required) — EXPECTS: social account id (24-char hex Mongo ObjectId) of the post owner. Get it from `vibiz_social_list_accounts[].id`. NOT the Meta ad account `act_…`. - `adAccountId` (string) (required) — EXPECTS: Meta platform ad account id (string starting with "act_", e.g. "act_1234567890"). Get it from `vibiz_meta_ads_accounts_list[].id` for the chosen socialAccountId. NOT an internal Mongo ObjectId. - `name` (string) (required) — Ad name (max 255 chars). - `goal` (string) (required) — The ad-set optimization goal — pick the one that matches what the business actually wants, NOT 'traffic' by default. To drive SALES/PURCHASES (most ecommerce + paid offers) use 'conversions'. To collect LEADS (forms, sign-ups, quote requests) use 'lead_generation'. Only use 'traffic' when the user explicitly just wants clicks/visits — it optimizes for cheap clicks, not buyers, so it usually wastes spend for a sales business. 'engagement'/'awareness'/'video_views' are top-of-funnel only. - `budget` (object) (required) - `currency` (string) — ISO-4217 currency code. - `schedule` (object) - `targeting` (object) - `bidAmount` (number) — Meta only. - `tracking` (object) — Meta only. - `specialAdCategories` (array) — Meta only. - **vibiz_meta_ads_launch_create** — Create a standalone Meta ad from scratch — campaign + ad set + ad in one call. No existing post needed. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `accountId` (string) (required) — EXPECTS: social account id (24-char hex Mongo ObjectId). Get it from `vibiz_social_list_accounts[].id`. NOT a Meta `act_…` id. - `adAccountId` (string) (required) — EXPECTS: Meta platform ad account id (string starting with "act_"). Get it from `vibiz_meta_ads_accounts_list[].id`. - `name` (string) (required) — Ad name (max 255 chars). - `goal` (string) (required) — The ad-set optimization goal — pick the one that matches what the business actually wants, NOT 'traffic' by default. To drive SALES/PURCHASES (most ecommerce + paid offers) use 'conversions'. To collect LEADS (forms, sign-ups, quote requests) use 'lead_generation'. Only use 'traffic' when the user explicitly just wants clicks/visits — it optimizes for cheap clicks, not buyers, so it usually wastes spend for a sales business. 'engagement'/'awareness'/'video_views' are top-of-funnel only. - `budgetAmount` (number) (required) — Budget amount in the ad account currency. Minimums: Meta=$1/day, TikTok=$20/day, Pinterest=$5/day. - `budgetType` (string) (required) - `currency` (string) - `headline` (string) - `body` (string) - `callToAction` (string) — Meta only. - `linkUrl` (string) - `imageUrl` (string) - `video` (object) — Meta only. - `adSetId` (string) — Meta only — attach this creative to an existing ad set. Mutually exclusive with `creatives[]`. - `countries` (array) — REQUIRED for good delivery — ISO-3166 alpha-2 country codes (e.g. ['ES'], ['MX'], ['US'], ['GB']). Do NOT leave empty: Meta defaults to the United States, which burns budget when the ad/business isn't US-facing. Choose based on the ad's LANGUAGE and the business's actual market — Spanish copy for a Spain business → ['ES'], Spanish for Mexico → ['MX'], English US business → ['US']. Match the creative's language and the customer's location; never default to ['US'] unless the audience really is the US. - `ageMin` (integer) - `ageMax` (integer) - `interests` (array) - `endDate` (string) — Required for lifetime budgets. - `audienceId` (string) - `advantageAudience` (integer) — Advantage Audience flag. 0 = off, 1 = on. Constrained via minimum/maximum (not enum) so Gemini accepts the schema. - **vibiz_meta_ads_launch_bulk** — Launch multiple Meta ads in ONE call — all sharing the same campaign, ad set, budget, and targeting. Cheaper and faster than calling `vibiz_meta_ads_launch_create` N times because it avoids creating N separate campaigns. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `accountId` (string) (required) — EXPECTS: Zernio social account id (24-char hex Mongo ObjectId). Get it from `vibiz_social_list_accounts[].id`. NOT a Meta `act_…` id. - `adAccountId` (string) (required) — EXPECTS: Meta platform ad account id (string starting with "act_"). Get it from `vibiz_meta_ads_accounts_list[].id`. - `name` (string) (required) — Campaign name (max 255 chars). Each ad inside the campaign gets an auto-numbered name from Meta. - `goal` (string) (required) — The ad-set optimization goal — pick the one that matches what the business actually wants, NOT 'traffic' by default. To drive SALES/PURCHASES (most ecommerce + paid offers) use 'conversions'. To collect LEADS (forms, sign-ups, quote requests) use 'lead_generation'. Only use 'traffic' when the user explicitly just wants clicks/visits — it optimizes for cheap clicks, not buyers, so it usually wastes spend for a sales business. 'engagement'/'awareness'/'video_views' are top-of-funnel only. - `budgetAmount` (number) (required) — Shared budget for the whole ad set (NOT per-ad). Meta=$1/day minimum. - `budgetType` (string) (required) - `currency` (string) — ISO-4217 currency code. - `creatives` (array) (required) — Array of ad creatives. Each entry needs exactly one of `imageUrl` or `video`. All other fields are required. - `countries` (array) — REQUIRED for good delivery — ISO-3166 alpha-2 country codes (e.g. ['ES'], ['MX'], ['US'], ['GB']). Do NOT leave empty: Meta defaults to the United States, which burns budget when the ad/business isn't US-facing. Choose based on the ad's LANGUAGE and the business's actual market — Spanish copy for a Spain business → ['ES'], Spanish for Mexico → ['MX'], English US business → ['US']. Match the creative's language and the customer's location; never default to ['US'] unless the audience really is the US. - `ageMin` (integer) - `ageMax` (integer) - `interests` (array) - `endDate` (string) — Required for lifetime budgets. - `audienceId` (string) - `advantageAudience` (integer) — Advantage Audience flag. 0 = off, 1 = on. Constrained via minimum/maximum (not enum) so Gemini accepts the schema. - **vibiz_meta_ads_launch_from_creative** — Attach an EXISTING Vibiz creative to an EXISTING Meta ad set. The creative's image/video, headline, body, and CTA are resolved from the Vibiz `campaign_ad` row; the ad set's goal, budget, and targeting are inherited from Meta. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `adId` (string) (required) — EXPECTS: Vibiz `campaign_ad` UUID. Get from a recent `vibiz_generate_image` / `vibiz_creatives_edit` response or `vibiz_list_creatives`. Must have status "succeeded" and a resolved imageUrl or videoUrl. - `adSetId` (string) (required) — EXPECTS: Meta ad set platform id. Get from `vibiz_meta_ads_campaigns_get_tree[].adSets[].platformAdSetId`. The ad set must belong to a campaign on the chosen `adAccountId`. - `accountId` (string) (required) — EXPECTS: Zernio social account id (24-char hex Mongo ObjectId). Get from `vibiz_social_list_accounts[].id`. NOT a Meta `act_…` id. - `adAccountId` (string) (required) — EXPECTS: Meta ad account id (starts with "act_"). Get from `vibiz_meta_ads_accounts_list[].id`. - `name` (string) — Ad name shown on Meta (max 255 chars). Defaults to the Vibiz creative's `name` when omitted. - `linkUrl` (string) (required) — Destination URL the ad clicks through to. Vibiz creatives have no stored link — ASK the user (usually their landing page / funnel URL) if not provided. - `callToAction` (string) — Meta only. - `headline` (string) — Optional override for the ad headline. Defaults to the Vibiz creative's `headline` (auto-derived from the prompt). - `body` (string) — Optional override for the ad body copy. Defaults to the Vibiz creative's `body` (auto-derived from the prompt). - `budgetAmount` (number) (required) — Declared daily / lifetime budget used to compute the tiered Vibiz platform fee (20% base, 5% at $100+, 1% at $1,000+). Meta's actual spend is inherited from the ad set; this number does NOT change Meta's budget. - `budgetType` (string) (required) - `currency` (string) — ISO-4217 currency code for the fee calculation. Default USD. - **vibiz_meta_ads_accounts_list** — List the platform ad accounts (e.g. Meta `act_…` ids) reachable through a given social account. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `socialAccountId` (string) (required) — EXPECTS: social account id (24-char hex Mongo ObjectId). Get it from `vibiz_social_list_accounts[].id`. NOT a Meta platform ad account `act_…` id — that comes back from THIS tool as `accounts[].id`. - **vibiz_meta_ads_accounts_get_connect_url** — Start the ads-specific OAuth flow for a platform. Returns either an `authUrl` to send the user to, or `{ alreadyConnected: true }` when the workspace already has an ads credential for that platform. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `platform` (string) (required) — Ads platform to connect. Note `googleads` (not `google`). - `socialAccountId` (string) — Required for separate-token platforms (tiktok, twitter); ignored for same-token + standalone. - `redirectUrl` (string) — Custom URL to redirect the user back to after OAuth (same-token platforms only). - **vibiz_meta_ads_pixels_create** — Provision a new Meta Pixel under a Meta ad account. Returns the pixel id and the install snippet (`tag.code`) the user pastes into their site (or the assistant injects into a generated funnel). - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `socialAccountId` (string) (required) — EXPECTS: Zernio social account id (24-char hex Mongo ObjectId). Get it from `vibiz_social_list_accounts[].id` or `vibiz_meta_ads_accounts_list` ancestor. - `adAccountId` (string) (required) — EXPECTS: Meta platform ad account id (string starting with "act_"). Get it from `vibiz_meta_ads_accounts_list[].id`. - `name` (string) (required) — Human-readable pixel name shown in Meta Events Manager. Tip: include the workspace name so a user with multiple pixels can tell them apart (e.g. 'NeceSera — Main Site Pixel'). - **vibiz_meta_ads_pixels_list** — List every Meta Pixel reachable through the given social account. Pass `adAccountId` to scope to one ad account. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `socialAccountId` (string) (required) — EXPECTS: Zernio social account id (24-char hex Mongo ObjectId). Get it from `vibiz_social_list_accounts[].id` or `vibiz_meta_ads_accounts_list` ancestor. - `adAccountId` (string) — EXPECTS: Meta platform ad account id (string starting with "act_"). Get it from `vibiz_meta_ads_accounts_list[].id`. OPTIONAL — omit to list pixels across every ad account on this social account. - **vibiz_meta_ads_pixels_get** — Fetch one Meta Pixel by id, including the install snippet (`code`) and `lastFiredTime`. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `socialAccountId` (string) (required) — EXPECTS: Zernio social account id (24-char hex Mongo ObjectId). Get it from `vibiz_social_list_accounts[].id` or `vibiz_meta_ads_accounts_list` ancestor. - `pixelId` (string) (required) — EXPECTS: Zernio tracking-tag id (returned as `tag.id` from `vibiz_meta_ads_pixels_create`, or `data[].id` from `vibiz_meta_ads_pixels_list`). - **vibiz_meta_ads_pixels_stats** — Pixel event performance broken down by an aggregation dimension (event / host / url / device_type). - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `socialAccountId` (string) (required) — EXPECTS: Zernio social account id (24-char hex Mongo ObjectId). Get it from `vibiz_social_list_accounts[].id` or `vibiz_meta_ads_accounts_list` ancestor. - `pixelId` (string) (required) — EXPECTS: Zernio tracking-tag id (returned as `tag.id` from `vibiz_meta_ads_pixels_create`, or `data[].id` from `vibiz_meta_ads_pixels_list`). - `aggregation` (string) — Aggregation dimension. Defaults to Zernio's server-side default (event) when omitted. - **vibiz_meta_ads_pixels_update** — Rename a pixel or toggle Meta's feature flags on it (Advanced Matching, first-party cookies, data-use setting). - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `socialAccountId` (string) (required) — EXPECTS: Zernio social account id (24-char hex Mongo ObjectId). Get it from `vibiz_social_list_accounts[].id` or `vibiz_meta_ads_accounts_list` ancestor. - `pixelId` (string) (required) — EXPECTS: Zernio tracking-tag id (returned as `tag.id` from `vibiz_meta_ads_pixels_create`, or `data[].id` from `vibiz_meta_ads_pixels_list`). - `name` (string) - `enableAutomaticMatching` (boolean) - `firstPartyCookieStatus` (string) - `dataUseSetting` (string) - **vibiz_meta_ads_pixels_share** — Grant another Meta ad account permission to fire / read this pixel. This is the "grant pixel on demand" handoff: a workspace can wire one pixel into ad campaigns owned by separate ad accounts without copy-pasting install snippets per surface. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `socialAccountId` (string) (required) — EXPECTS: Zernio social account id (24-char hex Mongo ObjectId). Get it from `vibiz_social_list_accounts[].id` or `vibiz_meta_ads_accounts_list` ancestor. - `pixelId` (string) (required) — EXPECTS: Zernio tracking-tag id (returned as `tag.id` from `vibiz_meta_ads_pixels_create`, or `data[].id` from `vibiz_meta_ads_pixels_list`). - `adAccountId` (string) (required) — EXPECTS: Meta platform ad account id (string starting with "act_"). Get it from `vibiz_meta_ads_accounts_list[].id`. This is the RECIPIENT ad account that should gain access — NOT the ad account the pixel was originally created on. - **vibiz_meta_ads_pixels_list_shares** — List the Meta ad accounts this pixel is currently shared with. Pair with `vibiz_meta_ads_pixels_share` / `_unshare` to audit and tighten permissions. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `socialAccountId` (string) (required) — EXPECTS: Zernio social account id (24-char hex Mongo ObjectId). Get it from `vibiz_social_list_accounts[].id` or `vibiz_meta_ads_accounts_list` ancestor. - `pixelId` (string) (required) — EXPECTS: Zernio tracking-tag id (returned as `tag.id` from `vibiz_meta_ads_pixels_create`, or `data[].id` from `vibiz_meta_ads_pixels_list`). - **vibiz_meta_ads_pixels_unshare** — Revoke a Meta ad account's access to this pixel. Closest thing to 'delete' since Meta does not expose a pixel-delete endpoint. - `target` (object) — Where the generation should be applied. Pass `vibiz` (slug from list_vibiz) OR `brandUrl` (any URL — we scrape its brand). CRITICAL: if the user requests a brand that is not in the list_vibiz output AND brandUrl is not yet supported (or the URL fails), DO NOT silently fall back to a different vibiz. Tell the user the brand is not yet onboarded and either (a) suggest they create a new vibiz at /vibiz or (b) ask them to pick from the available vibiz. Do not generate with the wrong brand. - `socialAccountId` (string) (required) — EXPECTS: Zernio social account id (24-char hex Mongo ObjectId). Get it from `vibiz_social_list_accounts[].id` or `vibiz_meta_ads_accounts_list` ancestor. - `pixelId` (string) (required) — EXPECTS: Zernio tracking-tag id (returned as `tag.id` from `vibiz_meta_ads_pixels_create`, or `data[].id` from `vibiz_meta_ads_pixels_list`). - `adAccountId` (string) (required) — EXPECTS: Meta platform ad account id (string starting with "act_"). Get it from `vibiz_meta_ads_accounts_list[].id`. ## Examples ``` > Generate a 1:1 ad image for our hero offer in our brand voice and schedule it as an Instagram post tomorrow at 9am. > Use vibiz to launch a Meta ads campaign with my latest approved creatives, $20/day budget, targeting US 25-44. > Show me the top 5 Instagram posts from the last 30 days by engagement and draft three caption variations in the same voice. ``` ## Reference - Docs site: https://www.vibiz.ai/docs - MCP endpoint: https://www.vibiz.ai/api/mcp - OAuth discovery: https://www.vibiz.ai/.well-known/oauth-protected-resource - This file: https://www.vibiz.ai/llms-full.txt - High-level index: https://www.vibiz.ai/llms.txt