webfaCeMEdia
Manage your client portfolio
- Category
- Content & Design
- Primary Subcategory
- Content Marketing Operations
Integration details
Description
webfaCeMEdia connects your AI assistant to the webfaCeMEdia platform so you can manage your sites, contacts, content drafts, campaigns, and analytics in plain language. Each request is scoped to your own organization and runs against live platform data; destructive actions are clearly flagged before they run.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Content Marketing Operations
- Secondary Subcategories
- None listed
- Brand
- webfaCeMEdia
- Access
- Account required
- First tracked
- 2026-06-24
- Tool count
- 65
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Get alerts for webfaCeMEdia
Get updates when webfaCeMEdia’s Discoverability Score or category rank changes.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT Content Marketing Operations
View Category65 tools agents can invoke
Add a single contact to a client's CRM. Useful for quickly adding prospects found via Apollo or referral without going through the sheet/Notion sync. Per-contact merge data (e.g. a preview link) goes in custom fields via update_contact { custom_<label>: value } → merge tag {{contact.<LABEL UPPERCASED>}} in campaign copy.
Insert a new module (section) into a page. Module must be a complete object with _type and _key per SanityPress schema. Check the module catalog for the correct shape.
Append items to an array field on a Sanity document. Without insertAfter, items are appended at the end (and the array is created via setIfMissing if missing — single transaction). With insertAfter, items are inserted directly after the matching _key. Each item should include its own _key if Sanity's schema expects one; patch_document auto-generates _keys for items missing them. Common uses: adding a CTA to a hero, a stat to a stat-list, or a module to a page.
Operator-only (admin). Generate sites from a prefilled LIST of redesign requirements — one project per row, each building + producing a design-preview SET (and emailing it when sendEmail + recipientEmail). Each row: { name, domain, sourceUrl?, industry?, leadGoal?, leadBrandVibe?, leadReferences?, leadAudience?, requireApproval?, recipientEmail? }. Pass ownerUserId (+ clerkOrgId/ownerOrgSlug) to run a partner's list under THEIR account/org (hybrid ownership: they manage it, you still see it); omit ownerUserId for operator-owned. When ownerUserId is set, that owner's Solo/Agency capability + bulk cap are enforced. Returns { created, results:[{ projectId, name, ok, error? }] }. Compose with the user's own Notion/Sheets connector to build the rows. Returns not_enabled if operatorBaseUrl/operatorApiSecret are unset.
Start a direct upload for a large file (up to 25 MB; video 50 MB) when you can make HTTP requests yourself: returns a one-hour putUrl. POST the raw bytes to it with the file's Content-Type; the response is { storageId }. Then call finish_upload with the uploadId and storageId to get the media-library asset. If you cannot make HTTP requests, use upload_media's chunked mode instead.
CREATE a new Sanity document. Fails with a clear error if the _id already exists (unlike upsert_document which replaces). Use this when you want create-or-fail semantics — adding a new portfolio entry, testimonial, blog post, etc. without risk of overwriting.
Create a planner project. With build:'full' it runs the SAME question-driven build the conversational planner agent does — from the brief below — and returns a COMPLETE project the owner can open in the builder, redesign in Lab, or deploy. Gather as much of the brief as you can (ask the user the question in each field's description when unknown); only name + domain are required and the build degrades gracefully without the rest. build:'full' is async + a real premium run (minutes) — poll get_project_status until built. generatePreview:true also makes a 3-variant redesign preview SET (held for review — NO client email is sent). build:'draft' (default) just creates an empty project. Returns { projectId } or { projectId, building:true }. not_enabled if operatorBaseUrl/operatorApiSecret are unset.
Create a social post DRAFT for one or more platforms. Write platform-native copy per platform — not one caption pasted everywhere: a hook in the first line; X ≤ 280 chars; LinkedIn professional, 1–3 short paragraphs; Instagram/TikTok casual with line breaks and 3–5 hashtags at the end; Facebook conversational. Ground it in the business's real services, offers, hours and voice (get_client_details, the company profile, and the owner's brief); never invent prices or claims, never mention AI or that it was generated. Vary formats across a week (tip, behind-the-scenes, customer story, offer, question, seasonal) and check list_social_posts first so you do not repeat a recent angle. Instagram and TikTok REQUIRE an image or video: make one with generate_asset (assetType social) and pass its imageUrl in assets, upload one you have with upload_media and pass its `asset`, or reuse a library file from list_media_assets. A PDF/PPT/DOC (type document) publishes as a native LinkedIn document post — LinkedIn-only, one document, no other media; the first line of the LinkedIn caption becomes the document title. scheduledAt is a proposal only — nothing publishes until schedule_social_post is called after the owner approves. Times are ISO 8601 with the business's timezone offset (e.g. 2026-09-01T10:00:00-04:00).
DELETE a Sanity document by _id. Destructive — only restorable via Sanity's revision history within the retention window. Requires confirmDelete: true.
Delete a draft, approved or failed social post. Scheduled and published posts are refused — those are handled in the dashboard. Confirm with the owner before deleting something they wrote or approved.
Generate an image, logo, icon, or illustration for a client via Creative Studio. Optionally uploads to Sanity. Best for: hero images, service cards, blog covers, favicons, social post imagery.
Operator-only (admin). Generate the full 3-variant design-preview SET for a planner project page — mixed variantModels, a distinct palette/reference per variant, all behind ONE preview token — the same engine the redesign intake uses. Via the WebFacePress Next operator route. Body: projectId (required), optional pageKey (defaults to the project's homepage), variantModels (1–3 of 'anthropic' (Claude Opus) | 'zai' (GLM) | 'grok' (Grok 4.5) | 'openai' (GPT-5.6 Sol) | 'gemini' (Gemini 3.1 Pro); OpenRouter-routed models require OPENROUTER_API_KEY on the planner deployment; defaults to the configured mix), requireApproval (defaults to project/global default), userId (defaults to the project's own owner). Returns { setToken, bundleIds, previewUrl, pageKey }; the set is held pending_approval by default. Poll list_lab_bundles until each bundle's status == 'completed'. Returns a clean not_enabled response if operatorBaseUrl / operatorApiSecret are unset.
Return contact count, pending drafts, recent runs, and AI config for a client's agent.
Return one Insights site's metadata, last 30 days of daily rollups, and last 100 raw events for debug.
READ how a project's brand guide is built: the live branding fields (all colors incl. dark/footer, fonts, wordmark, logo URLs, theme), the full curated palette library (28 palettes × 14 industry kinds), and the Lab taste-pack vocabulary (palette archetypes + references with fit tags). Use it to author a brand block for create_project or targeted update_project_branding edits. Read-only.
Get detailed information for a single client including config, contact count, and recent agent runs.
Fleet-level health summary across all client deployments. Each entry separates LIVENESS from HEALTH: `reachable` is the endpoint ping; `agentHealthy` is derived from the agent's runs (NOT the ping) — a deployment whose syncs complete is healthy even if unreachable. `online` is a back-compat alias of `reachable`. Counts (`contacts`, `lastRunAt`) come from the same source as `get_agent_stats`. CRITICAL for unattended use: read `statsSource` before trusting counts — `'live'` = fresh, `'cache'` = last-known (also `stale:true`), `'unavailable'` = unknown (`contacts` is `null`, NEVER `0` — do not treat as zero). `summary` buckets: `healthy` (reachable + agentHealthy), `unreachable` (syncing but ping failed), `failing` (agentHealthy=false ONLY), `unknown` (stats unresolved), `siteOnly`. Each entry has `kind: 'full' | 'site-only'`; site-only deployments (no Convex agent) are pinged via their site URL and counted in `summary.siteOnly`, never `failing`.
Fetch a single Sanity document by _id, regardless of type. Returns the full document JSON with image references preserved as _ref strings (not dereferenced URLs) so they can be reused in patch_document.
Fetch a point-in-time SNAPSHOT of a Sanity document at a given revision (from list_document_history) or ISO time. Returns the document as it existed then. Returns 'no_history_in_range' when outside the retention window. Read-only — does not modify anything.
The business's Facebook, Instagram and Google ads at a glance: its ad accounts (spent this month, monthly limit), each campaign and its status (running, paused, waiting for your approval — with the review link), changes waiting for the owner's yes, and how many campaigns webfaCeMEdia is preparing. Start here for any ads question.
How the ads are doing over the last N days (default 30): spend, impressions, clicks, leads and cost per lead, compared with the period before, per platform and per campaign. Numbers refresh every hour. Explain them plainly; pair with get_my_website_leads.
Fetch header, footer, and social navigation for a client via site singleton references. Read-only.
Fetch a single page's full module content by slug or id. Read-only.
Read a project's BUILT homepage content so you can QC the build against the prospect's real offering BEFORE sending — the preview link is held for approval, so this is the way to inspect output programmatically. Returns { businessName, industry, brand, brief:{industry,offerings,differentiator,goal}, homepage:{ slug, title, modules:[{type,heading,subheading,items[]}] }, pages:[{slug,title,moduleTypes[]}] }. Compare `homepage` against `brief` (and the prospect's real site): does the hero lead with their actual offering? Are the services in the right order? Did a stale template positioning leak in? Owner-scoped on the public connector. not_enabled if the operator API is unset.
Poll a project's build + preview status — use after create_project build:'full' or batch_create_projects to know when the build is done and to get the shareable preview link. Returns { buildStatus, buildError, hasPreview, previewUrl, previewStatus, sentTo, variants:[{bundleId,status}] }. The build is complete when buildStatus is 'generated' (or hasPreview is true); then open previewUrl to review the redesign before sending. Owner-scoped on the public connector. not_enabled if the operator API is unset.
Inspect a site's content schema BEFORE writing. With { client }, returns that client's actually-DEPLOYED Sanity schema (source: 'server') or the bundled template (source: 'template-fallback') if none is deployed — field support differs from site to site (e.g. some sites have i18n fields, different module sets). With { client, type }, returns that type's allowed fields and which are multilingual (i18nFields). Without { client }, returns the generic template baseline (advisory only). Use this to learn valid fields before create_document / patch_document so writes aren't rejected by the schema gate.
Generic singleton fetcher for whitelisted document IDs (site, pricing, shop-settings, etc.). Read-only.
Fetch the site singleton (title, blurb, logo, announcements, CTAs, copyright, personalization) for a client. Read-only.
Read one social post in full (captions, assets, status, schedule, publish results) by postId.
Paginated raw event log for one site (debug / verification). Pass `dayBucket` (UTC ISO date) to scope.
List every site registered in the webfaCeMEdia Insights Convex deployment, with last-7-day pageview/visitor counts and archive status.
The curated brand-palette library (28 hand-picked, WCAG-checked palettes grouped by 14 industry kinds — each with accent/primary/secondary/canvas/ink + dark & footer colors). Pick one and pass its colors into create_project's brand block or update_project_branding. Read-only, no arguments.
List Brevo email campaigns for a client, optionally filtered by status.
List all managed client deployments with online status, Convex URL, agent domain, and timezone. Archived clients (archive_project) are hidden unless includeArchived is true.
List contacts for a client, optionally filtered by score bucket or free-text search.
List the revision history of a Sanity document, NEWEST-FIRST: [{ rev, timestamp, author }]. Use to find a revision to inspect or roll back to. Returns status 'no_history_in_range' (not an error) when the document is older than the plan's history retention window. Read-only.
Discover which Sanity document types exist in a client's dataset. Returns each _type with a count. Use this first to find non-page types (portfolio, testimonial, blog.post, etc.) before listing or fetching documents.
List documents of a specific Sanity _type with pagination. Returns _id, _type, _updatedAt, title, slug by default (override with `fields`). Use list_document_types first to discover what types exist.
List outreach drafts for a client, optionally filtered by status.
List raw uploaded assets from a client's Sanity media library (images/files), newest first, with filename + asset ref. Use this to find uploaded photos to place via copy_asset or patch_card_image. Distinct from list_generated_assets (Creative Studio AI-generated assets only). Works for site-only clients.
List all pages in a client's SanityPress CMS with module metadata and counts. Read-only.
Every design-preview SET ever generated for a planner project (newest first) — nothing is deleted when you regenerate, this is how you find the older ones. Each set: token, previewUrl, status, label, createdAt, createdVia, costUsd, kept/canonical/latest flags, and per-slot { index, model, tastePackIdentifier, selectedPaletteName, selectedReferenceName, status, costUsd, htmlAssetUrl }. Optional pageKey filter. Read-only. not_enabled if the operator API is unset.
List Brevo email sequences (automations) for a client with step count and active contact count.
List this business's social posts (drafts, scheduled queue, published, failed) with full captions, times and postIds. Call this BEFORE writing new posts so you can see what was said recently and avoid repeating an angle, and to find postIds for schedule/reschedule/delete. Newest first.
The Lab design-system vocabulary: every taste pack (design system) id + the selected pack's palette ARCHETYPES and visual REFERENCES with their fit tags. Use the names to steer generate_preview_set per-variant (variants[].paletteOverride / referenceOverride / tastePackIdentifier). Optional identifier arg selects a pack (default 'universal'). Read-only.
Set the image field on a specific card within a card-list module on a page. Convenience over patch_document — handles the image object construction (asset reference + alt). Pass the page _id, the card-list module _key, the card _key, the asset _id (e.g. 'image-abc123-1600x1000-webp'), and the alt text. Atomic single-card update; for batch card image updates use patch_document with multiple set patches.
Apply surgical patches to any Sanity document. Operations: set, unset, setIfMissing, insert (with numeric index or GROQ selector), splice (numeric-index array insert, recommended for stability). Always validates positional indices against current array length; uses ifRevisionID for optimistic concurrency. Returns 409-style error if the document was modified between fetch and write.
Update a page's SEO metadata — OG image, title, description, noIndex. Use after generate_asset to apply an OG image to a page.
Patch one or more fields on a specific module within a page's modules[] array, identified by module _key. Pass the page _id, the module _key, and a flat object of fields to set on that module — the tool builds the GROQ paths internally. Use this instead of patch_document when you only need to update a single module: clearer intent, less syntax noise. Atomic single transaction. Inherits ifRevisionID concurrency handling and 409 conflict surfacing from patch_document.
Update the site singleton — title, blurb, copyright, announcements. Personalization (site.personalization: enabled, audiences, threshold, holdoutPercent, rememberDays) is NOT set here — read it with get_site_settings and edit it with patch_document on id "site" (e.g. path "personalization.enabled"). On internationalized sites (title as i18n.string, blurb/copyright as i18n.text) the write is merged into ONE locale and the others are left untouched; pass `locale` to choose which. On non-i18n sites plain text is converted to Portable Text. `announcements` takes REFERENCES to announcement documents, never inline content. The write is verified after it lands.
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are webfaCeMEdia alternatives on ChatGPT?
As of 2026-09-28, webfaCeMEdia competes with DropTrack, Hook Layer, inblog, Markty, Sequel.io, Simplified, StoryChief, TopicLift Editorial Copilot, VybeOS, Weekloop in ChatGPT Content Marketing Operations, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.