- Brand
- Scribe Mail
- Category
- Marketing
- Primary Subcategory
- Social Media Management & Scheduling
Integration details
Description
Scribe is email signature management for enterprise: IT sets it up once, marketing runs it, and no employee ever installs anything. Connect Scribe to ChatGPT and manage your workspace in plain language: • Create, edit, preview and publish signature templates • Assign signatures to teammates, groups and folders • Manage smart fields, assets and integrations • Launch, schedule and pause banner campaigns • Pull view, click and conversion analytics Signatures deploy centrally across Google Workspace, Microsoft 365 and 30+ tools. Sign in with your Scribe account via OAuth — the app forwards your own access token and never stores an API key.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Social Media Management & Scheduling
- Secondary Subcategories
- None listed
- Brand
- Scribe Mail
- Access
- Account required
- First tracked
- 2026-08-29
- Tool count
- 66
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Scribe
Get updates when Scribe’s Discoverability Score or category rank changes.
Competing in ChatGPT Social Media Management & Scheduling
View Category66 tools agents can invoke
Manually assign a signature to specific email addresses (by email uuid). Use it to add named people one by one; use add_signature_recipient_entities to target whole org units or groups, set_signature_recipient_rules for smart-field conditions or all future emails, and remove_signature_recipients to undo. Additive and idempotent: the emails join the manual list, and org-unit and condition-based recipients are kept. When the signature's installation is on and a signature integration can push it, Scribe queues installation on its recipients' mailboxes right away. Returns the full updated selection; check who it reaches with list_signature_recipients. Needs the signatures:write scope; an unknown signature returns 404.
add_signature_recipients
Aggregated conversion/revenue numbers from recorded events. By DEFAULT a timeseries of event count + sum of value bucketed by `granularity`: { data:[{period, count, value}], totals:{count, value} }. Set `group_by` (name | signature_template | marketing_campaign | teammate | anchor | country | currency | user) for a ranked breakdown: { data:[{id, label, count, value}], pagination } — rank by `order_by` (count | value). `value` is summed across currencies, so pass `currency` or group_by=currency for a clean total. Answers total revenue, revenue by campaign/template/teammate/country, conversions per day, top customers (group_by=user).
get_analytics_events_summary
Signature-click counts over a date range. By DEFAULT a timeseries bucketed by `granularity` (hour/day/week/month, UTC): { data:[{period, count}], totals:{count} }. Set `group_by` (signature_template | marketing_campaign | teammate | country) for a ranked breakdown instead: { data:[{id, label, view_count, click_count, clickthrough_rate}], pagination } — each breakdown row already carries views, clicks, AND the clickthrough rate, so one call answers "which signature/teammate drives the most engagement". Filter by start_date/end_date and any of signature_template_id, marketing_campaign_id, teammate_id.
get_analytics_clicks
Signature-view counts over a date range. By DEFAULT a timeseries bucketed by `granularity` (hour/day/week/month, UTC): { data:[{period, count}], totals:{count} }. Set `group_by` (signature_template | marketing_campaign | teammate | country) for a ranked breakdown instead: { data:[{id, label, view_count, click_count, clickthrough_rate}], pagination } — each breakdown row already carries views, clicks, AND the clickthrough rate, so one call answers "which signature/teammate drives the most engagement". Filter by start_date/end_date and any of signature_template_id, marketing_campaign_id, teammate_id.
get_analytics_views
Create a signature folder to organize signature templates. A blank name returns 422.
create_folder
Create a marketing campaign. `name`, `start_time`, `end_time`, and `time_zone` are required; a missing one returns 422. The campaign is created as a draft — use schedule_marketing_campaign to activate it. `content` is a block tree (a `stack` root whose `children` are blocks) strict-validated server-side, the same format as signature draft_content; `smart_fields_conditions` and `signature_template_ids` set the targeting.
create_marketing_campaign
Create a signature template. Sets `draft_content` (the working copy) — `content` stays empty until you publish_signature. `name` is required; `draft_content` is a block tree (a `stack` root whose `children` are blocks) strict-validated server-side; `folder_id` is a folder UUID. Call `get_content_schema` FIRST for the block-tree schema, every enum value (incl. the non-obvious `icon` names like `linkedin-in`/`facebook-f`), and a complete worked example to adapt — that's how you build a full signature, social-icon row included, in one shot. An invalid tree returns 422 naming each offending field and (for enums) its allowed values. Returns the created template.
create_signature
Define a new custom smart field, a merge field signature templates and campaign conditions can use. Check list_smart_fields first: labels are unique, and to rename, retype or rebind an existing field use update_smart_field instead. A manual field starts empty; set each teammate's value with update_teammate. Bound to an integration (integration_id + integration_attribute), its values come from that integration and update_teammate can no longer set them; integrations do not fill url fields, so keep a url field manual. Creating the field changes no signature until a template references it. Writes one field and returns it. Needs the smart_fields:write scope; a taken label, an invalid kind or an unknown or unsuitable integration returns 422.
create_smart_field
Create a new teammate from a primary email plus optional smart-field values. Only available when the workspace manages its own team list — if a directory integration (Google, Microsoft or Zoho Mail) drives teammates, this returns a 409 conflict. Email aliases are managed separately.
create_teammate
Upload an image to the workspace's asset library. Provide EITHER `file_base64` (+ `filename`) OR `source_url` — exactly one. For a file the user uploaded in chat (no public URL), send its bytes as `file_base64`; if you cannot read the raw bytes on this platform, ask the user for a hosted URL or reuse an existing asset from list_assets instead of guessing. Non-images, bad base64, oversized files (>15MB), or a disallowed URL return 422.
create_asset
Add an alias email address to a teammate. Only available when the workspace manages its own team list — if a directory integration (Google, Microsoft or Zoho Mail) drives teammates, this returns a 409 conflict. The address is validated (format, uniqueness, disposable/deny-list) → 422 on failure.
create_email
Delete a signature folder by UUID. A folder that still contains signatures cannot be deleted (returns 409) — move or delete its signatures first.
delete_folder
Delete a marketing campaign by UUID. An active campaign is stopped first (it stops applying to signatures), then removed.
delete_marketing_campaign
Permanently delete a signature template by UUID; there is no undo or trash. The template is removed with its recipient assignment (manual, org-unit and smart-field rules), its marketing-campaign targeting and its installation records, but Scribe does not push an uninstall to mailboxes it was already installed in. Use it only when the template itself should go: to stop it reaching some people, use remove_signature_recipients or remove_signature_recipient_entities; to reset only a reply or internal variant, use delete_signature_variant. Needs the signatures:delete scope; an unknown id returns 404.
delete_signature
Delete a custom smart field by UUID (this also removes its value on every teammate). Default fields are read-only (422), the computed Email field is not addressable (404), and a field used in a signature template or campaign can't be deleted (409).
delete_smart_field
Delete a teammate by UUID (a soft delete; their emails are removed from signature deployment). Only available when the workspace manages its own team list — if a directory integration (Google, Microsoft or Zoho Mail) drives teammates, this returns a 409 conflict.
delete_teammate
Delete an asset by UUID. If it's still in use (referenced by a signature or set as the workspace picture) it is soft-deleted so those keep rendering; otherwise it is permanently removed. Either way it disappears from list_assets.
delete_asset
Delete an alias email by UUID (soft delete). A teammate's primary email cannot be deleted (returns 422). Only available when the workspace manages its own team list — a directory integration returns a 409 conflict.
delete_email
Copy a signature into a new one, as the dashboard's Duplicate: a safe copy to try a change on (a new banner, a layout) without touching the original or anyone's signature. The copy gets the source's design (its draft, published as the copy's `content`) and its reply/internal variants; it is assigned to no one, its installation is off, it has no smart-field rules. Use it instead of reading the design and create_signature. Then edit the copy with update_signature and check it with preview_signature; to bring a tried change back, update_signature the original with the copy's `draft_content`. Unknown signature → 404; unknown folder → 422. Returns the copy.
duplicate_signature
Check for additional tools whenever your task might benefit from specialized capabilities - even if existing tools could work as a fallback.
get_more_tools
Get the REAL final installed HTML of a signature for a SPECIFIC recipient — the live published `content` rendered with that teammate's real values and tracking links on, i.e. exactly what their mail client receives. This is NOT a preview: it reflects the published signature (publish_signature first), and returns empty HTML if the signature has not been published. The email must be a recipient of this signature (see list_signature_recipients), otherwise the API returns a 404 (no such email) or 422 (not a recipient). For a tracking-free placeholder layout check of a draft before publishing, use preview_signature instead.
get_signature_html
Fetch one identified visitor (the customer's `identify` subject — NOT a Scribe member) by its Scribe `id` — the uuid from list_visitors, not the distinct_id (to look up by distinct_id, filter list_visitors instead). Returns the visitor's distinct_id, traits (PII lives here), first/last_seen_at, first_touch attribution (the signature click that drove their first visit), and `stats` — the visitor's lifetime engagement (event count + total value).
get_visitor
Call this FIRST before authoring or editing a signature `draft_content` (create_signature / update_signature) or a marketing-campaign `content`. Returns, in ONE call, everything needed to build a valid block tree: the strict JSON Schema; a flat `enums` lookup of every allowed value (including the 100+ valid `icon` names and the `iconStyle.shape` values); the `social_icons` map from common platform to its exact (non-obvious) icon enum, e.g. linkedin -> `linkedin-in`, facebook -> `facebook-f`, youtube -> `youtube`, instagram -> `instagram`, whatsapp -> `whatsapp`; a complete worked `example` signature containing every block type AND a populated 5-platform `socialList`; and short `guidance`. Adapt `example` to author a full signature — social-icon row included — without guessing the format or brute-forcing enum spellings.
get_content_schema
Trigger installation of a signature template's current `content` to connected mail clients (without publishing). Returns 403 if the plan lacks signature installation, or 409 if no API signature integration is connected — in both cases the error includes a dashboard link to connect an integration or upgrade the plan; relay it to the user (the API can't run OAuth).
install_signature
REQUIRES `signature_id` (a signature template UUID) — there is no workspace-wide form of this tool. Without one in hand, call list_signatures first and pass an `id` from it. List the emails a signature is assigned to — each with the `sources` explaining why (manual, smart_field, or an org unit) — plus the `selection` config (manual ids, targeted org units, smart-field conditions, and the assign-to-all-future flag). `data` is paginated; `selection` is the full rule config.
list_signature_recipients
List the workspace's active (set-up) integrations, including any currently failing. Each carries a `status` ("active" or "error") and, when erroring, an `error_message` + `error_since` so you can see which integrations are connected and debug what went wrong. Each also has a `dashboard_url` to manage or reconnect it — relay that link when an integration is in error (the API can't run OAuth). Integrations are connected and configured in the dashboard, not via the API — and connecting one (Google Workspace, Microsoft 365, Zoho Mail, …) must be done by a SUPER ADMIN of that third-party app (an Admin is enough in Zoho Mail), so guide the user rather than trying to act: use search_docs (e.g. 'connect Microsoft 365', 'Google Workspace setup') to fetch the step-by-step setup guide and walk them through it alongside the dashboard link. This is WORKSPACE-level health only — for per-email install state/errors (e.g. a recipient not found on Front) use list_signature_installations. Paginated (page/limit).
list_integrations
The raw recorded events behind the analytics (server-to-server + SDK), most recent first. Each row: recorded_at, name, value, currency, source, the attribution *_uuid fields, country_code, and a read-opaque `properties` bag. Filter by date range, `name`, and any of signature_template_id / marketing_campaign_id / teammate_id / country. Use for verify/export. Paginated (page/limit).
list_analytics_events
List the workspace's asset library (logos, banners, profile pictures), newest first. Each has its `id`, a downloadable `file` URL, its `role`, `in_use` (a signature or the workspace picture references it) and `signature_template_count`. Use it to reuse an image: put an asset's `id` in an image block's `assetUuid` (see get_content_schema) rather than uploading a duplicate with create_asset. Also use it to find the `id` for update_asset or delete_asset, and check `in_use` first, since delete_asset only soft-deletes an asset in use. Deleted assets are excluded and there is no filter by role, so page through and match `role` or `name`. Read-only; needs the assets:read scope. Returns one page (default 50, max 100); set `auto_paginate` to fetch up to `max_pages`, and `truncated: true` means more remain.
list_assets
List the workspace's teammate email addresses, primary and aliases, newest first, each with its `id`, `address`, `primary` flag and owning `teammate_id`. Use it to get the email `id` that add_signature_recipients, remove_signature_recipients, update_email, delete_email, install_signature_for_email and send_test_email take. Use list_teammates instead when you also need smart-field values: it embeds each teammate's emails too. There is no address search: filter by `teammate_id`, or page through and match `address`. Deleted emails and teammates are excluded. Read-only; needs the emails:read scope. Returns one page (default 50, max 100); set `auto_paginate` to fetch up to `max_pages`, and `truncated: true` means more remain.
list_emails
List the workspace's financial documents (invoices and credit notes), newest first. Only documents with a downloadable PDF are returned: each carries a `file` ({ url, filename, content_type, byte_size }) whose `url` downloads the document, plus a `receipt` (same shape) when a separate receipt PDF exists. Use the `file.url` to fetch/download the document. Read-only — documents are issued by the billing system, not via the API. Paginated (page/limit).
list_financial_documents
List the workspace's signature folders, newest first, each with its `id`, `name` and `signature_count` (the signature templates it directly contains). Use it to find a folder `id` for update_folder, delete_folder or the `folder_id` of create_signature / update_signature, and to check for an existing folder before create_folder, since names need not be unique. It does not list the signatures inside a folder: use list_signatures and match each one's `folder_id`. A folder whose `signature_count` is above 0 cannot be deleted (delete_folder returns 409). Asset folders are not included. Read-only; needs the folders:read scope. Returns one page (default 50, max 100); set `auto_paginate` to fetch up to `max_pages`, and `truncated: true` means more remain.
list_folders
The workspace's identified visitors — the customer's own end-users, described by their `identify` calls (NOT Scribe members/teammates). Each row: distinct_id, traits (PII lives here), first/last_seen_at, and first_touch (the signature click that drove their first visit). Filter by distinct_id (exact), a trait (trait_key + trait_value, e.g. plan=enterprise), identified_via, and first-seen date range. Newest first, paginated.
list_visitors
List the workspace's directory org units / groups (from a teammates integration). Their uuids are what you pass to add_signature_recipient_entities to target a signature at a whole org unit. Paginated (page/limit).
list_integration_entities
List the workspace's marketing campaigns, each with its `status`, targeting (`smart_fields_conditions` + `signature_template_ids`), and `content` (an ILayoutBlock block tree). Paginated (page/limit).
list_marketing_campaigns
Where each signature actually IS (or failed to be) installed, per email: one row per email × signature × integration/email client with `status` (installed | failed | uninstalled) and, on failure, the `error_code` (e.g. user_not_found = the recipient has no account on that integration). Use this to answer 'is X's signature installed on <integration>?' or 'which installs failed and why?' — list_integrations only reports workspace-level connection health. Filter by email_id or email_address, signature_template_id, integration_id, status.
list_signature_installations
List a signature's reply and internal variants (always both entries). A variant is an alternate signature shown on reply emails (reply) or internal/same-domain emails (internal). Each entry reports its state (exists / activated / hidden / show_marketing_campaigns) and content. Also returns `supported`: variants require an active Microsoft 365 signatures integration, and writes return 409 variants_unavailable when it's false.
list_signature_variants
List the workspace's email-signature templates. A Scribe 'signature' is a reusable template (the layout that gets deployed to teammates' mail clients); v1 returns the workspace's primary templates. Paginated (page/limit). The large `content`/`draft_content` block trees are omitted by default — pass include_content:true to fetch them.
list_signatures
List the workspace's smart-field definitions — the merge fields available to signature templates (e.g. first name, job position, custom fields). Each carries its `kind`, whether it's a `default` field, and an `integration_id` when its values are synced. The computed Email field is not exposed. Paginated (page/limit).
list_smart_fields
List the workspace's teammates. A 'teammate' is a managed person whose email signature Scribe deploys; each carries their email addresses and smart-field values (the data merged into signature templates). Paginated (page/limit).
list_teammates
Pause an active campaign — it stops applying to signatures. Only an active campaign can be paused (otherwise 409). Resume later with resume_marketing_campaign.
pause_marketing_campaign
Render a marketing campaign's `content` block tree to HTML with PLACEHOLDER values — the same recipient-less, tracking-free render preview_signature does. Use it to VERIFY a banner's layout after create/update_marketing_campaign and BEFORE schedule_marketing_campaign: read the returned `html`, confirm it looks right, fix the content if not. An empty `html` means the campaign has no content yet.
preview_marketing_campaign
Render a signature to HTML with PLACEHOLDER values (each smart field shows its label, like the editor canvas for an empty field) — no recipient needed. Use this to VERIFY layout and spacing after create_signature / update_signature and BEFORE publish_signature: read the returned `html` to confirm the result looks right (no overlapping lines, correct spacing), and fix the draft if not. Renders the `draft` by default; pass content:"published" for the live copy.
preview_signature
Publish a signature template: copy `draft_content` into the live `content` and, when the workspace can, trigger installation to connected mail clients. SIDE EFFECT: a successful publish also activates installation for the template (`signature_installation_activated` becomes true) — the signature goes live to its recipients' mail clients, not just in the API. Confirm with the user before publishing a signature that has recipients. Returns the updated template (with `last_published_at` set).
publish_signature
Publish a signature's reply/internal variant: copy its `draft_content` into the live `content` and redeploy through the primary signature. Returns the updated variant (with `last_published_at` set). Returns 409 if the variant hasn't been created yet (`variant_not_created`) or if the workspace lacks a Microsoft 365 signatures integration (`variants_unavailable`).
publish_signature_variant
Fetch the FULL content of one Scribe help-center page by its path (from a search_docs result). Use it when the search excerpt isn't enough — e.g. to walk a user step-by-step through an integration setup, DNS configuration, or the conversion-tracking install. Public documentation; needs no scope and touches no workspace data.
read_docs_page
Remove a batch of manual recipients (by email uuid) from a signature. Only manual assignment is affected — emails matched by a condition or org unit stay. Returns the updated selection.
remove_signature_recipients
Rename a signature folder by UUID. A blank name returns 422.
update_folder
Reset a signature's reply/internal variant back to the primary: deactivate it and restore the primary's content (the variant record is kept). This is the 'reset to primary' action, not a hard delete. Returns 409 if the workspace lacks a Microsoft 365 signatures integration (`variants_unavailable`).
delete_signature_variant
Resume a paused campaign — it becomes active again. Only a paused campaign with a future end time can be resumed (otherwise 409). Returns 403 if the workspace's plan does not include marketing campaigns.
resume_marketing_campaign
Launch a draft or paused marketing campaign on its own dates. If the campaign's `start_time` (set with create_ or update_marketing_campaign) has passed, it goes live at once and the targeted signatures Scribe pushes are reinstalled with the banner; otherwise its status becomes `scheduled` and it starts at `start_time`. Use it to launch a draft from create_marketing_campaign, after checking the banner with preview_marketing_campaign. To restart a paused campaign now, use resume_marketing_campaign, which ignores `start_time`; to stop one, pause_marketing_campaign; to change dates, update_marketing_campaign first. Not idempotent: a campaign that is not draft or paused, or whose `end_time` has passed, returns 409. Needs the marketing_campaigns:write scope; 403 if the plan lacks marketing campaigns.
schedule_marketing_campaign
Scribe ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Scribe's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Scribe alternatives on ChatGPT?
As of 2026-11-02, Scribe competes with 8digit Planner, Abency, AdaptlyPost, Adly, Adzviser Sprout Social, AgentFabrica, Antwork, Atenda Social and 107 more in ChatGPT Social Media Management & Scheduling, 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.